Ma ComboBox ne fonctionne pas

Bonjour,

J'ai déjà réalisé plusieurs formulaires et là je ne sais pas pourquoi ma ComboBox ne récupère pas les informations...

Private Sub UserForm1_Initialize()
For a = 2 To 3
ComboBox1.AddItem Sheets("Tables").Cells(c, 3)
Next
End Sub

Merci d'avance.

14combobox.xlsm (36.58 Ko)

Bonjour

A tester

Private Sub UserForm_Initialize()
  Dim a%, derniereLigne%
  derniereLigne = Sheets("Tables").Range("A" & Rows.Count).End(xlUp).Row 'n° de la dernière ligne non vide de la colonne A
    For a = 2 To derniereLigne
      ComboBox1.AddItem Sheets("Tables").Cells(a, 1)
    Next a
End Sub

DerniereLigne te servira pour des combobox dynamiques

Bonjour Rec, bonjour le forum,

Si j'osais je dirais que tu l'A dans le C... Ou que C pas l'A...

Private Sub UserForm1_Initialize()
For a = 2 To 3
ComboBox1.AddItem Sheets("Tables").Cells(a, 3)
Next
End Sub

ou :

Private Sub UserForm1_Initialize()
For c = 2 To 3
ComboBox1.AddItem Sheets("Tables").Cells(c, 3)
Next
End Sub

[Édition]

Bonjour M nos posts se sont croisés...

Bonjour ThauTheme

Je suis trés déçu venant de ta part

UserForm1

Bonjour à tous les 2,

M12 > ta solution fonctionne mais j'ai déjà fait un formulaire avec beaucoup de ComboBox et je n'avais pas eu besoin d'avoir un code "compliqué" comme le tient ?

ThauThème > mais j'ai essayé tes 2 codes et ça ne fonctionne pas.

Vous pensez que ça peut venir de mon fichier ?

Re,

Qu'est ce qu'il y a de compliqué

Des déclarations de variable ?

Tu aurais mis Option Explicit au départ, tu aurais trouvé les erreurs

La Derniere ligne cela pourrais servir ensuite

De plus pour mettre deux données

Re,

Oui M il y a de quoi être déçu !... Alors j'explique pour Rec...

Quel que soit le nom d'une UserForm, son initialisation se fait avec la syntaxe :

Private Sub UserForm_Initialize()

Private Sub UserForm1_Initialize() a, à peu près, le même résultat que de pi... dans un violon.

Et pour terminer, tu utilises, la colonne 3 alors que les données se trouvent dans la colonne 1 !

le bon code :

Private Sub UserForm_Initialize()
For a = 2 To 3
ComboBox1.AddItem Sheets("Tables").Cells(a, 1)
Next
End Sub

La proposition de M d'utiliser la dernière ligne éditée est excellente car elle rend tes ComboBox dynamiques (qui s'adaptent automatiquement quand tu rajoutes une donnée). Ne sois donc pas si dédaigneux...

Bonjour

déjà tu detete ton userform et tu le refait sans toucher au propriete

et pour la combobox pour momsieur ou madame

Private Sub UserForm_Initialize()
    ComboBox1.List = Array("Monsieur", "Madame")
End Sub

A+

Maurice

Re,

Oui M il y a de quoi être déçu !... Alors j'explique pour Rec...

Quel que soit le nom d'une UserForm, son initialisation se fait avec la syntaxe :

Private Sub UserForm_Initialize()

Private Sub UserForm1_Initialize() a, à peu près, le même résultat que de pi... dans un violon.

Et pour terminer, tu utilises, la colonne 3 alors que les données se trouvent dans la colonne 1 !

le bon code :

Private Sub UserForm_Initialize()
For a = 2 To 3
ComboBox1.AddItem Sheets("Tables").Cells(a, 1)
Next
End Sub

La proposition de M d'utiliser la dernière ligne éditée est excellente car elle rend tes ComboBox dynamiques (qui s'adaptent automatiquement quand tu rajoutes une donnée). Ne sois donc pas si dédaigneux...

Merci beaucoup pour les explications, je comprends mieux et je vais utiliser la proposition de M

Bonne journée !

Bonjour

voila 5 façon de faire ta combobox

A toi de choisir

A+

Maurice

' 1
For L = 2 To 3
    ComboBox1.AddItem Sheets("Tables").Cells(L, 1)
Next
' 2
ComboBox1.List = Array("Monsieur", "Madame")
' 3
    With Sheets("Tables")
        For L = 2 To 3
            ComboBox1.AddItem .Cells(L, 1)
        Next
    End With
' 4
    With Sheets("Tables")
        For L = 2 To .Range("A" & Rows.Count).End(xlUp).Row
            ComboBox1.AddItem .Range("A" & L)
         Next
    End With
 ' 5
    With Sheets("Tables")
       ComboBox1.List = .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row).Value
    End With
    
Rechercher des sujets similaires à "combobox fonctionne pas"