A voir également:
- Userform lié à base de données excel
- Liste déroulante excel - Guide
- Formules excel de base - Guide
- Aller à la ligne excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
5 réponses
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
21 oct. 2015 à 00:18
21 oct. 2015 à 00:18
Bonjour,
- évite le multi-page, ça complique les choses.
- peut-on avoir plusieurs offres de service à la fois ? si non, préférer des boutons radio et on affiche/dégrise les champs adéquats en-dessous
- pour le repérage, que doit-on remplir à côté de CAMPS, etc. ? Juste oui/non ou un nom de famille. Si c'est oui/non, une listbox à sélection multiple est plus approprié.
- remplir les cellules par rapport aux évolutions des TextBox, pourquoi pas, mais si on annule une saisie, il faudrait pouvoir tout vider. Peut-être faudrait-il remplir le tableau à la toute fin, quand on valide la saisie UserForm.
Sinon par rapport à ta demande tu peux faire :
Rows(3).Insert
Unload UserForm1
Load UserForm1
UserForm1.Show
A+
- évite le multi-page, ça complique les choses.
- peut-on avoir plusieurs offres de service à la fois ? si non, préférer des boutons radio et on affiche/dégrise les champs adéquats en-dessous
- pour le repérage, que doit-on remplir à côté de CAMPS, etc. ? Juste oui/non ou un nom de famille. Si c'est oui/non, une listbox à sélection multiple est plus approprié.
- remplir les cellules par rapport aux évolutions des TextBox, pourquoi pas, mais si on annule une saisie, il faudrait pouvoir tout vider. Peut-être faudrait-il remplir le tableau à la toute fin, quand on valide la saisie UserForm.
Sinon par rapport à ta demande tu peux faire :
Rows(3).Insert
Unload UserForm1
Load UserForm1
UserForm1.Show
A+
Bonjour
voila déjà le début pour les combo box
A+
Maurice
voila déjà le début pour les combo box
Private Sub userForm_Initialize() Me.MultiPage1.Value = 0 ' Gestion des ComboBox Dcol = Array(2, 1, 3, 4) ' Numero de Colonne C = 1 For Col = LBound(Dcol) To UBound(Dcol) With Controls("ComboBox" & C) .Clear For L = 2 To Feuil5.Cells(Rows.Count, Dcol(Col)).End(xlUp).Row .AddItem Feuil5.Cells(L, Dcol(Col)) Next End With C = C + 1 Next End Sub
A+
Maurice
Merci Maurice,
j'ai essayé de rentrer ce code et ça me met erreur mais je crois que je m'y prend mal !? Voilà comment j'ai rentré le code dans mon visual basic (j'ai mis à la suite d'un code existant) :
Private Sub userForm_Initialize()
Me.MultiPage1.Value = 0
ComboBox1.RowSource = "Menu!B2:B6"
ComboBox2.RowSource = "Menu!A2:A6"
ComboBox3.RowSource = "Menu!C2:C37"
ComboBox4.RowSource = "Menu!D2:D81"
' Gestion des ComboBox
Dcol = Array(2, 1, 3, 4) ' Numero de Colonne
C = 1
For Col = LBound(Dcol) To UBound(Dcol)
With Controls("ComboBox" & C)
.Clear
For L = 2 To Feuil5.Cells(Rows.Count, Dcol(Col)).End(xlUp).Row
.AddItem Feuil5.Cells(L, Dcol(Col))
Next
End With
C = C + 1
Next
End Sub
pourquoi dans le code parles tu de feuille 5 : "For L = 2 To Feuil5.Cells(Rows.Count, Dcol(Col)).End(xlUp).Row
.AddItem Feuil5.Cells(L, Dcol(Col))" alors que seule la feuille 2 va être alimentée garce à usf ?
Merci pour ton aide
j'ai essayé de rentrer ce code et ça me met erreur mais je crois que je m'y prend mal !? Voilà comment j'ai rentré le code dans mon visual basic (j'ai mis à la suite d'un code existant) :
Private Sub userForm_Initialize()
Me.MultiPage1.Value = 0
ComboBox1.RowSource = "Menu!B2:B6"
ComboBox2.RowSource = "Menu!A2:A6"
ComboBox3.RowSource = "Menu!C2:C37"
ComboBox4.RowSource = "Menu!D2:D81"
' Gestion des ComboBox
Dcol = Array(2, 1, 3, 4) ' Numero de Colonne
C = 1
For Col = LBound(Dcol) To UBound(Dcol)
With Controls("ComboBox" & C)
.Clear
For L = 2 To Feuil5.Cells(Rows.Count, Dcol(Col)).End(xlUp).Row
.AddItem Feuil5.Cells(L, Dcol(Col))
Next
End With
C = C + 1
Next
End Sub
pourquoi dans le code parles tu de feuille 5 : "For L = 2 To Feuil5.Cells(Rows.Count, Dcol(Col)).End(xlUp).Row
.AddItem Feuil5.Cells(L, Dcol(Col))" alors que seule la feuille 2 va être alimentée garce à usf ?
Merci pour ton aide
J'ai vraiment du mal : même en supprimant tout mon code :Private Sub userForm_Initialize() cf. ci-dessous :
Private Sub userForm_Initialize()
Me.MultiPage1.Value = 0
ComboBox1.RowSource = "Menu!B2:B6"
ComboBox2.RowSource = "Menu!A2:A6"
ComboBox3.RowSource = "Menu!C2:C37"
ComboBox4.RowSource = "Menu!D2:D81"
(du coup je n'ai plus de RowSource)
et en remplaçant par ton code :
Private Sub userForm_Initialize()
Me.MultiPage1.Value = 0
' Gestion des ComboBox
Dcol = Array(2, 1, 3, 4) ' Numero de Colonne
C = 1
For Col = LBound(Dcol) To UBound(Dcol)
With Controls("ComboBox" & C)
.Clear
For L = 2 To Feuil5.Cells(Rows.Count, Dcol(Col)).End(xlUp).Row
.AddItem Feuil5.Cells(L, Dcol(Col))
Next
End With
C = C + 1
Next
End Sub
ça ne marche toujours pas :-( Je désespère ...
Private Sub userForm_Initialize()
Me.MultiPage1.Value = 0
ComboBox1.RowSource = "Menu!B2:B6"
ComboBox2.RowSource = "Menu!A2:A6"
ComboBox3.RowSource = "Menu!C2:C37"
ComboBox4.RowSource = "Menu!D2:D81"
(du coup je n'ai plus de RowSource)
et en remplaçant par ton code :
Private Sub userForm_Initialize()
Me.MultiPage1.Value = 0
' Gestion des ComboBox
Dcol = Array(2, 1, 3, 4) ' Numero de Colonne
C = 1
For Col = LBound(Dcol) To UBound(Dcol)
With Controls("ComboBox" & C)
.Clear
For L = 2 To Feuil5.Cells(Rows.Count, Dcol(Col)).End(xlUp).Row
.AddItem Feuil5.Cells(L, Dcol(Col))
Next
End With
C = C + 1
Next
End Sub
ça ne marche toujours pas :-( Je désespère ...
Bonjour
dur dur tu supprime ta macro pour mettre la mienne
feuille5 = o codename de l'onglet Menu
A+
Maurice
dur dur tu supprime ta macro pour mettre la mienne
feuille5 = o codename de l'onglet Menu
A+
Maurice
Bonjour
retour de ton fichier modifier
http://www.cjoint.com/c/EJvnTjsqmuN
regarde bien
A+
Maurice
retour de ton fichier modifier
http://www.cjoint.com/c/EJvnTjsqmuN
regarde bien
A+
Maurice
Wahouuuu époustouflant !!! je me compliquais la tache en décrivant les macros contrôle par Contrôle. J'espère un jour maîtriser comme tu le fais.
Je ne comprends pas tout mais ça fonctionne !!!
du coup il faudra à chaque ajout de textbox et combobox que j'insère à la suite de :
."Cells(Nlig, 6).Value = TextBox2.Value"
c'est bien cela ?
Question de compréhension :
quelle partie du code fait référence à mes contenus de listes déroulantes ?
"Dcol = Array(2, 1, 3, 4)" : ça a une importance l'ordre des chiffres ? et pourquoi ça va jusqu'à 4 seulement ?
Je ne comprends pas tout mais ça fonctionne !!!
du coup il faudra à chaque ajout de textbox et combobox que j'insère à la suite de :
."Cells(Nlig, 6).Value = TextBox2.Value"
c'est bien cela ?
Question de compréhension :
quelle partie du code fait référence à mes contenus de listes déroulantes ?
"Dcol = Array(2, 1, 3, 4)" : ça a une importance l'ordre des chiffres ? et pourquoi ça va jusqu'à 4 seulement ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
21 oct. 2015 à 13:09
tout d'abord merci pour ta réponse.
J'ai choisi le MultPage car un acteur peut être concerné par tous les services, et ça sera très souvent le cas. Ce qui représente environ 70 "critères" qui seront étalés sur 4/5 voir 6 pages. C'est pour cette raison qu'il me semblait difficile d'utiliser l'UserForm classic. Je ne connaissais pas les boutons radio mais à priori ça ne vas pas m'aider puisque les acteurs sont concernés dans la majorité par toutes les "critères".
"que doit-on remplir à côté de CAMPS, etc" : des chiffres. Il faudra que je trouve une solution pour convertir les données format texte (Cf. TextBox) de ma base de données en chiffres pour que mes futurs formules de l'onglet automatisation fonctionnent.
"remplir les cellules par rapport aux évolutions des TextBox, pourquoi pas, mais si on annule une saisie, il faudrait pouvoir tout vider. Peut-être faudrait-il remplir le tableau à la toute fin, quand on valide la saisie UserForm" : oui, sais-tu quel code utiliser ? (je suis novice :-()
"Sinon par rapport à ta demande tu peux faire :
Rows(3).Insert
Unload UserForm1
Load UserForm1
UserForm1.Show "
Ça ne fonctionne pas totalement : ça enregistre bien à partir de la ligne 3 et créé une ligne après chaque enregistrement mais ça continu d'enregistrer dans le premier onglet alors qu'il faudrait que ça s'enregistre dans le second onglet.
Sais-tu comment faire en sorte qu'il enregistre toutes les données dans l'onglet "Base de données" = l'onglet n°2
Ou dois-je me résigner à inverser le sens des onglets ?
Merci beaucoup pour ton aide !!!!