Re: Pour Thierry et le Forum /// Option Base 1 pour Tableau Dynamic Array
Bonjour Mytå, @Xtof@, Ti-Juju, Le Forum
Et bien vous vous êtes tous très bien débrouillés dans ce fil, je peux partir en vacances tranquille
Oui, en voyant le fichier d'oririgine c'est vraiment une mini démo qui était buguée en prime et corrigée correctement par Mytå pour le décalage de -1 dû à la construction du Tableau "TabFeuille" qui démarre donc à Zéro. (On aurait pu aussi définir "Option Base 1" en top de module, c'est une question de préférence si on veut travailler en partant de "Un" ou de "Zéro", VBA est vraiment "malléable")
Bien entendu le reste change aussi si on met "Option Base 1", voici le module entier, compte tenu de ce que j'ai pu comprendre de la demande de Ti-Juju, d'ailleurs je ne sais pas ce qu'entends Mytå avec plusieurs Modules dans sa dernière intervention (?)
Enfin en restant dans le même Private Module de ce UserForm1 voici ce que çà pourrait donner aussi en reprenant l'intégralité des codes par petits bouts, on finit par oublier des choses :
Option Explicit
Option Base 1
Dim Feuille As String
Private Sub UserForm_Initialize()
Dim TabFeuille As Variant
Dim Sh As Worksheet
Dim i As Integer
i = 1
ListBox1.Value = ""
ReDim TabFeuille(1 To Sheets.Count)
For Each Sh In ActiveWorkbook.Sheets
TabFeuille(i) = Sh.Name
i = i + 1
Next
ListBox1.List() = TabFeuille
End Sub
Private Sub ListBox1_Click()
Dim Col As Byte
Feuille = ListBox1.Value
With Me.ListBox2
.Clear 'il faut aussi penser à vider cette listBox2, sinon elle cumule les items à chaque click
For Col = 1 To Sheets(Feuille).Range("A1").End(xlToRight).Column
.AddItem Cells(1, Col)
Next
End With
End Sub
Private Sub ListBox2_Click()
MsgBox "Ce n'est qu'une démo, mais on peut retourner la valeur du fournisseur " _
& "Que vous venez de cliquer : " & ListBox2.Value
End Sub
Private Sub CommandButton1_Click()
If Feuille = "" Then 'Inutile de ré-initialisé une seconde fois, si on a pas cliqué sur le ListBox1 c'est vide, et Feuille est "Public" dans CE module
MsgBox "Selectionner une Feuille", vbCritical, "Invalide !"
Exit Sub
Else
Sheets(Feuille).Select
Unload UserForm1
End If
End Sub
Private Sub CommandButton2_Click()
Unload UserForm1
End Sub
Bonne journée
@+Thierry