Combobox ne se charge pas

Bonjour,

Je suis nouveau sur le forum et complètement autodidacte en VBA.

Voilà mon problème. J'ai créé un Userform avec deux combobox en cascade. Les listes déroulantes sont dans l'onglet configuration. Quand je suis sur cet onglet et que je lance mon Userform, pas de problème ça marche.

Par contre, quand je suis sur l'onglet Stock et que je lance mon Userform, rien ne se charge dans mes combobox et je ne sais pas puorquoi.

D'avance merci de votre aide.

Bonjour

Bon on peut modifier votre fichier dans la feuille Configuration ??

Suite : cela sert à quoi ?

Cordialement

Bonjour à tous,

Tu as oublié de référencer la feuille en mentionnant le range. (voir rouge)

Corrige toutes les occurences.

Set f = Sheets("Configuration")

If Combocat.Value = "LUM" Then

Lr = f.Range("D35").End(xlUp).Row

For j = 18 To Lr

Me.Combotype.AddItem f.Range("D" & j).Value

Next j

End If

ric

Bonjour Raphi & Dan,

Lors de l'alimentation de la combo, la feuille n'est pas précisée, donc on prend la feuille active.

A tester, en ajoutant le nom de la feuille, devant "Range".

'Me.Combocat.AddItem Range("B" & i).Value
Me.Combocat.AddItem f.Range("B" & i).Value

Bouben

EDIT : et bonjour Ric !

Bonjour

Bon on peut modifier votre fichier dans la feuille Configuration ??

Suite : cela sert à quoi ?

Cordialement

Suite c'est parce que mon fichier est loin d'être fini et je bloque depuis un jour ce point. Que voulez-vous modifier sur le fichier?

Re

Agencer la feuille Configuration pour éviter les lignes vides et colonnes vides entre les rubriques

C'est au début qu'il faut faire cela. Si vous le faite après vous devrez refaire les codes

Je peux vous montrer un exemple si vous voulez

Cordialement

Bonjour Raphi & Dan,

Lors de l'alimentation de la combo, la feuille n'est pas précisée, donc on prend la feuille active.

A tester, en ajoutant le nom de la feuille, devant "Range".

'Me.Combocat.AddItem Range("B" & i).Value
Me.Combocat.AddItem f.Range("B" & i).Value

Bouben

EDIT : et bonjour Ric !

Bonjour Bouben et ceux que je n'aurai pas salué,

Bouben, merci pour la solution. Maintenant que je l'ai, c'est évident pour moi que l'on ne peut pas faire du range si on ne stipule pas où on veut le faire.

Un très grand merci à tous pour votre aide. Je pense que l'on aura l'occasion de se reparler car je ne suis qu'au début de mon fichier.

Je vous souhaite une bonne journée et un bon weekend en cette période de confinement.

Re

Agencer la feuille Configuration pour éviter les lignes vides et colonnes vides entre les rubriques

C'est au début qu'il faut faire cela. Si vous le faite après vous devrez refaire les codes

Je peux vous montrer un exemple si vous voulez

Cordialement

Re,

Pour l'instant, j'ai besoin de clarté, c'est pour cela que j'ai laissé des espaces mais pensez-vous que cela peut être bloquant pour la suite?

Re

pensez-vous que cela peut être bloquant pour la suite?

Faites le test de déplacer vos listes en ligne 1 et sans espaces entre les colonnes.

ensuite relancer vos codes. Vous verrez probablement le souci

Raison de ma proposition dans mon post précédent.

Cordialement

Bonjour

trop de répétition

surtout si tu a pas fini

A voir

Private Sub Userform_initialize()
'D?finition des variables
Dim Lr As Long 'D?finition variable derni?re ligne
    With Feuil2 ' mettre le codename
        Lr = .Range("B30").End(xlUp).Row
         Combocat.List = .Range("B18:B" & Lr).Value
    End With
End Sub

Private Sub Combocat_Change()
'D?finition des variables
Dim Col As Long
On Error Resume Next
   With Feuil2
      Col = .Rows(17).Cells.Find(Combocat.Value, LookAt:=xlWhole).Column
      Combotype.Clear
      Combotype.List = .Range(.Cells(18, Col), .Cells(.Cells(Rows.Count, Col).End(xlUp).Row, Col)).Value
   End With
End Sub

A+

Maurice

Bonjour

trop de répétition

surtout si tu a pas fini

A voir

Private Sub Userform_initialize()
'D?finition des variables
Dim Lr As Long 'D?finition variable derni?re ligne
    With Feuil2 ' mettre le codename
        Lr = .Range("B30").End(xlUp).Row
         Combocat.List = .Range("B18:B" & Lr).Value
    End With
End Sub

Private Sub Combocat_Change()
'D?finition des variables
Dim Col As Long
On Error Resume Next
   With Feuil2
      Col = .Rows(17).Cells.Find(Combocat.Value, LookAt:=xlWhole).Column
      Combotype.Clear
      Combotype.List = .Range(.Cells(18, Col), .Cells(.Cells(Rows.Count, Col).End(xlUp).Row, Col)).Value
   End With
End Sub

A+

Maurice

Bonjour Archer,

Merci pour ton retour mais je ne vais pas simplifier pour l'instant car étant nouveau dans le VBA, je préfère garder les codes en les comprenant plutôt que d'en mettre que je ne comprends pas.

Mais en tout cas, c'est super cool de voir tant d'aide dans ces forums

Bonjour

trop de répétition

surtout si tu a pas fini

A voir

Private Sub Userform_initialize()
'D?finition des variables
Dim Lr As Long 'D?finition variable derni?re ligne
    With Feuil2 ' mettre le codename
        Lr = .Range("B30").End(xlUp).Row
         Combocat.List = .Range("B18:B" & Lr).Value
    End With
End Sub

Private Sub Combocat_Change()
'D?finition des variables
Dim Col As Long
On Error Resume Next
   With Feuil2
      Col = .Rows(17).Cells.Find(Combocat.Value, LookAt:=xlWhole).Column
      Combotype.Clear
      Combotype.List = .Range(.Cells(18, Col), .Cells(.Cells(Rows.Count, Col).End(xlUp).Row, Col)).Value
   End With
End Sub

A+

Maurice

Bonjour Maurice (et les autres personnes présentes sur le forum),

Une semaine après je me dis que tu as entièrement raison quand je vois les codes que je suis en train de faire.

Ton code est parfait mais je voudrais que la dernière ligne à regarder pour les types de catégorie soit la ligne 35 et non tout le document. C'est un peu ce que j'avais dans mon exemple. Peux tu m'indiquer comment je dois modifier ton code pour cela?

D'avance merci de ton aide et bonne journée

Raphaël

Rechercher des sujets similaires à "combobox charge pas"