drik56
Messages postés127Date d'inscriptionmercredi 16 avril 2008StatutMembreDernière intervention 8 juillet 2008
-
4 juin 2008 à 08:47
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
4 juin 2008 à 10:34
Bonjour a tous,
Je souhaiterais remplir un combobox sur ma feuille excel avec les données de la colonne B d'une autre feuille mais sans doublon et sans l'heure.
B
02/06/2008 06:55
02/06/2008 08:23
02/06/2008 15:35
03/06/2008 05:43
03/06/2008 09:23
04/06/2008 07:40
...
Voila ma colonne B donc je voudrais remplir mon combobox avec juste la date (sans l'heure) et sans doublon. Cad avoir:
02/06/2008
03/06/2008
04/06/2008
...
J'ai commencé avec ce début de code pour virer les doublons:
Dim i As Integer
For i = 2 To Sheets("HIS").Range("B65536").End(xlUp).Row
ComboBox1 = Sheets("HIS").Range("B" & i)
If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Sheets("HIS").Range("B" & i)
Next i
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 juin 2008 à 09:19
Salut,
pour être franc, ton code ne vérifie jamais s'il y a des doublons.
En gros tu fais une boucle sur tes cellules, certes, mais ensuite faut boucler également sur les items de ton ComboBox.
Ton If... veut dire, en français : Si aucun Index n'est choisi dans la liste de mon ComboBox alors ajoute en tant qu'Item au ComboBox la donnée de la cellule B i de la feuille HIS.
3 soluces :
1/ Tu boucles sur les cellules, comme tu l'as fait, ensuite tu boucles sur tes Items (sert toi de ComboBox.ListCount pour For j = 1 To ComboBox.ListCount Next) et si aucune valeur n'est égale, alors là tu fais un AddItem.
2/ Lourd et moins rapide, tu peux te servir d'une Collection en étape intermédiaire : tu mets un On Error Resume Next, ensuite tu ajoutes les Items de tes cellules à la Collection, genre Dim cCol As New Collection, dans ton For i.. : cCol.Add Sheets("HIS").Range("B" & i).Vvalue, CStr(Sheets("HIS").Range("B" & i).Vvalue)
Puis tu ajoutes les élements de ta collection dans ton ComboBox.
3/ Je ne sais plus le code mais enregistre toi pour l'avoir : tu fais un filtre sur place ssans doublons (sélectionne la plage de donnée, menu Outils, Filtrer -> Filtre élaboré, Extraction sans doublons. Choisis la destination en cellule, tu boucles sur les celles de destination pour les rajouter dans ton ComboBox, puis tu effaces les données de l'extraction.