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 SubJ'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+
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 :
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+