Excel2010 traitement auto checkbox pour listbox
Résolu
ced3c
Messages postés
237
Date d'inscription
Statut
Membre
Dernière intervention
-
ced3c Messages postés 237 Date d'inscription Statut Membre Dernière intervention -
ced3c Messages postés 237 Date d'inscription Statut Membre Dernière intervention -
Bonjour et merci d'avance pour votre aide,
Dans un userform j'ai 31 checkbox et 1 listbox
J'aimerai quand je coche certaines checkbox, que le caption des checkbox s affiche dans la listbox et s enlève si je décoche
J'arrive a le faire en individuel
mais je ne sais pas comment le faire pour toutes mes checkbox (je cherche à éviter de répéter 31 fois le meme code pour chaque checkbox)
Toute aide est la bienvenue
merci
Dans un userform j'ai 31 checkbox et 1 listbox
J'aimerai quand je coche certaines checkbox, que le caption des checkbox s affiche dans la listbox et s enlève si je décoche
J'arrive a le faire en individuel
Private Sub CheckBox1_Click() If CheckBox1 = True Then ListBox1.AddItem CheckBox1.Caption ElseIf CheckBox1 = False Then ListBox1.RemoveItem CheckBox1 Else End If End Sub
mais je ne sais pas comment le faire pour toutes mes checkbox (je cherche à éviter de répéter 31 fois le meme code pour chaque checkbox)
Toute aide est la bienvenue
merci
A voir également:
- Excel2010 traitement auto checkbox pour listbox
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Ce logiciel gratuit et léger est parfait pour remplacer Word, même sur un vieux PC - Guide
- Ciel auto entrepreneur - Télécharger - Comptabilité & Facturation
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
7 réponses
je continue de chercher sur le net
Je pense qu'il faut passer par une boucle du style
Une petite aide svp ?
Je pense qu'il faut passer par une boucle du style
for i = 1 to 31mais je ne sais pas comment le construire
Une petite aide svp ?
désolé de relancer le sujet mais je ne trouve pas comment faire
Je dois faire une procedure générique et l'appeller pour chaque checkbox ?
j'ai essayer quelques chose comme cela mais bien évidement cela ne marche pas
dans ce code je voulais remplacer le chiffre des checkbox par "i" pour en faire un code générique
puis je voulais appeler cette procedure pour chaque checkbox soit :
etc ... jusqu'a checkbox31
visiblement ce n'est pas bon du tout. Peut etre meme que je complique le code
Pourriez vous me dire comment je dois procéder svp ?
Je dois faire une procedure générique et l'appeller pour chaque checkbox ?
j'ai essayer quelques chose comme cela mais bien évidement cela ne marche pas
Sub traitement() Dim i As Integer For i = 1 To 31 If CheckBox(i) = True Then ListBox1.AddItem CheckBox(i).Caption ElseIf CheckBox(i) = False Then ListBox1.RemoveItem CheckBox(i) Else End If Next End Sub
dans ce code je voulais remplacer le chiffre des checkbox par "i" pour en faire un code générique
puis je voulais appeler cette procedure pour chaque checkbox soit :
Private Sub CheckBox1_Click() Call traitement End Sub
Private Sub CheckBox1_Click() Call traitement End Sub
etc ... jusqu'a checkbox31
visiblement ce n'est pas bon du tout. Peut etre meme que je complique le code
Pourriez vous me dire comment je dois procéder svp ?
Bonsoir,
boucle sur des textbox :
For i = 1 to 20
UserForm1.Controls("textbox" & i).value= "blablabla..."
next i
Mais essaie plutôt en passant le n° checkbox en paramètre pour n'agir que sur celui cliqué.
Et n'oublie pas qu'en joignant systématiquement un fichier de test tu augmentes les réponses.
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
boucle sur des textbox :
For i = 1 to 20
UserForm1.Controls("textbox" & i).value= "blablabla..."
next i
Mais essaie plutôt en passant le n° checkbox en paramètre pour n'agir que sur celui cliqué.
Et n'oublie pas qu'en joignant systématiquement un fichier de test tu augmentes les réponses.
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
oui c est vrai que j aurai pu joindre le fichier
J essaie votre solution
Merci beaucoup pour votre reponse
J essaie votre solution
Merci beaucoup pour votre reponse
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J ai essayer d'integrer tout ca mais je suis visiblement pas tres doué
Je joint le fichier si vous avez la patience de regarder
le code est en debut du userform "vente" dans la procedure "traitement"
https://www.cjoint.com/?3KnoEe5Woy7
merci d avance
Je joint le fichier si vous avez la patience de regarder
le code est en debut du userform "vente" dans la procedure "traitement"
https://www.cjoint.com/?3KnoEe5Woy7
merci d avance
Bonjour tout le monde,
En fait, ce serait plus "compliqué", mais plus propre de passer par un module de classe.
Mais sinon, pour répondre à la question telle qu'elle est posée :
En fait, ce serait plus "compliqué", mais plus propre de passer par un module de classe.
Mais sinon, pour répondre à la question telle qu'elle est posée :
Option Explicit Sub traitement(numCheck As Integer) Dim i As Integer If Me.Controls("CheckBox" & numCheck) = True Then ListBox1.AddItem Me.Controls("CheckBox" & numCheck).Caption ElseIf Me.Controls("CheckBox" & numCheck) = False Then For i = 0 To ListBox1.ListCount - 1 If ListBox1.List(i) = Me.Controls("CheckBox" & numCheck).Caption Then ListBox1.RemoveItem i Exit For End If Next i Else End If End Sub Private Sub CheckBox1_Change() Call traitement(1) End Sub Private Sub CheckBox2_Change() Call traitement(2) End Sub Private Sub CheckBox3_Change() Call traitement(3) End Sub Private Sub CheckBox4_Change() Call traitement(4) End Sub Private Sub CheckBox5_Change() Call traitement(5) End Sub Private Sub CheckBox6_Change() Call traitement(6) End Sub 'etc etc etc etc..... Private Sub CheckBox31_Change() Call traitement(31) End Sub