Erreur code

Bonjour,

Je rencontre actuellement une erreur dans mon code. Je voudrais que lorsque je sélection dans ma Combobox1 une catégorie de produit (ex: porte) cela m'affiche dans les textbox 5,6,7,8,9 les information en feuille ( largeur,hauteur, épaisseur note écologie, détail) et que si je sélection dans ma combobox1 une autre catégorie (ex: quincailleries) cela m'affiche les information qui corresponde (ex: longueur, largeur, épaisseur, colorie, détails).

Et actuellement les information dans mes textbox ne change pas, pouvez vous y jeter un coup d'oeil et me dire pourquoi cela coince et comment régler mon problème s'il vous plaît.

désoler mais mon fichier et trop lourd je suis donc obliger de le mettre a disposition via ce liens:

Bonsoir,

Sans aller trop loin, j'ai décelé deux erreurs dans ton code :

La première est que tu fais une recherche sur la colonne C au lieu de B :

Set Cel = .Columns("C").Find(what:=Me.ComboBox1, LookIn:=xlValues, lookat:=xlWhole)

La seconde, est que tu utilises des cellules fusionnées dans ta base de données Feuil1. Je déconseille fortement l'utilisation des fusions surtout dans les BD, et d'autant plus quand on utilise VBA, elles engendrent tout un tas de problèmes (copies, filtres, tris, VBA...)

J'ai tout de même corrigé le code suivant :

        If .Range("D" & J) <> "" Then
          Me.ComboBox2.AddItem .Range("D" & J)

en utilisant MergeArea :

        If .Range("D" & J).MergeArea.Range("A1") <> "" Then
          Me.ComboBox2.AddItem .Range("D" & J).MergeArea.Range("A1")

Je ne suis pas contre la fusion de cellules dans des feuilles de présentations et avec modération.

Merci pour c'est correction mais pour mon problème pour afficher les information dans mes textbox via la sélection de ma première combobox car actuellement quand je choisie "Porte" dans ma 1er combobox cela affiche dans les différent combobox "largeur","hauteur"... (information ce trouvant dans la feuille 2 colonnes C,D,E,F,G) et si je choisie une autre catégories de produit rien de ne s'affichera dans les textbox et je ne comprend pas pourquoi cela fonction avec la catégorie porte en non avec d'autres.

Bonjour,

Je ne comprends pas ton problème ! Chez moi les valeurs ne sont pas les mêmes si je choisis porte "Largeur, hauteur, épaisseur s'affichent, et quand je clique sur quincaillerie, j'ai 'Longueur, largeur et épaisseur" qui s'affichent.

Voici le code qui fonctionne chez moi et que je t'ai demandé de corrigé :

Private Sub ComboBox1_Change()
Dim Cel As Range
Dim J As Long

  Me.ComboBox2.Clear
  If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  With Sheets("Feuil1")
    Set Cel = .Columns("B").Find(what:=Me.ComboBox1, LookIn:=xlValues, lookat:=xlWhole)
    If Not Cel Is Nothing Then
      For J = Cel.Row To Cel.Offset(1, 0).Row - 1
      If .Range("D" & J).MergeArea.Range("A1") <> "" Then
        Me.ComboBox2.AddItem .Range("D" & J).MergeArea.Range("A1")
          TextBox5 = Application.VLookup(ComboBox1.Value, Sheets("Feuil2").Columns("B:G"), 2, 0)
           TextBox6 = Application.VLookup(ComboBox1.Value, Sheets("Feuil2").Columns("B:G"), 3, 0)
            TextBox7 = Application.VLookup(ComboBox1.Value, Sheets("Feuil2").Columns("B:G"), 4, 0)
             TextBox8 = Application.VLookup(ComboBox1.Value, Sheets("Feuil2").Columns("B:G"), 5, 0)
              TextBox9 = Application.VLookup(ComboBox1.Value, Sheets("Feuil2").Columns("B:G"), 6, 0)
        End If
      Next J
    End If
  End With
End Sub

Avais-tu bien ajouté .MergeArea.Range("A1") comme je te l'avais demandé ?

Oui cela fonction mais cela me crée un nouveaux problème car en faisant les correction cela ne me propose plus que 1 seul fournisseur au lieux de 2

Nicolas28220,

Quand j'ai corrigé ton code, je n'avais même pas vu qu'il y avait deux colonnes catégories, comme je n'avais pas vu qu'il y avait le mot porte en C8 à cause de la fusion de cellule.

Ah mon avis, il faut d'abord que tu règles le problème de cellules fusionnées dan ta base de données Feuil1, sinon tu vas beaucoup complexifier le code VBA.

Rechercher des sujets similaires à "erreur code"