Test sur plusieurs CheckBoxs
dudulleray
-
dudulleray -
dudulleray -
Bonjour a toutes et tous, Forum bonjour
J'ai un UserForm1 plus un Frame3 ou j'ai placer 14 CheckBoxs de 1 à 14
ainsi que 14 Labels de 82 à 95
Je souhaiterai svp si possible afficher la date du jour dans les Labels
Ex: Si je clic pour coché sur un des CheckBoxs que cela m'affiche la date du jour dans le Label correspondant et si je reclic que ça efface (au cas ou je me planterai de ligne), LOL
Ex:
Checkbox1 pour Label82
Checkbox2 pour Label83
Checkbox3 pour Label84 Etc etc
PS: Code bon pour affichage de la date
Le but étant de valider des dépenses mensuelles une fois débiter de mon compte.
Donc il faudrai que les ChecBoxs restent cochés afin de les retrouver dans l'état quand je ré-ouvre l'userform1, ca va de soi LOL
j'ai vu qu'on pouvait par une boucle gérer tout ça, afin d'éviter 14 fois une répètition du code, mais je ne retrouve pas ce code.
Merci a vous, bon Dimanche et a plus tard
Bye Raymond
J'ai un UserForm1 plus un Frame3 ou j'ai placer 14 CheckBoxs de 1 à 14
ainsi que 14 Labels de 82 à 95
Je souhaiterai svp si possible afficher la date du jour dans les Labels
Ex: Si je clic pour coché sur un des CheckBoxs que cela m'affiche la date du jour dans le Label correspondant et si je reclic que ça efface (au cas ou je me planterai de ligne), LOL
Ex:
Checkbox1 pour Label82
Checkbox2 pour Label83
Checkbox3 pour Label84 Etc etc
PS: Code bon pour affichage de la date
WorksheetFunction.Proper(Format(Now, "Dddd dd Mmmm yyyy"))
Le but étant de valider des dépenses mensuelles une fois débiter de mon compte.
Donc il faudrai que les ChecBoxs restent cochés afin de les retrouver dans l'état quand je ré-ouvre l'userform1, ca va de soi LOL
j'ai vu qu'on pouvait par une boucle gérer tout ça, afin d'éviter 14 fois une répètition du code, mais je ne retrouve pas ce code.
Merci a vous, bon Dimanche et a plus tard
Bye Raymond
A voir également:
- Test sur plusieurs CheckBoxs
- Test performance pc - Guide
- Steam deck oled test - Guide
- Test disque dur - Télécharger - Informations & Diagnostic
- Test composant pc - Guide
- Test batterie pc - Guide
13 réponses
Bonjour a toutes et tous, forum bonjour
J'ai chercher et fait maintes essais et je ne trouve pas comment faire
Svp si quelqu'un a un petit code, pour mon programme ça m'arrangerai
bien et me permettrai d'avancer. merci d'avance
Sinon je vous souhaitent une bonne après midi
Merci de votre temps et de votre aide
Cdlt
J'ai chercher et fait maintes essais et je ne trouve pas comment faire
Svp si quelqu'un a un petit code, pour mon programme ça m'arrangerai
bien et me permettrai d'avancer. merci d'avance
Sinon je vous souhaitent une bonne après midi
Merci de votre temps et de votre aide
Cdlt
Bonjour,
Tu dois reserver une partie de ta feuille Excel pour stocker les états des checkboxes et les libellés des labels si tu veux les retouver à la prochaine session.
Du coup, ce serait plus simple en utilisant un beau tableau excel avec les formules adéquates, pas besoin de code VBA pour faire ce que tu demandes.
;)
Tu dois reserver une partie de ta feuille Excel pour stocker les états des checkboxes et les libellés des labels si tu veux les retouver à la prochaine session.
Du coup, ce serait plus simple en utilisant un beau tableau excel avec les formules adéquates, pas besoin de code VBA pour faire ce que tu demandes.
;)
Voilà un exemple, j'ai pris feuil1 pour conserver les valeurs mais tu peux changer le nom
Bon courage.
'cette procédure est a compléter ou à créer dans le code de UserForm1
Private Sub UserForm_Initialize()
'Tes instructions
'................
Init_CheckBox
End Sub
'cette procédure est à coller dans le code de UserForm1
'faire autant de procédures que de checkbox
'modifier les numéros des chekbox et des labels
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Label1.Caption = WorksheetFunction.Proper(Format(Now, "Dddd dd Mmmm yyyy"))
Sheets("feuil1").Range("A1").Value = 1
Sheets("feuil1").Range("B1").Value = Label1.Caption
Else
Label1.Caption = ""
Sheets("feuil1").Range("A1").Value = 0
Sheets("feuil1").Range("B1").Value = Label1.Caption
End If
End Sub
'cette procédure est à coller dans le code de le code de UserForm1
'compléter le code suivant le modèle de Checkbox1
'autant de fois que de checkboxs
'modifier les numéros des chekboxs et des labels
Private Sub Init_CheckBox()
'Checkbox1
If Sheets("feuil1").Range("A1") = 1 Then
CheckBox1.Value = True
Label1.Caption = Sheets("feuil1").Range("B1").Value
Else
CheckBox1.Value = False
Label1.Caption = Sheets("feuil1").Range("B1").Value
End If
'Checkbox2
'........
'........
End Sub
Bon courage.
Bonjour,
pour le problème de boucle:
Pour qu'un clic sur une checkbox mette à jour son label, et sans copier le code pour chaque checkbox, il faut utiliser des collections d'objets et des collections de classe .
Pour cela se référer au dossier de lermite222 en suivant le lien ci dessous
http://www.commentcamarche.net/faq/31279-vba-ajouter-des-controles-dynamiquement-dans-un-userform
Bonne suite et bonne lecture
pour le problème de boucle:
Dim MonControl As Control
For i = 1 To 25
MaCheck = "CheckBox" & i on crée une var contenant le nom de la checkbox
MonLab = "Label" & i + 81 'on crée le nom du Label correspondant
If Controls(MaCheck).Value = True Then
Controls(MonLab).Caption = "C'est Coché "
Else
Controls(MonLab).Caption = "C'est décoché"
End If
Nextce code sera lancé par un bouton par exemple.
Pour qu'un clic sur une checkbox mette à jour son label, et sans copier le code pour chaque checkbox, il faut utiliser des collections d'objets et des collections de classe .
Pour cela se référer au dossier de lermite222 en suivant le lien ci dessous
http://www.commentcamarche.net/faq/31279-vba-ajouter-des-controles-dynamiquement-dans-un-userform
Bonne suite et bonne lecture
Salut Paf
Merci pour ta réponse, je vais testé ce code également et pour le lien, je sais bien
mais les modules de classe hum pas encore assez costaud pour faire
par contre il y a beaucoup de doc sur le net pour les modules de classe, je regarderai aussi
Encore merci a toi je te souhaite une bonne fin d'après midi
Cdlt Ray
Merci pour ta réponse, je vais testé ce code également et pour le lien, je sais bien
mais les modules de classe hum pas encore assez costaud pour faire
par contre il y a beaucoup de doc sur le net pour les modules de classe, je regarderai aussi
Encore merci a toi je te souhaite une bonne fin d'après midi
Cdlt Ray
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour gardiendelanuit,
J'ai vérifier je suis dans le bon Forum, vu que je demande un code Excel 2007
pour résoudre un problème auquel je ne suis pas parvenu
Pour la bureautique pas du tout ma tasse de thé
Merci tout de mème de ta réponse
Cdtl
J'ai vérifier je suis dans le bon Forum, vu que je demande un code Excel 2007
pour résoudre un problème auquel je ne suis pas parvenu
Pour la bureautique pas du tout ma tasse de thé
Merci tout de mème de ta réponse
Cdtl
Salut Yoda,
Merci beucoup pour ta réponse, j'ai la place pour la réservation sur ma feuille, mais je ne sais pas pour coder pour stocker les états et les labels.
Si tu a le temps et si tu veux bien me faire un exemple en vba après je me débrouillerai
je vais continuer mon programme car trop avancé pour faire marche arrière
j'ai passer des heures a contruire sur le papier etc etc
Merci d'avance pour ton aide
Cdlt Ray
Merci beucoup pour ta réponse, j'ai la place pour la réservation sur ma feuille, mais je ne sais pas pour coder pour stocker les états et les labels.
Si tu a le temps et si tu veux bien me faire un exemple en vba après je me débrouillerai
je vais continuer mon programme car trop avancé pour faire marche arrière
j'ai passer des heures a contruire sur le papier etc etc
Merci d'avance pour ton aide
Cdlt Ray
Re Salut yoda
Je te remercie beaucoup pour le code , je vais essayer dès que possible, je fini la compta, pendant que je suis dans les chiffres, pas le droit a l'erreur.
j'ai regarder le code heureusement que je n'ai pas 200 CheckBoxs
Une question svp, pourquoi ne pas faire une boucle sur le nombre de CheckBoxs , cela
éviterai le répètitif, je n'ai pas vraiment trouver sur le net quelque chose de concret
sur les checkBoxs.
Bon voila, encore merci pour l'aide que tu m'apportes
bonne apres midi
Cdlt
Je te remercie beaucoup pour le code , je vais essayer dès que possible, je fini la compta, pendant que je suis dans les chiffres, pas le droit a l'erreur.
j'ai regarder le code heureusement que je n'ai pas 200 CheckBoxs
Une question svp, pourquoi ne pas faire une boucle sur le nombre de CheckBoxs , cela
éviterai le répètitif, je n'ai pas vraiment trouver sur le net quelque chose de concret
sur les checkBoxs.
if i =1 to 25 if checkboxs(i) =true then next i
Bon voila, encore merci pour l'aide que tu m'apportes
bonne apres midi
Cdlt
Re
Ok merci pour la réponse, c'est un code avec une boucle For Each ... Next que j'avais
vu, je vais essayer de nouveau retrouver et de chercher dans ce sens.
sinon je ferais des essais avec ton code, j'ai imprimer comme je perds pas
A plus tard et encore merci a toi, c'est sympa
Cdlt Ray
Ok merci pour la réponse, c'est un code avec une boucle For Each ... Next que j'avais
vu, je vais essayer de nouveau retrouver et de chercher dans ce sens.
sinon je ferais des essais avec ton code, j'ai imprimer comme je perds pas
A plus tard et encore merci a toi, c'est sympa
Cdlt Ray
Bonjour Yoda, Bonjour Paf, forum
J'ai réussi a faire le code ci dessous ca fonctionne sauf que lorsque je réouvre mon fichier, les données des Labels sont bien restitués MAIS toutes les CheckBoxs se trouvent décochés, je ne sais pas pourquoi.
Merci pour vos conseils d'hier, c'est gentil a vous, si une solution LOL je suis preneur
Bonne journée a vous
Cordialement Ray
J'ai réussi a faire le code ci dessous ca fonctionne sauf que lorsque je réouvre mon fichier, les données des Labels sont bien restitués MAIS toutes les CheckBoxs se trouvent décochés, je ne sais pas pourquoi.
Merci pour vos conseils d'hier, c'est gentil a vous, si une solution LOL je suis preneur
Bonne journée a vous
Cordialement Ray
Private Sub UserForm_Initialize()
Dim I
'*** Récupérer les valeurs des CheckBox et labels
For I = 1 To 14
Me.Controls("Label" & 180 + I) = Sheets("USF").Cells(I, 2)
If Me.Controls("Label" & 180 + I) <> "" Then
Me.Controls("Label" & 180 + I).BackColor = vbGreen
End If
Next I
End Sub
'********** TEXTBOX (1)
Private Sub TextBox1_Change()
Sheets("USF").Cells(TextBox2.Value, 1) = TextBox1.Value
If TextBox1.Value = 0 Then
Me.Controls("Label" & 180 + TextBox2.Value).BackColor = &HFFFFC0
Me.Controls("Label" & 180 + TextBox2.Value).Caption = ""
Sheets("USF").Cells(TextBox2.Value, 2) = ""
Else
Me.Controls("Label" & 180 + TextBox2.Value).BackColor = vbGreen
Me.Controls("Label" & 180 + TextBox2.Value).Caption = WorksheetFunction.Proper(Format(Now, "Dddd dd Mmmm yyyy"))
Sheets("USF").Cells(TextBox2.Value, 2) = WorksheetFunction.Proper(Format(Now, "Dddd dd Mmmm yyyy"))
End If
End Sub
'********** TEXTBOX (2)
Private Sub TextBox2_Change()
Sheets("USF").Cells(TextBox2.Value, 1) = TextBox1.Value
If TextBox1.Value = 0 Then
Me.Controls("Label" & 180 + TextBox2.Value).BackColor = &HFFFFC0
Me.Controls("Label" & 180 + TextBox2.Value).Caption = ""
Sheets("USF").Cells(TextBox2.Value, 2) = ""
Else
Me.Controls("Label" & 180 + TextBox2.Value).BackColor = vbGreen
Me.Controls("Label" & 180 + TextBox2.Value).Caption = WorksheetFunction.Proper(Format(Now, "Dddd dd Mmmm yyyy"))
Sheets("USF").Cells(TextBox2.Value, 2) = WorksheetFunction.Proper(Format(Now, "Dddd dd Mmmm yyyy"))
End If
End Sub
'############## CHECKBOX (1 à 14) LABELS (181 à 194)
Private Sub CheckBox1_Click()
TextBox2.Value = 1
TextBox1.Value = CheckBox1.Value * -1
End Sub
Private Sub CheckBox2_Click()
TextBox2.Value = 2
TextBox1.Value = CheckBox2.Value * -1
End Sub
Private Sub CheckBox3_Click()
TextBox2.Value = 3
TextBox1.Value = CheckBox3.Value * -1
End Sub
Private Sub CheckBox4_Click()
TextBox2.Value = 4
TextBox1.Value = CheckBox4.Value * -1
End Sub
Private Sub CheckBox5_Click()
TextBox2.Value = 5
TextBox1.Value = CheckBox5.Value * -1
End Sub
Private Sub CheckBox6_Click()
TextBox2.Value = 6
TextBox1.Value = CheckBox6.Value * -1
End Sub
Private Sub CheckBox7_Click()
TextBox2.Value = 7
TextBox1.Value = CheckBox7.Value * -1
End Sub
Private Sub CheckBox8_Click()
TextBox2.Value = 8
TextBox1.Value = CheckBox8.Value * -1
End Sub
Private Sub CheckBox9_Click()
TextBox2.Value = 9
TextBox1.Value = CheckBox9.Value * -1
End Sub
Private Sub CheckBox10_Click()
TextBox2.Value = 10
TextBox1.Value = CheckBox10.Value * -1
End Sub
Private Sub CheckBox11_Click()
TextBox2.Value = 11
TextBox1.Value = CheckBox11.Value * -1
End Sub
Private Sub CheckBox12_Click()
TextBox2.Value = 12
TextBox1.Value = CheckBox12.Value * -1
End Sub
Private Sub CheckBox13_Click()
TextBox2.Value = 13
TextBox1.Value = CheckBox13.Value * -1
End Sub
Private Sub CheckBox14_Click()
TextBox2.Value = 14
TextBox1.Value = CheckBox14.Value * -1
End Sub
Bonjour,
Tu as oublié d'initialiser les CheckBox.
Tu as oublié d'initialiser les CheckBox.
Private Sub UserForm_Initialize()
Dim I
'*** Récupérer les valeurs des CheckBox et labels
For I = 1 To 14
'Init CheckBox
If Sheets("USF").Cells(I, 1)>0 Then
Me.Controls("CheckBox" & I).Value = True
Else
Me.Controls("CheckBox" & I).Value = False
End If
'Init Label
Me.Controls("Label" & 180 + I) = Sheets("USF").Cells(I, 2)
If Me.Controls("Label" & 180 + I) <> "" Then
Me.Controls("Label" & 180 + I).BackColor = vbGreen
End If
Next I
End Sub
Re salut yoda
Merci pour ta réponse, Génial ca fonctionne très bien, je te remercie beaucoup pour la modification, nickel super sympa.
Une question svp j'ai bien regarder le code en entier et Je pense qu'il doit etre possible de supprimer les deux Textboxs (1 et 2) et de modifier le code pour envoyer les données des checkboxs et des Labels directement sur la feuille, mais la je ne sais pas faire.
Encore merci et merci, vu l'heure je te souhaite un bon app
A plus tard de te relire avec plaisir
Cordialement Ray
Merci pour ta réponse, Génial ca fonctionne très bien, je te remercie beaucoup pour la modification, nickel super sympa.
Une question svp j'ai bien regarder le code en entier et Je pense qu'il doit etre possible de supprimer les deux Textboxs (1 et 2) et de modifier le code pour envoyer les données des checkboxs et des Labels directement sur la feuille, mais la je ne sais pas faire.
Encore merci et merci, vu l'heure je te souhaite un bon app
A plus tard de te relire avec plaisir
Cordialement Ray
Tout juste, je me demandais porquoi tu avais mis des textbox...
A la place je mettrais une procedure qui reçoit deux paramètres, le n° du checkbox et sa valeur.
Voila le nouveau code, à toi de compléter pour les autres checkbox.
'Continue pour les autres CheckBox
A la place je mettrais une procedure qui reçoit deux paramètres, le n° du checkbox et sa valeur.
Voila le nouveau code, à toi de compléter pour les autres checkbox.
Private Sub UserForm_Initialize()
Dim i
'*** Récupérer les valeurs des CheckBox et labels
For i = 1 To 14
'CheckBox
If Sheets("USF").Cells(i, 1) > 0 Then
Me.Controls("CheckBox" & i).Value = True
Else
Me.Controls("CheckBox" & i).Value = False
End If
'Label
Me.Controls("Label" & i) = Sheets("USF").Cells(i, 2)
If Me.Controls("Label" & i + 180) <> "" Then
Me.Controls("Label" & i + 180).BackColor = vbGreen
Else
Me.Controls("Label" & i + 180).BackColor = &HFFFFC0
End If
Next i
End Sub
Private Sub Save_Data(i As Integer, v As Boolean)
If v = False Then
Sheets("USF").Cells(i, 1) = 0
Me.Controls("Label" & i + 180).BackColor = &HFFFFC0
Me.Controls("Label" & i + 180).Caption = ""
Else
Sheets("USF").Cells(i, 1) = 1
Me.Controls("Label" & i + 180).BackColor = vbGreen
Me.Controls("Label" & i + 180).Caption = WorksheetFunction.Proper(Format(Now, "Dddd dd Mmmm yyyy"))
End If
Sheets("USF").Cells(i, 2) = Me.Controls("Label" & i + 180).Caption
End Sub
Private Sub CheckBox1_Click()
Save_Data 1, CheckBox1.Value
End Sub
Private Sub CheckBox2_Click()
Save_Data 2, CheckBox2.Value
End Sub
'Continue pour les autres CheckBox
Salut yoda
Merci pour la modification, je vais essayer ça mais avant
Je viens de penser que mème si ça marche
j'ai peur qu'a la prochaine ouverture de l'usf elle va se remettre à la date du jour
ce qui veux dire que aujourd'hui mardi c'est ok mais demain mercredi tout les labels que j'ai coché la veille vont passer a mercredi et ainsi de suite.
lors de la réouverture du fichier parce que ça déclenche une évènementielle qui remet la date du jour dans les cellules concernées
en ce qui concerne le 2 textbox, ils sont là pour mémoriser le contenu et la position du CheckBox coché ou décochés ils sont nécessaire au fonctionnement
quand penses tu svp
a plus tard et merci
Merci pour la modification, je vais essayer ça mais avant
Je viens de penser que mème si ça marche
j'ai peur qu'a la prochaine ouverture de l'usf elle va se remettre à la date du jour
ce qui veux dire que aujourd'hui mardi c'est ok mais demain mercredi tout les labels que j'ai coché la veille vont passer a mercredi et ainsi de suite.
lors de la réouverture du fichier parce que ça déclenche une évènementielle qui remet la date du jour dans les cellules concernées
en ce qui concerne le 2 textbox, ils sont là pour mémoriser le contenu et la position du CheckBox coché ou décochés ils sont nécessaire au fonctionnement
quand penses tu svp
a plus tard et merci
ok bien reçu tes infos, et je t'en remercie
"Dans la modification que je te propose, plus besoin de textbox, c'est ce que tu voulais. "
oui oui on est bien d'accord, d'ailleurs je commence a essayer les modifs
je te tient au courant pour la date et les modifs
Merci a toi j'y retourne a plus tard
Ray
"Dans la modification que je te propose, plus besoin de textbox, c'est ce que tu voulais. "
oui oui on est bien d'accord, d'ailleurs je commence a essayer les modifs
je te tient au courant pour la date et les modifs
Merci a toi j'y retourne a plus tard
Ray