Alimenter combobox avec données feuille active
Bonsoir à tous,
J'ai une base de donnée répartie sur plusieurs feuilles de mon classeur (tous identiques) que j'alimente par un formulaire.
J'aimerai avoir dans une combobox de mon formulaire les données contenues dans la colonne B de ma feuille active.
J'ai donc essayé :
dim a, dispo, liste()
Private Sub USERFORM_INITIALIZE()
Set a = Sheets(ActiveSheet.Name) 'j'ai également essayé avec "activesheet" seul mais sans résultat
Set dispo = a.Range("B3:B" & a.[a65000].End(xlUp).Row)
liste = Application.Transpose(dispo)
Me.ComboBox3.List = liste
end sub
Private Sub ComboBox3_Change()
If Me.ComboBox3.ListIndex = -1 And IsError(Application.Match(Me.ComboBox3, liste, 0)) Then
Me.ComboBox3.List = Filter(liste, Me.ComboBox3.Text, True, vbTextCompare)
Me.ComboBox3.DropDown
Else
End If
End Sub
Mais ça ne fonctionne pas sur la feuille active, je retrouve les données contenues sur ma première feuille.
Merci pour votre aide potentielle,
Bonne soirée
Bonsoir,
D'abord, quand je vois USERFORM_INITIALIZE écrit ainsi, j'ai quelque doute sur son exécution, car VBA ne l'écrit pas ainsi...
Variables non typées : je n'aime pas ! On se demande pourquoi passer de dispo à liste ? On se demande aussi pourquoi transposer ?
On tripatouille ensuite la variable liste avec la fonction Filter. Je ne suis pas familier de cette fonction mais je lis qu'elle attend en premier argument un tableau à une dimension. On lui en fournit un à deux dimensions !
Je ne prendrai donc pas de pari sur le résultat de tout cela...
Je pense que si tu veux que ton code soit examiné de plus près, un classeur s'impose...
(Pour ma part, je n'examine que si l'indentation est correcte et permet une lecture rapide...)
Cordialement.