Ecrire un code vba dans un checkbox
titi17-08
Messages postés
117
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour le forum
voila dans ma création de texbox et checkbox en dynamique je dois créer un code vba voici le code
j'ai une erreur sur l'objet
merci de votre aide
voila dans ma création de texbox et checkbox en dynamique je dois créer un code vba voici le code
j'ai une erreur sur l'objet
merci de votre aide
Set Obj = Liste_Freelance_periode.Controls.Add("forms.checkbox.1")
With Obj
.Name = "Eff_" & (NT + 1)
'.Object.Value = "Sjtc_" & (NT + 1)
.Left = ((10 * LL) + Ln + Lp + Lc + Lnb + Lt + Lm + Lch + Lw + Ls)
.Top = ((168 + (NT * LL)) + (h * NT))
.Width = Le
.Height = h
With Obj.VBProject.VBComponents _
("forms.checkbox.1").CodeModule
Code = "Private Sub Effacer_Click()" & vbCrLf
Code = Code & "If Effacer.Value = True Then" & vbCrLf
Code = Code & "Me.Nom_1.BackColor = &HFF&" & vbCrLf
Code = Code & "Me.Prenom_1.BackColor = &HFF&" & vbCrLf
Code = Code & "Me.Client_1.BackColor = &HFF&" & vbCrLf
Code = Code & "Me.Chiffre_1.BackColor = &HFF&" & vbCrLf
Code = Code & "Me.Marge_1.BackColor = &HFF&" & vbCrLf
Code = Code & "Me.TJM_1.BackColor = &HFF&" & vbCrLf
Code = Code & "Me.WOW_1.BackColor = &HFF&" & vbCrLf
Code = Code & "Me.Nbjrs_1.BackColor = &HFF&" & vbCrLf
Code = Code & "Me.SJTC_1.BackColor = &HFF&" & vbCrLf
Code = Code & "Else" & vbCrLf
Code = Code & "Me.Nom_1.BackColor = &HFFFFFF" & vbCrLf
Code = Code & "Me.Prenom_1.BackColor = &HFFFFFF" & vbCrLf
Code = Code & "Me.Client_1.BackColor = &HFFFFFF" & vbCrLf
Code = Code & "Me.Chiffre_1.BackColor = &HFFFFFF" & vbCrLf
Code = Code & "Me.Marge_1.BackColor = &HFFFFFF" & vbCrLf
Code = Code & "Me.TJM_1.BackColor = &HFFFFFF" & vbCrLf
Code = Code & "Me.WOW_1.BackColor = &HFFFFFF" & vbCrLf
Code = Code & "Me.Nbjrs_1.BackColor = &HFFFFFF" & vbCrLf
Code = Code & "Me.SJTC_1.BackColor = &HFFFFFF" & vbCrLf
Code = Code & "End If" & vbCrLf
Code = Code & "End Sub" & vbCrLf
With Obj.VBProject. _
VBComponents("forms.checkbox.1").CodeModule
.AddFromString LeTexte
NextLine = .CountOfLines + 1
.InsertLines NextLine, Code
End With
End With
End With
Set Cl = New Classe1
Set Cl.CheckBox = Obj
Collect.Add Cl
End With
Next NT
A voir également:
- Ecrire un code vba dans un checkbox
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Ecrire en gras sur whatsapp - Guide
- Code activation windows 10 - Guide
6 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
quelle erreur sur quel objet?
quelle erreur sur quel objet?
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Il est préférable que tu partages un fichier xlsm qui permet de reproduire le soucis.
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Je pense que le code n'est pas associé au checkbox, mais plutôt à la forme.
Et donc:
au lieu de
Je pense alors important de mettre le nom du checkbox dans le code:
Et donc:
With ThisWorkbook.VBProject.VBComponents("Liste_Freelance_periode").CodeModule
au lieu de
With Obj.VBProject.VBComponents _ ("Eff_" & (NT + 1)).CodeModule
Je pense alors important de mettre le nom du checkbox dans le code:
Code = "Sub Eff_" & (NT + 1) & "_Click()" & vbCrLf
Bonjour yg_be,
Alors j'ai essayé ton code mais en vain..:(
de plus je souhaite ecrire le code dans les checkbox donc je vois mal ecrire un code dans le workbook.
bon j'ai essayé ce code pour déclarer vouloir ecrire dans le checkBOx: résultat , il me déclare impossible de trouver l'objet.. j'avance a petit pas
voici mon code

je me suis servi du code d'écriture de macro dans un "onglet non crée" pour le modifier et l'adapter à un checkbox.. peut être est ce une autre procédure
merci pour le temps passé :)
belle journée
Titi
Alors j'ai essayé ton code mais en vain..:(
de plus je souhaite ecrire le code dans les checkbox donc je vois mal ecrire un code dans le workbook.
bon j'ai essayé ce code pour déclarer vouloir ecrire dans le checkBOx: résultat , il me déclare impossible de trouver l'objet.. j'avance a petit pas
voici mon code
Set Obj = Liste_Freelance_periode.Controls.Add("forms.checkbox.1") With Obj .Name = "Eff_" & (NT + 1) '.Object.Value = "Sjtc_" & (NT + 1) .Left = ((10 * LL) + Ln + Lp + Lc + Lnb + Lt + Lm + Lch + Lw + Ls) .Top = ((168 + (NT * LL)) + (h * NT)) .Width = Le .Height = h NTCheckB = "Eff_" & (NT + 1) MsgBox (NTCheckB) End With With Me.Controls(NTCheckB).VBProject.VBComponents("forms.checkbox.1").CodeModule Code = "Sub & NTCheckB & _Click()" & vbCrLf Code = Code & "If CheckBox.Value = True Then" & vbCrLf Code = Code & "Me.Nom_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Prenom_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Client_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Chiffre_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Marge_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.TJM_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.WOW_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Nbjrs_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.SJTC_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Else" & vbCrLf Code = Code & "Me.Nom_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Prenom_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Client_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Chiffre_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Marge_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.TJM_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & " Me.WOW_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & " Me.Nbjrs_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & " Me.SJTC_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & " End If" & vbCrLf Code = Code & " End Sub" & vbCrLf With Me.Controls(NTCheckB).VBProject.VBComponents("forms.checkbox.1").CodeModule .AddFromString LeTexte NextLine = .CountOfLines + 1 .InsertLines NextLine, Code End With End With Set Cl = New Classe1 Set Cl.CheckBox = Obj Collect.Add Cl End With Next NT
je me suis servi du code d'écriture de macro dans un "onglet non crée" pour le modifier et l'adapter à un checkbox.. peut être est ce une autre procédure
merci pour le temps passé :)
belle journée
Titi
1)Avec ton essai cela ne fais rien..l'useform se lance bien avec le nombre de textbox voulu mais la partie de checkbox ou je souhaite que quand il est coché les autres textbox de la meme ligne soit en interieur rouge ne fonctionne pas.
voici le code ecrit
2) le Thisworkbook est bien en traduction "sur l'objet en court de travail"?
donc l'interaction n'est pas sur l'objet liste_freelance mais les checkbox ;)
enfin j'espere me faire comprendre car je suis autodidacte ;))))
merci
voici le code ecrit
' With Me.Controls(NTCheckB).VBProject.VBComponents("forms.checkbox.1").CodeModule With ThisWorkbook.VBProject.VBComponents("Liste_Freelance_periode").CodeModule Code = "Sub & NTCheckB & _Click()" & vbCrLf Code = Code & "If CheckBox.Value = True Then" & vbCrLf Code = Code & "Me.Nom_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Prenom_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Client_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Chiffre_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Marge_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.TJM_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.WOW_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.Nbjrs_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Me.SJTC_(NT + 1).BackColor = &HFF&" & vbCrLf Code = Code & "Else" & vbCrLf Code = Code & "Me.Nom_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Prenom_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Client_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Chiffre_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Marge_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.TJM_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & " Me.WOW_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & " Me.Nbjrs_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & " Me.SJTC_(NT + 1).BackColor = &HFFFFFF" & vbCrLf Code = Code & " End If" & vbCrLf Code = Code & " End Sub" & vbCrLf With ThisWorkbook.VBProject.VBComponents("Liste_Freelance_periode").CodeModule 'With Me.Controls(NTCheckB).VBProject.VBComponents("forms.checkbox.1").CodeModule .AddFromString LeTexte NextLine = .CountOfLines + 1 .InsertLines NextLine, Code End With End With
2) le Thisworkbook est bien en traduction "sur l'objet en court de travail"?
donc l'interaction n'est pas sur l'objet liste_freelance mais les checkbox ;)
enfin j'espere me faire comprendre car je suis autodidacte ;))))
merci
1) As-tu éliminé le code d'erreur, ton code s'exécute-t-il? Alors tu progresses. Examine, maintenant, après l'exécution de ton code, le code du formulaire Liste_Freelance_periode. As-tu lu ma seconde suggestion en #17? Le nom du checkbox est-il NTCheckB?
2) Que veux-tu dire par autodidacte? Que tu copies du code sans le comprendre et que tu ne prends pas le temps de te former ni de lire la documentation? Une simple recherche te permettrait de comprendre qu'un "workbook", c'est un fichier Excel, et que "ThisWorkbook" est une référence au fichier contenant le code qui s'exécute.
2) Que veux-tu dire par autodidacte? Que tu copies du code sans le comprendre et que tu ne prends pas le temps de te former ni de lire la documentation? Une simple recherche te permettrait de comprendre qu'un "workbook", c'est un fichier Excel, et que "ThisWorkbook" est une référence au fichier contenant le code qui s'exécute.
Cher yg_be,
1) j'ai éliminé mon erreur en suivant le thisworbook : ( dans mon resonnement cerebral, je pensais que l'écriture de private se faisait sur le textbox et non sur le thisworkbook ... j'apprends de jour en jour )
j'ai bien l'écriture mais cela ne réagit pas quand je coche le checkbox ---> donc il ne doit pas reconnaitre le nom du checkbox avec la sub ..
2) autodidacte: je n'ai pas de formation d'informaticien ou dev ... des fois les choses peuvent paraitre logique mais pour moi il y a deux ans c'était du chinois... ;)
mon domaine est plus dessinateur 3D donc j'ai des logique que peut etre tu n'as pas :)))
je poursuis mes recherches
1) j'ai éliminé mon erreur en suivant le thisworbook : ( dans mon resonnement cerebral, je pensais que l'écriture de private se faisait sur le textbox et non sur le thisworkbook ... j'apprends de jour en jour )
j'ai bien l'écriture mais cela ne réagit pas quand je coche le checkbox ---> donc il ne doit pas reconnaitre le nom du checkbox avec la sub ..
2) autodidacte: je n'ai pas de formation d'informaticien ou dev ... des fois les choses peuvent paraitre logique mais pour moi il y a deux ans c'était du chinois... ;)
mon domaine est plus dessinateur 3D donc j'ai des logique que peut etre tu n'as pas :)))
je poursuis mes recherches
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
En voyant ton fichier, je me demande comment et pourquoi tu en es arrivé à quelque-chose d'aussi complexe.
J'ai comme l'impression que tu n'as pas choisi le bon logiciel (Excel) et/ou que tu as fait de mauvais choix au moment de la conception de ce projet.
Si tu fais cela pour apprendre en bricolant, parfait. Je pense, cependant, que cela t'amène à utiliser des techniques complexes rarement utilisées (donc peu utiles), et que le résultat sera un chateau de carte difficile à faire évoluer.
J'ai comme l'impression que tu n'as pas choisi le bon logiciel (Excel) et/ou que tu as fait de mauvais choix au moment de la conception de ce projet.
Si tu fais cela pour apprendre en bricolant, parfait. Je pense, cependant, que cela t'amène à utiliser des techniques complexes rarement utilisées (donc peu utiles), et que le résultat sera un chateau de carte difficile à faire évoluer.
Bonjour yg_be,
J'ai bien examiné le formulaire liste_freelance_periode
le code est bien présent, j'ai bien mis ta suggestion en #17 avec la nomination de la sub et tout le reste
sur le formulaire tout est ok..
Le Nom de la sub est bien Eff_+( la boucle en cours )
-j'ai modifié chaque Me. avec "& (NT+1)&" pour que le chiffre soit bon
mon code dans le formulaire donne cela
Il va falloir que je supprime les macros quand mon formulaire se fermera sinon a chaque fois que j'ouvre l'uf il va creer la sub..
maintenant quand mon userform est activé ben j'ai beau coché ...rien ne se passe
Je continue mes recherches sur le pourquoi cela ne réagit pas et/ou pour le checkbox 2 par exemple ne fait pas réagir la sub click Eff_2 ..
Belle journee
merci pour ton aide
Titi
J'ai bien examiné le formulaire liste_freelance_periode
le code est bien présent, j'ai bien mis ta suggestion en #17 avec la nomination de la sub et tout le reste
sur le formulaire tout est ok..
Le Nom de la sub est bien Eff_+( la boucle en cours )
-j'ai modifié chaque Me. avec "& (NT+1)&" pour que le chiffre soit bon
mon code dans le formulaire donne cela
With ThisWorkbook.VBProject.VBComponents("Liste_Freelance_periode").CodeModule Code = "Private Sub Eff_" & (NT + 1) & "_Click()" & vbCrLf Code = Code & "If Eff_" & (NT + 1) & ".Value = True Then" & vbCrLf Code = Code & "Me.Nom_" & (NT + 1) & ".BackColor = &HFF&" & vbCrLf Code = Code & "Me.Prenom_" & (NT + 1) & ".BackColor = &HFF&" & vbCrLf Code = Code & "Me.Client_" & (NT + 1) & ".BackColor = &HFF&" & vbCrLf Code = Code & "Me.Chiffre_" & (NT + 1) & ".BackColor = &HFF&" & vbCrLf Code = Code & "Me.Marge_" & (NT + 1) & ".BackColor = &HFF&" & vbCrLf Code = Code & "Me.TJM_" & (NT + 1) & ".BackColor = &HFF&" & vbCrLf Code = Code & "Me.WOW_" & (NT + 1) & ".BackColor = &HFF&" & vbCrLf Code = Code & "Me.Nbjrs_" & (NT + 1) & ".BackColor = &HFF&" & vbCrLf Code = Code & "Me.SJTC_" & (NT + 1) & ".BackColor = &HFF&" & vbCrLf Code = Code & "Else" & vbCrLf Code = Code & "Me.Nom_" & (NT + 1) & ".BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Prenom_" & (NT + 1) & ".BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Client_" & (NT + 1) & ".BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Chiffre_" & (NT + 1) & ".BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Marge_" & (NT + 1) & ".BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.TJM_" & (NT + 1) & ".BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.WOW_" & (NT + 1) & ".BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.Nbjrs_" & (NT + 1) & ".BackColor = &HFFFFFF" & vbCrLf Code = Code & "Me.SJTC_" & (NT + 1) & ".BackColor = &HFFFFFF" & vbCrLf Code = Code & "End If" & vbCrLf Code = Code & "End Sub" & vbCrLf With ThisWorkbook.VBProject.VBComponents("Liste_Freelance_periode").CodeModule '.Controls(NTCheckB).VBProject. _ VBComponents("forms.checkbox.1").CodeModule .AddFromString LeTexte NextLine = .CountOfLines + 1 .InsertLines NextLine, Code End With End With
Il va falloir que je supprime les macros quand mon formulaire se fermera sinon a chaque fois que j'ouvre l'uf il va creer la sub..
maintenant quand mon userform est activé ben j'ai beau coché ...rien ne se passe
Je continue mes recherches sur le pourquoi cela ne réagit pas et/ou pour le checkbox 2 par exemple ne fait pas réagir la sub click Eff_2 ..
Belle journee
merci pour ton aide
Titi
Tu progresses.
Utilises-tu l'explorateur de projet dans l'éditeur VBA?
Chaque "page" de code VBA se trouve dans un des éléments suivants: une feuille, un formulaire, un module ou un module de classe.
Le code que tu as montré jusqu'à présent (Valider_Les_Dates_Click()) se trouve dans le formulaire nommé "Periode_Facture".
La fonction Valider_Les_Dates_Click() fait deux types d'actions:
- elle modifie la présentation du formulaire "Liste_Freelance_periode"
- elle modifie le code du formulaire "Liste_Freelance_periode"
Je pense que l'extrait de code que tu as partagé en #25 vient du formulaire "Periode_Facture", pas du formulaire "Liste_Freelance_periode".
Par ailleurs, je ne comprends pas comment la ligne 28 de ton extrait peut fonctionner.
Utilises-tu l'explorateur de projet dans l'éditeur VBA?
Chaque "page" de code VBA se trouve dans un des éléments suivants: une feuille, un formulaire, un module ou un module de classe.
Le code que tu as montré jusqu'à présent (Valider_Les_Dates_Click()) se trouve dans le formulaire nommé "Periode_Facture".
La fonction Valider_Les_Dates_Click() fait deux types d'actions:
- elle modifie la présentation du formulaire "Liste_Freelance_periode"
- elle modifie le code du formulaire "Liste_Freelance_periode"
Je pense que l'extrait de code que tu as partagé en #25 vient du formulaire "Periode_Facture", pas du formulaire "Liste_Freelance_periode".
Par ailleurs, je ne comprends pas comment la ligne 28 de ton extrait peut fonctionner.
Bonsoir yg_be,
Alors non je n'utilise pas l'explorateur d'objets.
oui le code en #25 est bien une écriture dans le formulaire période facture:
c 'est le code avec la boucle me créant les textbox dynamiques en fonction du nombre inscrits et selon le mois demandé.
Dans ma réflexion je crée le code "sub Eff_+ _click" dans le formulaire liste_des freelances_periode comme tu me l'a signalé ;)
Et dans ma boucle de création des checkbox je souhaites écrire le code ...
bon le code est bien ecrit, tout roule mais quand j'ai l'uf devant moi avec les checkbox, je clique et cela ne change pas les couleurs des textboxs demandés.
Donc j'en déduis que les checbox ne sont pas en liens avec le code ?
et je ne peux vérifier le nom des checkbox vu qu'ils sont en dynamiques ou du moins je ne sais pas comment vérifier
voila mon avancement....;(
je continue mes recherches
dis moi si je suis dans
Bonne soirée
Titi
Alors non je n'utilise pas l'explorateur d'objets.
oui le code en #25 est bien une écriture dans le formulaire période facture:
c 'est le code avec la boucle me créant les textbox dynamiques en fonction du nombre inscrits et selon le mois demandé.
Dans ma réflexion je crée le code "sub Eff_+ _click" dans le formulaire liste_des freelances_periode comme tu me l'a signalé ;)
Et dans ma boucle de création des checkbox je souhaites écrire le code ...
bon le code est bien ecrit, tout roule mais quand j'ai l'uf devant moi avec les checkbox, je clique et cela ne change pas les couleurs des textboxs demandés.
Donc j'en déduis que les checbox ne sont pas en liens avec le code ?
et je ne peux vérifier le nom des checkbox vu qu'ils sont en dynamiques ou du moins je ne sais pas comment vérifier
voila mon avancement....;(
je continue mes recherches
dis moi si je suis dans
Bonne soirée
Titi
alors voici le code dans le formulaire liste_des_freelance_ periode avant le valider
et voici apres le click valider
Public Sub Eff_1_Click() If Eff_1.Value = True Then Me.Nom_1.BackColor = &HFF& Me.Prenom_1.BackColor = &HFF& Me.Client_1.BackColor = &HFF& Me.Chiffre_1.BackColor = &HFF& Me.Marge_1.BackColor = &HFF& Me.TJM_1.BackColor = &HFF& Me.WOW_1.BackColor = &HFF& Me.Nbjrs_1.BackColor = &HFF& Me.SJTC_1.BackColor = &HFF& Else Me.Nom_1.BackColor = &HFFFFFF Me.Prenom_1.BackColor = &HFFFFFF Me.Client_1.BackColor = &HFFFFFF Me.Chiffre_1.BackColor = &HFFFFFF Me.Marge_1.BackColor = &HFFFFFF Me.TJM_1.BackColor = &HFFFFFF Me.WOW_1.BackColor = &HFFFFFF Me.Nbjrs_1.BackColor = &HFFFFFF Me.SJTC_1.BackColor = &HFFFFFF End If End Sub Private Sub Label31_Click() End Sub Private Sub retour_Click() Unload Me End Sub Sub Valider_les_freelances_Click() Dim Ddc As Variant Dim ok As Boolean Dim T As Control Dim NFac As Variant Dim NbreFree As Integer Dim NomTextbox As String NomTextbox = "Nom_1" Dim c As Variant 'Ddc = Worksheets("Contrat " & Me.Nom_1).Cells(9, 2).Value With Liste_Freelance_periode.Controls For Each T In Liste_Freelance_periode.Controls If TypeOf T.Object Is MSForms.TextBox Then _ ok = (T.Name = NomTextbox) MsgBox (ok) Next T MsgBox (ok) End With Call Creer_Facture NFac = ActiveSheet.Name With NFac Cells(15, 3).Value = Me.Nom_1 Cells(15, 2).Value = Ddc Cells(15, 5).Value = Me.Prenom_1 Cells(15, 7).Value = Me.Debut_de_Facturation Cells(15, 8).Value = Me.Fin_De_Facturation Cells(15, 11).Value = Me.SJTC_1 End With Sheets("Factures Réalisées").Activate With Range(Cells(4, 2), Cells(60, 2)) Set c = .Cells.Find(NFac, , xlValues, xlWhole, , , False) If Not c Is Nothing Then premier = c.Select Selection.Offset(0, 5).Value = Me.SJTC_1 Selection.Offset(0, 2).Value = Mid(NFac, 13) End If End With Unload Me End Sub
et voici apres le click valider
Public Sub Eff_1_Click() If Eff_1.Value = True Then Me.Nom_1.BackColor = &HFF& Me.Prenom_1.BackColor = &HFF& Me.Client_1.BackColor = &HFF& Me.Chiffre_1.BackColor = &HFF& Me.Marge_1.BackColor = &HFF& Me.TJM_1.BackColor = &HFF& Me.WOW_1.BackColor = &HFF& Me.Nbjrs_1.BackColor = &HFF& Me.SJTC_1.BackColor = &HFF& Else Me.Nom_1.BackColor = &HFFFFFF Me.Prenom_1.BackColor = &HFFFFFF Me.Client_1.BackColor = &HFFFFFF Me.Chiffre_1.BackColor = &HFFFFFF Me.Marge_1.BackColor = &HFFFFFF Me.TJM_1.BackColor = &HFFFFFF Me.WOW_1.BackColor = &HFFFFFF Me.Nbjrs_1.BackColor = &HFFFFFF Me.SJTC_1.BackColor = &HFFFFFF End If End Sub Private Sub Label31_Click() End Sub Private Sub retour_Click() Unload Me End Sub Sub Valider_les_freelances_Click() Dim Ddc As Variant Dim ok As Boolean Dim T As Control Dim NFac As Variant Dim NbreFree As Integer Dim NomTextbox As String NomTextbox = "Nom_1" Dim c As Variant 'Ddc = Worksheets("Contrat " & Me.Nom_1).Cells(9, 2).Value With Liste_Freelance_periode.Controls For Each T In Liste_Freelance_periode.Controls If TypeOf T.Object Is MSForms.TextBox Then _ ok = (T.Name = NomTextbox) MsgBox (ok) Next T MsgBox (ok) End With Call Creer_Facture NFac = ActiveSheet.Name With NFac Cells(15, 3).Value = Me.Nom_1 Cells(15, 2).Value = Ddc Cells(15, 5).Value = Me.Prenom_1 Cells(15, 7).Value = Me.Debut_de_Facturation Cells(15, 8).Value = Me.Fin_De_Facturation Cells(15, 11).Value = Me.SJTC_1 End With Sheets("Factures Réalisées").Activate With Range(Cells(4, 2), Cells(60, 2)) Set c = .Cells.Find(NFac, , xlValues, xlWhole, , , False) If Not c Is Nothing Then premier = c.Select Selection.Offset(0, 5).Value = Me.SJTC_1 Selection.Offset(0, 2).Value = Mid(NFac, 13) End If End With Unload Me End Sub Private Sub Eff_2_Click() If Eff_2.Value = True Then Me.Nom_2.BackColor = &HFF& Me.Prenom_2.BackColor = &HFF& Me.Client_2.BackColor = &HFF& Me.Chiffre_2.BackColor = &HFF& Me.Marge_2.BackColor = &HFF& Me.TJM_2.BackColor = &HFF& Me.WOW_2.BackColor = &HFF& Me.Nbjrs_2.BackColor = &HFF& Me.SJTC_2.BackColor = &HFF& Else Me.Nom_2.BackColor = &HFFFFFF Me.Prenom_2.BackColor = &HFFFFFF Me.Client_2.BackColor = &HFFFFFF Me.Chiffre_2.BackColor = &HFFFFFF Me.Marge_2.BackColor = &HFFFFFF Me.TJM_2.BackColor = &HFFFFFF Me.WOW_2.BackColor = &HFFFFFF Me.Nbjrs_2.BackColor = &HFFFFFF Me.SJTC_2.BackColor = &HFFFFFF End If End Sub Private Sub Eff_3_Click() If Eff_3.Value = True Then Me.Nom_3.BackColor = &HFF& Me.Prenom_3.BackColor = &HFF& Me.Client_3.BackColor = &HFF& Me.Chiffre_3.BackColor = &HFF& Me.Marge_3.BackColor = &HFF& Me.TJM_3.BackColor = &HFF& Me.WOW_3.BackColor = &HFF& Me.Nbjrs_3.BackColor = &HFF& Me.SJTC_3.BackColor = &HFF& Else Me.Nom_3.BackColor = &HFFFFFF Me.Prenom_3.BackColor = &HFFFFFF Me.Client_3.BackColor = &HFFFFFF Me.Chiffre_3.BackColor = &HFFFFFF Me.Marge_3.BackColor = &HFFFFFF Me.TJM_3.BackColor = &HFFFFFF Me.WOW_3.BackColor = &HFFFFFF Me.Nbjrs_3.BackColor = &HFFFFFF Me.SJTC_3.BackColor = &HFFFFFF End If End Sub
Je constate, comme toi, que seul le premier checkbox réagit.
En fait, bien que les lignes supplémentaires soient visibles, elles ne sont par effectives, comme si elles avaient été créés dans une copie temporaire du formulaire. Ce qui se confirme à la fermeture du formulaire, où toutes les modifications ont disparu.
Contrairement au code du formulaire, où le code ajouté est bien permanent.
En fait, bien que les lignes supplémentaires soient visibles, elles ne sont par effectives, comme si elles avaient été créés dans une copie temporaire du formulaire. Ce qui se confirme à la fermeture du formulaire, où toutes les modifications ont disparu.
Contrairement au code du formulaire, où le code ajouté est bien permanent.
alors cela me met une rreur 438 sur ce code
merci par avance
Peux-tu aussi partager le texte de l'erreur, et utiliser les balises de code? Explications: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Jai pourtant utiliser le bouton code pour insérer le code .. c'est pas bon ?
voici le code entier de la sub
et en message d'erreur les photos ci joint
merci pour votre aide
dois je modifié quelque chose ?