Bonsoir
J'ai jamais utilisé ce genre de manip ! récupérer des variables ok , mais pas les tableaux !
Il faudrait que je récupère la liste des fichiers sélectionnés depuis l'usf
là j'ai fic(k) = "vide"
Dans la sub du bouton , j'ai vérifié j'ai bien mes fichiers dans fic(ind)
au retour Ind est toujours bon mais pas fic(k)
info : j'ai mis La listbox est en multisel.
Bonjour.
Vous avec déclaré fic(10) comme variable locale dans la Sub CommandButton1_Click !
Et dans Essai aussi d'ailleurs !
Par contre vous n'avez nulle part d'instruction Redim pour attribuer une dimension à la Public Fic().
Une variable locale peut porter le même nom qu'une variable globale voire Public, mais dans ce cas c'est la locale qui est employée, et comme toutes les variable locales, elle n'est conservée que le temps d'exécution de la procédure.
Re merci
Mais bon , j'ai joins mon fichier .... alors que faut-il faire et ou ?
Je me suis inspiré d'exemple du web pour faire un Redim fic(ind) que j'ai mis
- dans essai : ça ne va pas
- à la fin de sub bouton : ça ne va pas
Je n'ai laissé que Public fic() , j'ai aussi testé en début module global fic()
Alors ?
Au final je ferais à peu près comme ça :
Module1 :
VB:
Option Explicit
Public Chemin As String, TFic() As String
Sub Essai()
Dim N As Long
UserForm1.Show
For N = 1 To UBound(TFic)
MsgBox Chemin & "\" & TFic(N) & " à récupérer", vbInformation, "Essai"
Next N
End Sub
UserForm1 :
VB:
Option Explicit
Private Sub Box1_AfterUpdate()
Dim NMax As Long, NomFic
Chemin = Box1.Value
NomFic = Dir(Chemin & "\*.txt")
Do While Len(NomFic) > 0
NMax = NMax = 1
list_txt.AddItem NomFic
NomFic = Dir()
Loop
End Sub
Private Sub CommandButton1_Click()
Dim L As Long, N As Long
For L = 0 To list_txt.ListCount - 1
If list_txt.Selected(L) Then
N = N + 1: ReDim Preserve TFic(1 To N)
TFic(N) = list_txt.List(L)
End If: Next L
If N = 0 Then ReDim TFic(0 To 0)
Me.Hide
End Sub