re: case a cocher

M

marc

Guest
Bonjour,

j' ai inséré dans une célule, une case à cohcer. Je voudrais quand :
j'active cette case(=cocher), qu'elle me recopie les données d'une séléction,
qu'elle me les effaces quand je décoche cette case

la selection (cellule à recopier) est au format heure :
d7 à h7
d8 à h8
d9 à h9
........

et il faudrait les recopier dans la mème feuille vers
i7 à m7
i8 à m8
i9 à m9
..........

je suis novice en vba et je souhaiterai de l'aide

Merci pour les réponses
 

jeromegmc

XLDnaute Occasionnel
Salut,


Voici une solution générale, elle doit pouvoir être optimisée en fonction de ton application.


Code:
Sub copie()

Dim MaPlage
Dim cellule As Range
Dim i

Set MaPlage = Range('D7:H7') 'defint la plage de cellule à copier

i = 0
For Each cellule In MaPlage ' pour chaque cellule dans 'MaPlage'
Cells(7, 9 + i).Value = cellule.Value 'la valeur de la cellule (ligne 7,colonne 9+i) = la valeur de la cellule en cours dans la boucle
i = i + 1
Next

End Sub




A+
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Marc, bonjour le forum,

En pièce jointe un petit exemple. La case à cocher contient le code suivant :

Private Sub CheckBox1_Click() 'au clic dans la case à cocher
If CheckBox1.Value = True Then 'condition : si la case est cochée
Range('D7:H9').Copy Destination:=Range('I7') 'copie la plage D7:H9 dans I7:M9
Else 'sinon (case décochée)
Range('D7:H9').ClearContents 'efface le contenu de la plage D7:H9
End If 'fin de la condition
End Sub
[file name=Marc.zip size=7098]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Marc.zip[/file]

Édition

Oups ! Bonjour Jerome, on s'est croisés...


Message édité par: Robert, à: 18/10/2005 09:36
 

Pièces jointes

  • Marc.zip
    1.7 KB · Affichages: 14
  • Marc.zip
    1.7 KB · Affichages: 15
  • Marc.zip
    1.7 KB · Affichages: 17

Celeda

XLDnaute Barbatruc
Bonjour,

je me permets de m'insérer dans votre fil car je suivais ce fil et je trouve que Robert tu nous as fait un vrai tour de magie :

si on décoche et recoche oups plus de données : robert et les tours de passe passe

mais si moi je souhaite conserver la première plage comment puis-je modifier la macro, svp

Merci

Celeda
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Marc, Jerome, Celeda, bonjour le forum,

Je ne sais pas pourquoi mais j'ai comme l'impression que Celeda se moque... Mon magicien préféré c'était Garcimore, ça situe un peu mon niveu...

Non il me semblait que c'était ce que Marc voulait. Maintenant si tu veux effacer la copie ça donne :


Private Sub CheckBox1_Click() 'au clic dans la case à cocher
If CheckBox1.Value = True Then 'condition : si la case est cochée
Range('D7:H9').Copy Destination:=Range('I7') 'copie la plage D7:H9 dans I7:M9
Else 'sinon (case décochée)
Range('I7:M9').ClearContents 'efface le contenu de la plage I7:M9
End If 'fin de la condition
End Sub
 

Celeda

XLDnaute Barbatruc
Bonjour,

Mais non non RObert je ne me moque pas de toi, voyons, c'est bien mal interprétré mes pensées (j'ai trop de respect pour les gens) et je ne suis pas assez douée pour manipuler certains humours caustiques, je te rassure, c'est bien mal me connaître mais que nenni, même si je ne peux te convaincre,

je vais t'expliquer pourquoi j'ai souri;

premier click : on fait la copie

deuxième click : on efface la plage (cela c'est ok)

troisième click (et oui je l'ai fait :) ), plus de données du tout

(pour la petite histoire Robert, je vais l'utiliser avec des users qui adorent appuyer sur tous les gadgets :lol: )(donc en quelque sorte rendre 'innofensive' la case à cocher en troisième click)

alors voilà pourquoi je me suis éclatée de rires en imaginant ce qu'il risquait d'arriver c'est tout,

et je te présente mes excuses si cela a chatouillé ta suceptibilité mais j'ai quand même bien ri (et pas de toi!!)

Celeda
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 335
Membres
103 520
dernier inscrit
Azise