Alimenter plusieurs combobox (userforme) partir d'un onglet vba
Résolu/Fermé
seb3386
Messages postés
3
Date d'inscription
mardi 20 janvier 2015
Statut
Membre
Dernière intervention
20 janvier 2015
-
20 janv. 2015 à 13:41
seb3386 Messages postés 3 Date d'inscription mardi 20 janvier 2015 Statut Membre Dernière intervention 20 janvier 2015 - 20 janv. 2015 à 17:44
seb3386 Messages postés 3 Date d'inscription mardi 20 janvier 2015 Statut Membre Dernière intervention 20 janvier 2015 - 20 janv. 2015 à 17:44
A voir également:
- Alimenter plusieurs combobox (userforme) partir d'un onglet vba
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Rouvrir un onglet fermé - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Comment faire une recherche à partir d'une photo - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
6 réponses
pilas31
Messages postés
1825
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
643
Modifié par pilas31 le 20/01/2015 à 16:58
Modifié par pilas31 le 20/01/2015 à 16:58
Bonjour,
Difficile de comprendre car cela devrait fonctionner.
Une question :
OK j'ai pas bien lu donc oui il y a du code et c'est bien la procédure initialize qui provoque cela donc Est-ce que le nom de la feuille "Entities" est bien orthographié ?
Les autres combos sont remplies avec des données se trouvant dans d'autres feuilles ?
Je pense qu'il y a un nom de feuille incorrect dans la macro initialize
Cordialement,
Difficile de comprendre car cela devrait fonctionner.
Une question :
OK j'ai pas bien lu donc oui il y a du code et c'est bien la procédure initialize qui provoque cela donc Est-ce que le nom de la feuille "Entities" est bien orthographié ?
Les autres combos sont remplies avec des données se trouvant dans d'autres feuilles ?
Je pense qu'il y a un nom de feuille incorrect dans la macro initialize
Cordialement,
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
20 janv. 2015 à 17:03
20 janv. 2015 à 17:03
Bonjour,
Ton problème vient du fait que ton code est dans:
Private Sub UserForm_Initialize()
il faut le mettre dans:
Private Sub UserForm_Activate()
comme ceci
Ton problème vient du fait que ton code est dans:
Private Sub UserForm_Initialize()
il faut le mettre dans:
Private Sub UserForm_Activate()
comme ceci
Private Sub UserForm_Activate() Dim sd As Object Dim str As Range Dim cel As Range Dim tbl As Variant Dim i As Integer Dim j As Integer Dim temp As Variant Set sd = CreateObject("Scripting.Dictionary") With Sheets("Entities") 'feuille sur laquelle se trouvent mes données qui permettent d'alimenter ma combobox Set str = .Range(Range("C2"), Range("C65536").End(xlUp)) 'définit la plage de données End With For Each cel In str sd(cel.Value) = "" 'alimente la liste sans doublons Next cel tbl = sd.keys 'définit le tableau des valeurs sans doublons 'tri alphabétique For i = 0 To UBound(tbl) For j = 0 To UBound(tbl) If tbl(i) < tbl(j) Then temp = tbl(i) tbl(i) = tbl(j) tbl(j) = temp End If Next j Next i Me.ComboBox1.List = tbl With Sheets("Entities") 'feuille sur laquelle se trouvent mes données qui permettent d'alimenter ma combobox Set str = .Range(Range("D2"), Range("C65536").End(xlUp)) 'définit la plage de données End With For Each cel In str sd(cel.Value) = "" 'alimente la liste sans doublons Next cel tbl = sd.keys 'définit le tableau des valeurs sans doublons 'tri alphabétique For i = 0 To UBound(tbl) For j = 0 To UBound(tbl) If tbl(i) < tbl(j) Then temp = tbl(i) tbl(i) = tbl(j) tbl(j) = temp End If Next j Next i Me.ComboBox2.List = tbl End Sub
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
20 janv. 2015 à 17:32
20 janv. 2015 à 17:32
mais le passage du Userform02 au Userform03 ne marche pas.
Utilise ceci:
les noms des UserForm sont a adapter
Utilise ceci:
Private Sub CommandButton1_Click() lancementUSF UserForm2.Hide End Sub 'http://silkyroad.developpez.com/VBA/UserForm/ Sub lancementUSF() Dim sVariable As String sVariable = "UserForm1" VBA.UserForms.Add(sVariable).Show End Sub
les noms des UserForm sont a adapter
seb3386
Messages postés
3
Date d'inscription
mardi 20 janvier 2015
Statut
Membre
Dernière intervention
20 janvier 2015
20 janv. 2015 à 17:33
20 janv. 2015 à 17:33
Bonjour Pilas, Bonjour cs_Le Pivert, Bonjour le forum,
Merci beaucoup pour vos réponses.
Merci Pilas:
Le nom de la feuille "Entities" est bien orthographié, j'ai bien vérifié.
Les autres combo sont censées être, pour une partie, alimentées par la même feuille, et pour une autre partie par une autre feuille excel.
J'ai bien vérifié les orthographes, mais cela ne vient pas de là.
Merci cs_Le Pivert:
Je viens de remplacer
J'ai maintenant une autre erreur. Elle provient de la définition de la plage. La ligne surlignée est la ligne numéro 13 dans le message de cs_Le Pivert. Je vais essayer de chercher d'où cela provient, mais je ne vois pas bien...
Merci beaucoup pour vos réponses.
Merci Pilas:
Le nom de la feuille "Entities" est bien orthographié, j'ai bien vérifié.
Les autres combo sont censées être, pour une partie, alimentées par la même feuille, et pour une autre partie par une autre feuille excel.
J'ai bien vérifié les orthographes, mais cela ne vient pas de là.
Merci cs_Le Pivert:
Je viens de remplacer
Private Sub UserForm_Initialize()par
Private Sub UserForm_Activate()
J'ai maintenant une autre erreur. Elle provient de la définition de la plage. La ligne surlignée est la ligne numéro 13 dans le message de cs_Le Pivert. Je vais essayer de chercher d'où cela provient, mais je ne vois pas bien...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
20 janv. 2015 à 17:38
20 janv. 2015 à 17:38
Cela doit provenir des saisies dans la colonne C.
J'ai fait un essai chez moi avec 5 saisies dans la colonne C à partir de C2 et cela fonctionne!
J'ai fait un essai chez moi avec 5 saisies dans la colonne C à partir de C2 et cela fonctionne!
seb3386
Messages postés
3
Date d'inscription
mardi 20 janvier 2015
Statut
Membre
Dernière intervention
20 janvier 2015
20 janv. 2015 à 17:44
20 janv. 2015 à 17:44
L'erreur résiduelle provenait de ma définition de la plage. Il fallait que je rajoute les . devant les range.
Cela fonctionne maintenant !
Merci beaucoup pour votre aide.
Cela fonctionne maintenant !
Merci beaucoup pour votre aide.