Erreur d'éxecution '5' (Paramétrage ComboBox)

Bonjour,

Je suis en train de générer la source d'une ComboBox via ma macro pour ne pas prendre en compte les cellules vides.

Je pense que le code est bon mais au moment du test j'ai "Erreur d’Exécution'5' " ..

Une erreur d'écriture ? Je suis persuadé que c'est un petit détail mais je ne trouve pas ..

    Dim i As Long
    Dim Ref As Variant

        For i = 7 To Range("B9999").End(xlUp).Row
            Ref = Cells("B" & i)

            If Ref <> "" Then Cbx_ProduitFini.AddItem Ref
        Next i

End Sub

Bonjour

Essayez en remplaçant toutes les lignes par la ligne ci-dessous

Cbx_ProduitFini.List = Range("B7:B100").Value

B100 étant la dernière ligne

Cordialement

Bonjour @Dan,

Je n'ai plus de message d'erreur avec =>

Cbx_ProduitFini.List = Range("B7:B100").Value

Mais du coup j'ai toujours mes cellules vides dans la ComboBox

Re

Mettez le nom votre feuille devant Range.

Crdlt

Bonjour ...

Cells(...) ou Range(...) ? Remplacer Ref = Cells("B" & i) par Ref = Range("B" & i) ou Ref = Cells(i, "B").

Bonsoir,

J'ai testé vos 2 idées, pas d'amélioration :/ : Toujours cette fichue erreur d’exécution '5' !

Bonsoir,

un essai :

    Dim I
    For I = 2 To Range("B9999").End(xlUp).Row
       If Cells(I, 2) <> "" Then Cbx_ProduitFini.AddItem Cells(I, 2).Value
    Next

@ bientôt

LouReeD

Bonsoir @LouReed !

Problème résolu avec ton code !

Mais je ne comprends pas pourquoi mon code ne fonctionne pas

Bonsoir,

dans votre code ajoutez un MsgBox afin de voir à quoi correspond la variable Ref à chaque tour du For :

        For i = 7 To Range("B9999").End(xlUp).Row
            Ref = Cells("B" & i)
            MsgBox Ref
            If Ref <> "" Then Cbx_ProduitFini.AddItem Ref
        Next i

Peut-être allez vous voir que le vide apparent des cellules ne l'est pas ou que la valeur est incompatible avec une donnée de List d'un Combobox...

A vrai dire c'est un peu comme cela que je procède de mon coté quand je ne comprend pas, et dans votre cas on ne sait pas pourquoi les cellules sont "vides", est*ce du à une extraction d'une source extérieure ? ou bien le résultat d'une formule.... Toutes ces questions peuvent être résolues avec la "fourniture" d'un fichier dès le départ...

Une dernière question : pourquoi passer par une variable, qui plus est, est définie en variant, pout travailler sous VBA alors que cette variable ne sera plus utiliser plus tard ?
Pourquoi qui plus est ? Car je me suis rendu compte qu'une variable définie par Dim I ou bien Dim I As Variant pouvait provoquer des incohérences dans le code VBA, enfin c'est un souvenir que j'ai, du coup i je définie une variable alors que je ne connais pas son type exacte, et bien je ne met rien.

Essayez avec votre code sans typer la variable Ref... On verra ce que cela donne.

@ bientôt

LouReeD

Bonjour,

Je prends note des remarques et de l'astuce @LouReeD !

Sans typer Ref rien ne change, toujours "erreur d'exécution '5' ". Le problème vient de "Cells ("B" & i) non ? Cells ne sait pas lire "B" si ?

Bonne journée à tous

Bonjour

Essayez Range("B" & i)...

Puis apparemment vous ne dites rien sur ma suggestion de mettre le nom de la feuille devant ...vous avez essayé ??

Cordialement

Bonjour @ tous,

En effet, Cells utilise plutôt des chiffres et Range des références alphanumériques, mais j'ai déjà vu des "mélanges" mais je ne les utilise pas.

C sque dit Dan est vrai : il est préférable de cibler la feuille avec laquelle le code VBA travaille.

Le MsgBox vous a t il "montrer" quelque chose.

@ bientôt

LouReeD

Merci pour les retours ! J'ai résolu mon problème de novice grâce à vous ;)

La MsgBox ne m'a rien montré non

Uoidac

Re

J'ai résolu mon problème de novice grâce à vous ;)

Ok mais c'était quoi le souci finalement

C'est l'écriture de "Cells ("B" & i)" qui m'était le bazarre, je suis passé sur Cells(2 , i) et tout fonctionne.

J'avais essayé avec le nom de la feuille devant oui mais j'avais toujours le même code erreur '5'. Par contre je laisse le nom pour éviter d'autres problèmes par la suite

Re

C'est l'écriture de "Cells ("B" & i)" qui m'était le bazarre, je suis passé sur Cells(2 , i) et tout fonctionne.

Oui j'avais vu mais là je ne comprends pas car cells(2,i) dans le code montré au départ, cela ne correspond plus. Dans votre code au départ, vous boucliez sur la colonne B, raison pour laquelle on a proposé les solutions.

Cells(2,i) signifie que vous bouclez sur les colonnes i en ligne 2

Mais si tout fonctionne c'est bon !

Re !

Autant pour moi ... ! Je suis passé sur Cells(i , 2)

Autant pour moi ... ! Je suis passé sur Cells(i , 2)

Ok. Alors ce que je vous ai donné --> Range("B" & i) devait fonctionner. C'est la même chose que Cells(i,2)

Cordialement

Rechercher des sujets similaires à "erreur execution parametrage combobox"