IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Souci dans macro complexe


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 109
    Par défaut Souci dans macro complexe
    bonjour à tous, j'ai trouvé une macro que je souhaiterai utiliser, malheureusement, je fais face à une ereur que je n'arrive pas a resoudre..
    la macro est une du forum, elle permet de lister les fichier présents dans un repertoire: voici la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Option Explicit
     
    Sub TestListeFichiers()
        Dim Dossier As String
     
        'Définit le répertoire pour débuter la recherche de fichiers.
        '(Attention à ne pas indiquer un répertoire qu contient trop de sous-dossiers ou de
        'fichiers, sinon le temps de traitement va être très long).
     
        UserForm1.Show
     
        'Appelle la procédure de recherche des fichiers
        ListeFichiers Dossier
        'Ajuste la largeur des colonnes A:E en fonction du contenu des cellules.
        Sheets("Fichier à traiter").Columns("A:E").AutoFit
        MsgBox "Analyse fichier terminé"
    End Sub
     
     
     
    Sub ListeFichiers(Repertoire As String)
        '
        'Nécessite d'activer la référence "Microsoft Scripting RunTime"
            'Dans l'éditeur de macros (Alt+F11):
            'Menu Outils
            'Références
            'Cochez la ligne "Microsoft Scripting RunTime".
            'Cliquez sur le bouton OK pour valider.
     
        Dim Fso As Scripting.FileSystemObject
        Dim SourceFolder As Scripting.Folder
        Dim SubFolder As Scripting.Folder
        Dim FileItem As Scripting.File
        Dim i As Long
     
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Set SourceFolder = Fso.GetFolder(Repertoire)
     
        'Récupère le numéro de la dernière ligne vide dans la colonne A.
        i = Range("A65536").End(xlUp).Row + 1
     
        'Boucle sur tous les fichiers du répertoire
        For Each FileItem In SourceFolder.Files
            'Inscrit le nom du fichier dans la cellule
            Sheets("Fichier à traiter").Cells(i, 1) = FileItem.Name
            'Ajoute un lien hypertexte vers le fichier
            ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), _
                Address:=FileItem.ParentFolder & "\" & FileItem.Name
            'Indique la date de création
            Sheets("Fichier à traiter").Cells(i, 2) = FileItem.DateCreated
            'Indique la date de dernier acces
            Sheets("Fichier à traiter").Cells(i, 3) = FileItem.DateLastAccessed
            'Indique la date de dernière modification
            Sheets("Fichier à traiter").Cells(i, 4) = FileItem.DateLastModified
            'Nom du répertoire
            Sheets("Fichier à traiter").Cells(i, 5) = FileItem.ParentFolder
     
            i = i + 1
        Next FileItem
     
     
        '--- Appel récursif pour lister les fichier dans les sous-répertoires ---.
        For Each SubFolder In SourceFolder.subfolders
            ListeFichiers SubFolder.Path
        Next SubFolder
     
    End Sub
    l'erreur est une erreur 5 argument ou appel de procédure incorrect, et elle me spécifie la ligne : Set SourceFolder = Fso.GetFolder(Repertoire)

    en effet, en essayant de déchiffrer la macro, il apparait que repertoire est definit comme variable string, mais n'est pas initialisé,
    j'ai essayé de remplacer repertoire par mon dossier à scanner, mais la macro plante instantanéement...

    merci e votre aide

  2. #2
    Membre Expert Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Par défaut
    c'est la variable dossier de la première procédure qu'il faut que tu initialise (ce qui était fait dans le userForm dans le code que tu as copié.)

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 109
    Par défaut
    en fait la userform c'est moi qui l'ai rajouté pour justement initialisé la variable dossier, mais malgrès sa, sa ne fonctionne pas ...
    Par contre ce que j'ai est-il bien valable? :

    j'ai mis une userform avec une textbox, et je recupere la valeur de la textbox,

    avec dossier=textbox1.value

    sachant que la valeur rentré dans le textbox1 est un chemin d'accès ( avec: / etc..)

    merci

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Novembre 2011
    Messages : 109
    Par défaut
    probleme resolu, merci de votre aide, en fait la variable dossier etait déclaré dans la macro en Dim, et n'etait pas déclaré dans la userform, la ou j'ai ecrit le code : dossier : textbox1.value


    Voila merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] soucis avec macro insertion photos pour l'enregistrer dans le fichier
    Par fabrice5962 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 23/06/2012, 17h14
  2. Petit souci dans une macro - VBA
    Par chpierro62 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/01/2012, 16h43
  3. [XL-2007] 2 soucis dans mes macros
    Par pachi44 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/05/2011, 16h39
  4. [vb excel] différences bizarre dans macro excel
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/10/2005, 12h44
  5. [VBA-E] Petit souci commentaire macro
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/09/2005, 17h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo