A voir également:
- Rechercher des valeurs identiques dans un colonne
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Rechercher ou entrer l'adresse - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
8 réponses
Bonjour,
code a mettre dans VBA Userform2
code a mettre dans VBA Userform2
Private Sub UserForm_Activate() With Worksheets("Data1") EnCours = "En Cours" Nb = Application.CountIf(.Columns(12), EnCours) If Nb = 0 Then ElseIf Nb <= 2 Then lig = 1: Of7 = 0 For N = 1 To Nb lig = .Columns(12).Find(EnCours, .Cells(lig, 12), , xlWhole).Row Me.Controls("TextBox" & N + Of7).Visible = True Me.Controls("TextBox" & N + Of7) = .Range("A" & lig) Of7 = Of7 + 1 Me.Controls("TextBox" & N + Of7).Visible = True Me.Controls("TextBox" & N + Of7) = .Range("B" & lig) Of7 = Of7 + 1 Me.Controls("TextBox" & N + Of7).Visible = True Me.Controls("TextBox" & N + Of7) = .Range("L" & lig) Of7 = Of7 + 1 Next N End If End With End Sub
Bonjour,
Merci beaucoup, ça marche numéro 1... c'est parfait.
Par contre j'aurai quelques questions histoire de bien comprendre le code :
- Comment je dois comprendre cette partie là du code :
ElseIf Nb <= 2 Then -> ca c'est ok !!
lig = 1: Of7 = 0
For N = 1 To Nb
surtout ca : lig = 1: Of7 = 0
En fait, j'pige pas bien le Of7...
- Me.Controls : ca fait quoi ca exactement ?
Aussi, dans le cas ou j'ai 2 résultats qui apparaissent 'en Cours', pour le deuxieme resultat, je veux rendre visible un combobox2 qui me demandera si ce groupe de formation (donc le deuxième résultat de recherche en Cours) est complété ou pas. J'ai déjà un Combobox1 dans le cas ou j'ai une réponse 'En Cours'.
Merci d'avance,
Y.
Merci beaucoup, ça marche numéro 1... c'est parfait.
Par contre j'aurai quelques questions histoire de bien comprendre le code :
- Comment je dois comprendre cette partie là du code :
ElseIf Nb <= 2 Then -> ca c'est ok !!
lig = 1: Of7 = 0
For N = 1 To Nb
surtout ca : lig = 1: Of7 = 0
En fait, j'pige pas bien le Of7...
- Me.Controls : ca fait quoi ca exactement ?
Aussi, dans le cas ou j'ai 2 résultats qui apparaissent 'en Cours', pour le deuxieme resultat, je veux rendre visible un combobox2 qui me demandera si ce groupe de formation (donc le deuxième résultat de recherche en Cours) est complété ou pas. J'ai déjà un Combobox1 dans le cas ou j'ai une réponse 'En Cours'.
Merci d'avance,
Y.
Re,
- Me.Controls : ca fait quoi ca exactement ?
Ce code permet d'indexer un control ex ici,:
TextBox1 a 3 et avec N + l'offset quand N=1
TextBox5 a 7 et avec N + l'offset quand N=2
code pour Combobox et petie modif du IF N puisque vous n'avez pas besoin du =0
- Me.Controls : ca fait quoi ca exactement ?
Me.Controls("TextBox" & N + Of7)
Ce code permet d'indexer un control ex ici,:
TextBox1 a 3 et avec N + l'offset quand N=1
TextBox5 a 7 et avec N + l'offset quand N=2
code pour Combobox et petie modif du IF N puisque vous n'avez pas besoin du =0
Private Sub UserForm_Activate() With Worksheets("Data1") EnCours = "En Cours" Nb = Application.CountIf(.Columns(12), EnCours) 'nombre de fois EnCours If Nb > 0 And Nb <= 2 Then lig = 1: Of7 = 0 'ligne de depart et offset pour 123 et 567 For N = 1 To Nb lig = .Columns(12).Find(EnCours, .Cells(lig, 12), , xlWhole).Row 'recherche ligne de EnCours Me.Controls("TextBox" & N + Of7).Visible = True ' Me.Controls("TextBox" & N + Of7) = .Range("A" & lig) Of7 = Of7 + 1 Me.Controls("TextBox" & N + Of7).Visible = True Me.Controls("TextBox" & N + Of7) = .Range("B" & lig) Of7 = Of7 + 1 Me.Controls("TextBox" & N + Of7).Visible = True Me.Controls("TextBox" & N + Of7) = .Range("L" & lig) Of7 = Of7 + 1 Me.Controls("Combobox" & N).Visible = True Next N End If End With End Sub
holala... Of7... offset.... oulala...
c'était hier lundi matin... sorry....
Merci pour les explications et pour le combobox.
Mais là, forcément, je m'aperçois que mon affaire n'est pas comme il faut... ça marche, mais c'est pas ça...
En fait, mes Combobox doivent permettre de changer le statut de mes groupes de formation de 'En Cours' à 'Complété'.
Si je choisis 'Oui', mon groupe est encore 'En cours', donc le statut ne change pas sur ma feuille Data1.
Si je choisis 'Non', ça change mon statut de 'En Cours à 'Complété' sur ma feuille Data1.
Aussi, que ce soit 'Oui' ou 'Non', dans le cas ou j'ai un seul groupe 'En Cours' ca me rend visible un Textbox dans lequel je rentre le nom de mon nouveau groupe...
Et en confirmant le TextBox, ça incrémente le numéro du groupe de formation sur mon userform (c'est à dire le Textbox du numéro du groupe de formation fait +1), le TextBox du nom du groupe change pour le nouveau nom, et le TextBox du statut revient à 'En Cours'.
Et ces 3 infos se rajoutent avec une nouvelle ligne dans ma feuille Data1.
Mais là, j'ai la possibilité d'avoir 2 groupes 'en Cours'... donc avec 2 Combobox Oui / Non...
Y aurait'il la possibilité d'avoir un seul Combobox, qui me pose la question : Le 1er Groupe 'En Cours' est-il toujours 'En Cours' : Oui / Non (et change le statut sur la feuille Data1 si nécessaire)
Et une fois répondu, que le Combobox me pose la même question, mais pour le second Groupe qui est toujours 'En Cours' + change le statut si nécessaire sur la feuille Data1 + msg d'erreur si je choisis une deuxième fois 'Oui' parce que je ne peux avoir que 2 formations 'En Cours en même temps + Ouvre mon Textbox pour entrer le nouveau groupe.
Et à la confirmation de mon TextBox, refait la boucle pour rechercher les groupes 'En Cours'... Et le numéro du nouveau groupe étant l'incrément de 1 du dernier des 2 numéros...
Ca fait beaucoup là, non ?
c'était hier lundi matin... sorry....
Merci pour les explications et pour le combobox.
Mais là, forcément, je m'aperçois que mon affaire n'est pas comme il faut... ça marche, mais c'est pas ça...
En fait, mes Combobox doivent permettre de changer le statut de mes groupes de formation de 'En Cours' à 'Complété'.
Si je choisis 'Oui', mon groupe est encore 'En cours', donc le statut ne change pas sur ma feuille Data1.
Si je choisis 'Non', ça change mon statut de 'En Cours à 'Complété' sur ma feuille Data1.
Aussi, que ce soit 'Oui' ou 'Non', dans le cas ou j'ai un seul groupe 'En Cours' ca me rend visible un Textbox dans lequel je rentre le nom de mon nouveau groupe...
Et en confirmant le TextBox, ça incrémente le numéro du groupe de formation sur mon userform (c'est à dire le Textbox du numéro du groupe de formation fait +1), le TextBox du nom du groupe change pour le nouveau nom, et le TextBox du statut revient à 'En Cours'.
Et ces 3 infos se rajoutent avec une nouvelle ligne dans ma feuille Data1.
Mais là, j'ai la possibilité d'avoir 2 groupes 'en Cours'... donc avec 2 Combobox Oui / Non...
Y aurait'il la possibilité d'avoir un seul Combobox, qui me pose la question : Le 1er Groupe 'En Cours' est-il toujours 'En Cours' : Oui / Non (et change le statut sur la feuille Data1 si nécessaire)
Et une fois répondu, que le Combobox me pose la même question, mais pour le second Groupe qui est toujours 'En Cours' + change le statut si nécessaire sur la feuille Data1 + msg d'erreur si je choisis une deuxième fois 'Oui' parce que je ne peux avoir que 2 formations 'En Cours en même temps + Ouvre mon Textbox pour entrer le nouveau groupe.
Et à la confirmation de mon TextBox, refait la boucle pour rechercher les groupes 'En Cours'... Et le numéro du nouveau groupe étant l'incrément de 1 du dernier des 2 numéros...
Ca fait beaucoup là, non ?
Pour aider, j'ai ça comme code sur mon CommandButton :
Private Sub CommandButton1_Click()
If TextBox4.Value = "" Then
MsgBox "Entrer le Nom de la nouvelle Cohorte."
Exit Sub
ElseIf ComboBox1.Value = "Non" Then
With Worksheets("Data1")
Range("L1").End(xlDown).Value = "Complétée"
End With
Me.TextBox1.Value = Me.TextBox1.Value + 1
'Pour copier le nom de la cohorte dans la page Data1
With Worksheets("Data1")
Nlig = .Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("A" & Nlig).Value = TextBox1
.Range("B" & Nlig).Value = TextBox4
.Range("L" & Nlig).Value = "En Cours"
End With
Me.TextBox2.Value = Me.TextBox4.Value
Label5.Visible = False
ComboBox1.Visible = False
Label6.Visible = False
TextBox4.Visible = False
CommandButton1.Visible = False
CommandButton2.Visible = True
ElseIf ComboBox1.Value = "Oui" Then
Me.TextBox5.Value = Me.TextBox1.Value + 1
With Worksheets("Data1")
Nlig = .Range("L" & Rows.Count).End(xlUp).Row + 1
.Range("L" & Nlig).Value = "En Cours"
.Range("B" & Nlig).Value = TextBox4
.Range("A" & Nlig).Value = TextBox5
TextBox7.Value = Range("L1").End(xlDown).Value
End With
Me.TextBox6.Value = Me.TextBox4.Value
Label5.Visible = False
ComboBox1.Visible = False
Label6.Visible = False
TextBox4.Visible = False
CommandButton1.Visible = False
CommandButton2.Visible = True
Label7.Visible = True
TextBox5.Visible = True
TextBox6.Visible = True
Label8.Visible = True
TextBox7.Visible = True
End If
End Sub
Private Sub CommandButton1_Click()
If TextBox4.Value = "" Then
MsgBox "Entrer le Nom de la nouvelle Cohorte."
Exit Sub
ElseIf ComboBox1.Value = "Non" Then
With Worksheets("Data1")
Range("L1").End(xlDown).Value = "Complétée"
End With
Me.TextBox1.Value = Me.TextBox1.Value + 1
'Pour copier le nom de la cohorte dans la page Data1
With Worksheets("Data1")
Nlig = .Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("A" & Nlig).Value = TextBox1
.Range("B" & Nlig).Value = TextBox4
.Range("L" & Nlig).Value = "En Cours"
End With
Me.TextBox2.Value = Me.TextBox4.Value
Label5.Visible = False
ComboBox1.Visible = False
Label6.Visible = False
TextBox4.Visible = False
CommandButton1.Visible = False
CommandButton2.Visible = True
ElseIf ComboBox1.Value = "Oui" Then
Me.TextBox5.Value = Me.TextBox1.Value + 1
With Worksheets("Data1")
Nlig = .Range("L" & Rows.Count).End(xlUp).Row + 1
.Range("L" & Nlig).Value = "En Cours"
.Range("B" & Nlig).Value = TextBox4
.Range("A" & Nlig).Value = TextBox5
TextBox7.Value = Range("L1").End(xlDown).Value
End With
Me.TextBox6.Value = Me.TextBox4.Value
Label5.Visible = False
ComboBox1.Visible = False
Label6.Visible = False
TextBox4.Visible = False
CommandButton1.Visible = False
CommandButton2.Visible = True
Label7.Visible = True
TextBox5.Visible = True
TextBox6.Visible = True
Label8.Visible = True
TextBox7.Visible = True
End If
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Transféré dans forum Prog-VBA
Dans l’attente
Transféré dans forum Prog-VBA
Mettre le classeur sans données confidentielles en pièce jointe sur « mon-partage.fr »
et faire un clic droit-coller le raccourci dans votre message
Dans l’attente
Salut Michel,
Voici le lien :
https://www.cjoint.com/c/FKEo6WElJ5G
Je pense que c'est toi qui m'a déjà aidé précédement.
En fait c'est toujours le même dossier, mais avec plus de questions encore..
Merci pour ton aide
Y.
Voici le lien :
https://www.cjoint.com/c/FKEo6WElJ5G
Je pense que c'est toi qui m'a déjà aidé précédement.
En fait c'est toujours le même dossier, mais avec plus de questions encore..
Merci pour ton aide
Y.