Bonjour à tous
je vous poste mon classeur dans lequel la feuille consommation contient une combo que je veux remplir à partir de source sans doublons mais la macro ne veux pas s’exécuter alors de l'aide sera le bien venu, Merci à tous
Mon Classeur
Bonjour à tous
je vous poste mon classeur dans lequel la feuille consommation contient une combo que je veux remplir à partir de source sans doublons mais la macro ne veux pas s’exécuter alors de l'aide sera le bien venu, Merci à tous
Mon Classeur
Voici ce qui pourrait répondre à ta question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Sub RempliComboUnik(Plage As Range, QuelCombo As ComboBox) With QuelCombo .Clear For Each C In Plage .Value = C.Value If .ListIndex = -1 Then .AddItem C.Value Next C .ListIndex = 0 End With End Sub Sub EssaiComboFillUniq() RempliComboUnik Sheets("Source").Range("I1:I" & Sheets("Source").Range("I65536").End(xlUp).Row), Worksheets("Consommation Par Véhicule").ComboBox1 End Sub
Bonjour Kitty
Merci pour ta réponse, mais une question je dois placé le code dans ThisWorkBook ou dans la feuille en question pour que la combobox se remplie automatiquement à chaque ouverture du classeur, Merci encore
bonjour pour remplir un combobox sans doublons il y a une methode tres simple
l'utilisation d'un object scripting.dictionary(dictionnaire )qui n'acepte pas les doublons
exemple pour remplir une combobox dans un userform
si on ne precise pas la feuille sera le premier sheets qui sera pris en compte
avec precision du sheets en l'occurence ici "Feuil1"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub UserForm_Activate() ComboBox1.List = liste_sans_doublons("a1:a" & Range("a" & Rows.Count).End(xlUp).Row) End Sub'cette fonction liste une colonne sans les doublons en prenant en compte rien que la plage spécifiée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Private Sub UserForm_Activate() ComboBox1.List = liste_sans_doublons("a1:a" & Range("a" & Rows.Count).End(xlUp).Row, "Feuil1") End Sub
Au plaisir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Function liste_sans_doublons(plage, Optional feuille As Variant = 1) Set d = CreateObject("Scripting.Dictionary") For Each cel In Sheets(feuille).Range(plage) d.Item(cel.Value) = "" Next cel liste_sans_doublons = d.keys End Function
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour patricktoulon
Je te remercie pour ta réponse et aussi les explications, je ne suis pas très fort en VB, alors le code je dois le placer sur la feuille 1 ou sur la feuille ThiworkBook
pour que la combobox se met a jour automatiquement. Pouvez vous me rendre la réponse sur le classeur joint pour que je puisse mieux m’applique, Merci.
non il suffit que tu mettes le code de Patrick dans le userform
regarde le fichier joint, ça te donneras une piste
Partager