Combobox Sans doublons

Bonjour à tous

je vous mets le classeur en pièce jointe, sur le feuille Consommation par véhicule, j'ai mis une macro mais je ne voix pas ou est le probleme qui bloque le chargement de la combo sans doublons, Merci à tous

Bonsoir,,

Un coup de fatigue ?

Sub EssaiComboFillUniq()

RempliComboUnik Sheets("Source").Range("I1:I" & _

Sheets("Source").Range("I65536").End(xlUp).Row), _

Worksheets("Source").ComboBox1

End Sub

Il y a comme une erreur... Il manque aussi un End Sub dans le fichier que nous à transmis.

Bonjour Benead,

Merci pour ta réponse, mais je ne vois pas ou est l'erreur qui bloque, sauf pour le End Sub, j'ai repris ta routine à la place de la mienne mais c'est toujours le même résultat. Merci à tous j'attends d'autres réponses.

Bonjour,

Je bloque toujours, merci de m'aider à solutionner mon problème.

Bonsoir à Tous

Je me suis jeté sur l'ordi en espérant qu'un bien faiteur a corrigé mon erreur, mais pas encore et je ne vois toujours ou est l'erreur

Merci à tous

Bonsoir,

Je pensais que je t'avais bien aiguillé et que tu aurais trouvé ton erreur tout seul... Le combobox n'est pas sur cette feuille... C'est bon maintenant... T'as vu ?

Parfois on bloque sur une syntaxe, une erreur, parfois tellement énorme qu'on ne la voit même pas.

Bonsoir;

Merci pourl'aide que tu me portes mais je ne vois toujours pas l'erreur... Je passe totalement à coté...

ben mon vieux, le pétard en même temps que l'alcool ne te réussi pas trop

Il faut remplacer :

Sub EssaiComboFillUniq()
 RempliComboUnik Sheets("Source").Range("I1:I" & _
  Sheets("Source").Range("I65536").End(xlUp).Row), _
  Worksheets("Source").ComboBox1
End Sub

par :

Sub EssaiComboFillUniq()
 RempliComboUnik Sheets("Source").Range("I1:I" & _
  Sheets("Source").Range("I65536").End(xlUp).Row), _
  Worksheets("Consommation Par Véhicule").ComboBox1
End Sub

ComboBox1 est dans la feuille "Consommation Par Véhicule", pas dans la feuille "Source" !!!!!

Je crois que tu as besoin d'un peu de sommeil...

Bonsoir et merci infiniment,

mais que tu me crois ou pas je l'ai fais avant de reprendre le fil je l'essayes et je te donne des nouvelles merci


Salut!

je viens de le mettre mais toujours le meme résultat!!! a-tu essayé? la combo ne se remplit pas...

Oui, cela fonctionne :

Salut Benead

Merci pour ta réponse, mon idée était de remplir la Combo automatiquement à chaque ouverture du classeur, le bouton "Actualiser" je le destine pour un traitement autre que le remplissage, si je dois changer est ce je place la Macro dans ThisWorkBook ? Merci encore

Oui, il faut mettre le code suivant dans ThisWorkbook :

Option Explicit

Private Sub Workbook_Open()
   Call RempliComboUnik(Sheets("Source").Range("I1:I" & Sheets("Source").Range("I65536").End(xlUp).Row), Worksheets("Consommation Par Véhicule").ComboBox1)
End Sub

Private Sub RempliComboUnik(Plage As Range, QuelCombo As MSForms.ComboBox)

 Dim C As Range
 Dim Tbl As New Collection
 Dim i As Integer

 On Error Resume Next
 For Each C In Plage
  If Not IsError(C) Then
    If C <> "" Then Tbl.Add C.Value, CStr(C.Value)
  End If
 Next C
 On Error GoTo 0

 With QuelCombo
  .Clear
  For i = 1 To Tbl.Count
    .AddItem Tbl(i)
  Next i
  .ListIndex = 0
 End With

 Set Tbl = Nothing
End Sub

Et supprimer tout le code qu'il y a dans Feuil1. En effet les modules de ThisWorbook et des feuilles sont des modules événementiels, plus techniquement nommés modules de Classe. Ces modules ne supportent pas les appels à des macros qui sont dans d'autres modules de classe, il faut donc mettre la macro RempliComboUnik soit dans ThisWorbook, soit dans un module standard. Si tu le mets dans un module standard, il faut enlever la notion de Private devant Sub. Une macro Private ne peut être appelée que par une autre macro placée dans le même module qu'elle.

Bonsoir

Merci pour les précieux conseils que tu me donne, je viens d'essayer la nouvelle solution *, à l'ouverture du Classeur j'ai une erreur "Erreur d'Execition 9" et l'indice n'appartient pas à ma selection, quand je clic sur débogage sa pointe sur:

Call RempliComboUnik(Sheets("Source").Range("I1:I" & Sheets("Source").Range("I65536").End(xlUp).Row), Worksheets("Consommation Par Véhicule").ComboBox1)

Merci de me corriger encore

Ben, je ne vois pas ce qui se passe sur ton ordinateur, à tout hasard, remplace

Call RempliComboUnik(Sheets("Source").Range("I1:I" & Sheets("Source").Range("I65536").End(xlUp).Row), Worksheets("Consommation Par Véhicule").ComboBox1)

par

    Sub EssaiComboFillUniq()
     RempliComboUnik Sheets("Source").Range("I1:I" & _
      Sheets("Source").Range("I65536").End(xlUp).Row), _
      Worksheets("Consommation Par Véhicule").ComboBox1
    End Sub

Je l'ai testé sous Excel 2007, 2010 et 2013, cela fonctionne parfaitement chez moi...

Bonsoir

Désolé de te déranger autant, l'erreur d’exécution est corrige mais la combo ne se rempli pas auto, j'ai placé la macro dans workbook et l’événement open, est ce juste?

Bonsoir à Tous,

Je reprend le fil car je n'ai pas trouver une solution, je l'ai fais avec des liste de validation mais cela ne convient pas à ma logique;

merci de me donner un coup de main.

Bonjour Hosni,

Si tu as récupéré le code du fichier que j'ai mis sur le forum pour le mettre dans ton fichier, il faut alors soit remettre ce fichier, soit nous décrire exactement le problème.

Pour décrire exactement le problème, il faut que tu utilises le mode de débogage pour comprendre ce qui, dans la ligne, pose le problème. Pour cela, il faut que tu t'aide de la fenêtre Espion : Dans la fenêtre VBE, menu Affichage/Fenêtre espion. Quand tu as l'erreur, l'exécution du code s'arrête, alors tu glisses les objets ou variables, un par un pour voir celui qui est en erreur, par exemple : "Sheets("Source").Range("I1:I" & Sheets("Source").Range("I65536").End(xlUp).Row)" ou "Sheets("Source")", attention il faut bien prendre chaque objet dans la globalité... Ou alors il faut le sélectionner (c'est le problème avec les objets définis à l'aide de With) et combiner les touches Maj-F9, un fenêtre s'affiche alors donnant la valeur de la variable.

Enfin tu reviens sur le forum pour nous dire quel est l'objet ou la variable en erreur.

De toute façon, si le fichier que je t'ai envoyé fonctionne chez moi sur 3 versions d'Excel et pas chez toi, le problème est peut-être lié à Excel chez toi ou ton environnement, Mac par exemple.

Ensuite on fera d'autre tests

Voici le fichier qui fonctionne parfaitement chez moi :

Bonjour

Merci à Toi Benead, je viens de tester ta nouvelle correction et elle marche bien, je te remercie aussi pour les explications que tu me donnes cela m'aide beaucoup dans mes recherches. Merci encore.

Rechercher des sujets similaires à "combobox doublons"