ComboBox alimentée dynamiquement

Bonjour à toutes et à tous

Tout d'abord, je suis débutant en vba. Donc je vais peut-être dire d'énormes erreurs.

J'ai un fichier contenant de nombreux onglets.

Dans le 1er onglet, je dispose d'une comboBox qui doit être alimentée de manière dynamique par différents tableaux se trouvant dans les autres onglets.

Le 2eme onglet recense sous forme de tableau, la totalité des noms de plage que j'ai pu donné.

Sans utilisation de VBA, j'ai fait =INDIRECT("Listes_deroulantes!h5") et sous forme de liste déroulante ça fonctionne.

Mais retranscrite en VBA je n'arrive pas à intégrer de manière dynamique le nom de la plage souhaitée pour ma comboBox.

Ci-dessous mon code (trouvé sur internet)

Dim a(), f
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set Target = Target.Cells(1)
Set s = Sheets("Listes_deroulantes")

  ' Liste materiel
  If Not Intersect(Range("B17:D17"), Target) Is Nothing And Target.Count = 1 Then
    a = Application.Transpose(s.Range("B3:B" & s.[B65000].End(xlUp).Row))
    Me.ComboBox1.List = a
    Me.ComboBox1.Height = Target.Height + 3
    Me.ComboBox1.Width = Range("B17:D17").Width
    Me.ComboBox1.Top = Target.Top
    Me.ComboBox1.Left = Target.Left
    Me.ComboBox1 = Target
    Me.ComboBox1.Visible = True
    Me.ComboBox1.Activate
  Else
    Me.ComboBox1.Visible = False
  End If

'Accessoires matériel
  If Not Intersect(Range("B19:D39"), Target) Is Nothing And Target.Count = 1 Then
    a = Application.Transpose(s.Range("h5")) 'ICI MON PROBLEME => Je dois récupérer et utiliser le nom de la plage se trouvant dans cette cellule
    Me.ComboBox2.List = a
    Me.ComboBox2.Height = Target.Height + 3
    Me.ComboBox2.Width = Range("B19:D19").Width
    Me.ComboBox2.Top = Target.Top
    Me.ComboBox2.Left = Target.Left
    Me.ComboBox2 = Target
    Me.ComboBox2.Visible = True
    Me.ComboBox1.Activate
  Else
    Me.ComboBox2.Visible = False
  End If

End Sub
Private Sub ComboBox1_Change()
  ActiveCell.Value = Me.ComboBox1
End Sub
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 13 Then
    ActiveCell.Offset(1).Select
  End If
End Sub
Private Sub ComboBox2_Change()
  ActiveCell.Value = Me.ComboBox2
End Sub

J'espère avoir été assez clair.

Je vous remercie pour votre aide

Bonjour,

Fournir le fichier correspondant SVP

Pas d'adresses ni d N° de téléphone ou données personnelles

A+

15classeur-de-test.xlsm (307.12 Ko)

Ci-joint le fichier exemple.

Si c'est mal conçu je suis preneur de toutes informations :)

bonjour,

Plutôt que de vous faire des commentaires personnalisé, j'ai envie de vous renvoyer à cette autre conversation avec un autre interlocuteur :

https://forum.excel-pratique.com/excel/associer-un-macro-a-plusieurs-listes-deroulantes-164748#p1019...

Je pense que la réponse que je lui fait s'adapte également parfaitement à votre cas.

Pour le reste je ne vois pas comment je peux positiver sur votre question (revoyez d'abord les bases)

A+

Rechercher des sujets similaires à "combobox alimentee dynamiquement"