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,

J'ai une impression de joyeux mélange ! Tout cela donnera sans doute un résultat mais que ce soit le résultat escompté me surprendrait... Enfin, tout est possible... !

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.

Rechercher des sujets similaires à "alimenter combobox donnees feuille active"