Checkbox et macro excel
jeanraoul65
Messages postés
11
Statut
Membre
-
Le Pingou Messages postés 12720 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12720 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai une feuille excel avec une colone (D) remplie de checkbox. J'aimerai creer une macro qui vienne copier dans un autre onglet que ma feuille de départ , les infos contenues dans les cellules (A,B,C) des lignes comportant une checkbox validée (dont la valeur est true). En théorie je pense qu'il faut faire une boucle qui parcours la colonne contenant les checkbox et ensuite copier les cellules vers l'autre onglet... en pratique je suis archi novice en VBA..
Merci d'avance si vous pouvez m'aider à la conception de cette macro
J'ai une feuille excel avec une colone (D) remplie de checkbox. J'aimerai creer une macro qui vienne copier dans un autre onglet que ma feuille de départ , les infos contenues dans les cellules (A,B,C) des lignes comportant une checkbox validée (dont la valeur est true). En théorie je pense qu'il faut faire une boucle qui parcours la colonne contenant les checkbox et ensuite copier les cellules vers l'autre onglet... en pratique je suis archi novice en VBA..
Merci d'avance si vous pouvez m'aider à la conception de cette macro
A voir également:
- Checkbox et macro excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Word et excel gratuit - Guide
- Liste déroulante excel - Guide
- Si et ou excel - Guide
- Déplacer colonne excel - Guide
11 réponses
Bonjour,
Avec un exemple se serait plus simple de comprendre .... !
Que faut-il comprendre par : une colonne (D) remplie de checkbox ... ?
Avec un exemple se serait plus simple de comprendre .... !
Que faut-il comprendre par : une colonne (D) remplie de checkbox ... ?
Cela veut dire que chaque cellules de la colonne D comporte une checkbox.
Par exemple si les cellules D4 et D7 sont cochées , je veux que les cellules A4,B4,C4,A7,B7,C7 soient copiées par la macro sur une autre feuille
J'espère etre assez clair.
Par exemple si les cellules D4 et D7 sont cochées , je veux que les cellules A4,B4,C4,A7,B7,C7 soient copiées par la macro sur une autre feuille
J'espère etre assez clair.
Bonjour,
Oui et non, à quelle endroit sur l'autre feuille ?
Est-ce que cette feuille existe ou faut-il la créer ?
Oui et non, à quelle endroit sur l'autre feuille ?
Est-ce que cette feuille existe ou faut-il la créer ?
Bonjour Jean Pierre
Mon prolème ce n'est pas tant la méthode pour copier les valeurs d'une feuille à l'autre ( ca j'ai réussi grace à une modif d'une de mes anciennes macro) , c'est vraiment la partie test de l'information contenue dans les checkbox, cad comment faire la boucle pour parcourir l'ensemble des checkbox de la colonne D et déterminer les numéros des lignes de celles qui sont actuellement cochées.
Merci pour tes réponses rapide
Mon prolème ce n'est pas tant la méthode pour copier les valeurs d'une feuille à l'autre ( ca j'ai réussi grace à une modif d'une de mes anciennes macro) , c'est vraiment la partie test de l'information contenue dans les checkbox, cad comment faire la boucle pour parcourir l'ensemble des checkbox de la colonne D et déterminer les numéros des lignes de celles qui sont actuellement cochées.
Merci pour tes réponses rapide
Bonsoir,
tu sais, ça serait bcp plus simple avec des x dans les cellules, quitte à faire une macro qui te le met et l'enlève avec un double-clic...
eric
tu sais, ça serait bcp plus simple avec des x dans les cellules, quitte à faire une macro qui te le met et l'enlève avec un double-clic...
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Voici la macro pour la première case à cocher ( cellule "D1")
Sub Caseàcocher1_Clic()
If Range("D1").Value = Faux Then Exit Sub ' case décochée, ne rien faire
Range("A1:C1").Copy Destination:=Sheets("Feuil2").Range("a1:c1")
End Sub
La répéter en incrémentant les numéros de ligne , exemple pour la "D2"
Sub Caseàcocher2_Clic()
If Range("D2").Value = Faux Then Exit Sub ' case décochée, ne rien faire
Range("A2:C2").Copy Destination:=Sheets("Feuil2").Range("a2:c2")
End Sub
Au pardon, je viens de voir que vous désirez le faire d'une fois avec une boucle, patiente
Voici la macro pour la première case à cocher ( cellule "D1")
Sub Caseàcocher1_Clic()
If Range("D1").Value = Faux Then Exit Sub ' case décochée, ne rien faire
Range("A1:C1").Copy Destination:=Sheets("Feuil2").Range("a1:c1")
End Sub
La répéter en incrémentant les numéros de ligne , exemple pour la "D2"
Sub Caseàcocher2_Clic()
If Range("D2").Value = Faux Then Exit Sub ' case décochée, ne rien faire
Range("A2:C2").Copy Destination:=Sheets("Feuil2").Range("a2:c2")
End Sub
Au pardon, je viens de voir que vous désirez le faire d'une fois avec une boucle, patiente
Bonjour,
Voici pour la boucle:
A vous de complèter selon vos besoins.
Voici pour la boucle:
For c = 1 To Application.CountA(Range("d:d"))
If Cells(c, 4).Value = "Vrai" Then
MsgBox ("copier les valeurs et les coller sur autre feuille")
End If
Next c
A vous de complèter selon vos besoins.
Bonjour,
Prennez cette version qui tient compte de la première cellule qui contient la case à cocher, ici la "D1"
Note : pour ceci checkbox prenait automatiquement sa valeur afin faire le test VRAI ou FAUX
cela dépend du type de contrôle que vous avez utilisé ; Controle de Formulaire ou Contrôle ActivX
Prennez cette version qui tient compte de la première cellule qui contient la case à cocher, ici la "D1"
' position de la première case à cocher
pos = Range("D1").Row
For c = 0 To Application.CountA(Range("d:d"))
If Cells(pos + c, 4).Value = "Vrai" Then
MsgBox ("copier les valeurs et les coller sur autre feuille")
End If
next c
Note : pour ceci checkbox prenait automatiquement sa valeur afin faire le test VRAI ou FAUX
cela dépend du type de contrôle que vous avez utilisé ; Controle de Formulaire ou Contrôle ActivX
J'ai essayé sur mon fichier mais le test ne s'effectue pas, c'est comme si ma colonne D était vide, pas de vrai ni de faux meme lorsque je coche les box ,
y a t'il une manip à effectuer pour effectivement lier la checkbox a la cellule ? ( peut etre une option lors de la création de la check box??)
Merci
y a t'il une manip à effectuer pour effectivement lier la checkbox a la cellule ? ( peut etre une option lors de la création de la check box??)
Merci
Bonjour,
Quel type de contrôle avez-vous utilisé ; Controle de Formulaire ou Contrôle ActivX ?
Faites un clic droit sur une case à cocher .... que se passe-t-il ?
J'attends !
Quel type de contrôle avez-vous utilisé ; Controle de Formulaire ou Contrôle ActivX ?
Faites un clic droit sur une case à cocher .... que se passe-t-il ?
J'attends !
J'ai inséré des activex par défaut (je ne connais pas la différence entre les 2 ) , en faisant clic droit propiétés j'ai trouvé le champs "linked cell" qui definit la celulle associée . La macro marche desormais . Le seul poblème est qu'il faut rentrer pour chaque checkbox la cellule associée "à la mano" ce qui est assez fastidieux etant donné ma liste d'articles... Je pense que je vais reconsiderer la solution proposée par Eriic un peu plus haut pour voir si cela convient.
Merci
Merci
Bonjour,
Eh oui vous devez renseigner la propriété de chaque case à cocher, il en est de même pour type "Contrôle de Formulaire".
En appliquant la solution d'eriiic (salutations au passage) vous faites le bon choix.
Concernant l'instruction pour la boucle, il vous suffira de remplacer "Vrai" par "X" et c'est bon.
Note: dans votre code vous placez un "X" majuscule et la ligne de code devient :
If StrConv(Cells(pos + c, 4), vbUpperCase) = "X" Then
En cas de minuscule dans les cellules se sera converti en majuscule par "StrConv()
Eh oui vous devez renseigner la propriété de chaque case à cocher, il en est de même pour type "Contrôle de Formulaire".
En appliquant la solution d'eriiic (salutations au passage) vous faites le bon choix.
Concernant l'instruction pour la boucle, il vous suffira de remplacer "Vrai" par "X" et c'est bon.
Note: dans votre code vous placez un "X" majuscule et la ligne de code devient :
If StrConv(Cells(pos + c, 4), vbUpperCase) = "X" Then
En cas de minuscule dans les cellules se sera converti en majuscule par "StrConv()