tableaux ARRAY

Lachmacros

XLDnaute Nouveau
Bonjour Tout le monde,
Je sollicite votre aide pour un problème rencontré dans ma ma macro.
pour être plus claire, j'ai une macro "1" qui sélectionne un répertoire, ensuite elle fait appel à une macro "2" ; qui analyse le répertoire et liste tous les fichiers trouvés dans un tableau array mais
dès qu'elle termine l'exploration, en retournant vers la macro "1" , elle ne garde plus les donnée listée dans l'array.
je veux conserver ces données ou fichiers afin de les utiliser comme donnée d'entrée pour l'appel d'une autre macro.
je ne suis pas arrivé à solutionner ce problème, quelqu'un peut m'aider??
Merci
 

Speel

XLDnaute Occasionnel
Re : tableaux ARRAY

Bonjour Tout le monde,
Je sollicite votre aide pour un problème rencontré dans ma ma macro.
pour être plus claire, j'ai une macro "1" qui sélectionne un répertoire, ensuite elle fait appel à une macro "2" ; qui analyse le répertoire et liste tous les fichiers trouvés dans un tableau array mais
dès qu'elle termine l'exploration, en retournant vers la macro "1" , elle ne garde plus les donnée listée dans l'array.
je veux conserver ces données ou fichiers afin de les utiliser comme donnée d'entrée pour l'appel d'une autre macro.
je ne suis pas arrivé à solutionner ce problème, quelqu'un peut m'aider??
Merci

Bonsoir,
Attention à la portée d'une variable ! déclarée dans en tête de module ou dans une Sub n'a pas la même incidence. Elle peut être déclarée Static ou Global ... tout ça dépend de ce que l'on veut en faire.
Mis à par ça , un tableau de type ARRAY attribué à une variable doit être de type Variant.
Voila des éléments de réflexion.
Bon courage
 
Dernière édition:

Lachmacros

XLDnaute Nouveau
Re : tableaux ARRAY

Bonjour Tout le monde,
Bonsoir,
Attention à la portée d'une variable ! déclarée dans en tête de module ou dans une Sub n'a pas la même incidence. Elle peut être déclarée Static ou Global ... tout ça dépend de ce que l'on veut en faire.
Mis à par ça , une tableau attribuée à une variable doit être de type Variant.
Voila des éléments de réflexion.
Bon courage
Merci Speel de tes conseils, mais le problème n'est pas là
je vous explique ça en détail
en premier lieu je récupère le fichier et j'appel la macro "macro2(Chemin, ma_liste:=Liste_Fichier)" à l'aide de cette macros "1"
Code:
 Sub macro1 ()
     Dim Chemin As String
     Dim GestionFichier As Scripting.FileSystemObject
     Dim Liste_Fichier(1 To 500) As Variant
     Application.ScreenUpdating = False
        Chemin = "le chemin d'un  repertoire"
           Set GestionFichier = Nothing
        If Chemin <> "" Then
            Call macro2(Chemin, ma_liste:=Liste_Fichier)
        End If
End Sub
ainsi la macro2 fais l'analyse et liste les fichiers de format txt dans un array
Code:
Sub macro2(Repertoire As String, ByRef ma_liste() As Variant)

    Dim Fso As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder
    Dim SubFolder As Scripting.Folder
    Dim FileItem As Scripting.file
    Dim I As Long
    Static file_counter As Long
      
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = Fso.GetFolder(Repertoire)
   
        For Each FileItem In SourceFolder.Files
            file_counter = file_counter + 1
              If FileItem Like "*.txt" then 
              ma_liste(file_counter) = FileItem.Name
              End If
              Next FileItem
       
        'Appel récursif pour lister les fichier dans les sous-répertoires ---.
        For Each SubFolder In SourceFolder.SubFolders
            Call Analyse_Repertoire(SubFolder.Path, ma_liste:=ma_liste)
        Next SubFolder

End Sub

dès que l'analyse s'effectue elle retourne vers la macro1, à ce moment là les données dans le array (liste des fichiers txt ) seront perdues.
je ne sais s'il ya une commande qui permet de conserver la liste, j'ai essayé avec Redim et Redim Preserve mais ça ne marche pas.
j veux garder cette liste afin de l'utiliser dans une autre macro comme une donnée d'entrée genre
Code:
Call macro3(ma_liste)


Dépêches-toi, je compte jusqu'à 127 après il sera trop tard
Staple1600, j'espère que ce n'est pas trop tard :cool:
 

Discussions similaires

Réponses
19
Affichages
3 K
G

Statistiques des forums

Discussions
312 493
Messages
2 088 959
Membres
103 990
dernier inscrit
lamiadebz