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 :

Copie de TOUS les fichiers d'extensions .xls [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Par défaut Copie de TOUS les fichiers d'extensions .xls
    Bonjour à tous,

    Déjà je m'excuse d'avance mais je suis débutante en VBA.
    Je vais essayer d'expliquer mon problème, je voudrais pouvoir copier tous les fichiers d'extension .xls dont la date de modification est du 26/03/2009 puis le coller dans le dossier de l'année de la modification, c'est a dire ici 2009.

    Voici mon code,

    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
    Sub test_essai_macro()
     
              Lannee = (Year(Now))
              DateF = FileDateTime("F:\EXCEL\Bilans classeurs\ & .xls")
              DateR = "26/03/2009"
               If (InStr(DateF, DateR)) > 0 Then
     
            'Sub copiercoller()
     
                       FileCopy "F:\EXCEL\Bilans classeurs\&.xls", "F:\EXCEL\Bilans classeurs\2009\&.xls"
                                  Else
     
               End If
     
    End Sub
    Merci beaucoup à tous ceux qui vont réfléchir sur mon code
    Bonne journée !

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub SearchFiles()
        Dim DateMod As String
        Dim fs As Object, fil As Object
     
        Set fs = CreateObject("Scripting.FilesystemObject")
        DateMod = "26/03/2009"
        For Each fil In fs.GetFolder("F:\EXCEL\Bilans classeurs\").Files
            If Left(fil.DateLastModified, 10) = DateMod Then
                FileCopy "F:\EXCEL\Bilans classeurs\" & fil.Name", "F:\EXCEL\Bilans classeurs\2009\" & fil.Name"
            End If
        Next
    End Sub
    Ca devrait marcher.

    A+

  3. #3
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Par défaut
    Salut DeaD78,

    ça ne marche pas, un problème au niveau de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileCopy "F:\EXCEL\Bilans classeurs\" & fil.Name", "F:\EXCEL\Bilans classeurs\2009\" & fil.Name"
    Par contre je ne comprends pas, le fil.Name correspond à quoi ? A tous les fichiers avec l'extension .xls ?

    Encore désolée ... :/ Mais j'essaie de comprendre le code pour essayer de trouver l'erreur mais sans succès !!

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Je me suis trompé en recopiant la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileCopy "F:\EXCEL\Bilans classeurs\" & fil.Name, "F:\EXCEL\Bilans classeurs\2009\" & fil.Name
    Là ça marchera, j'ai testé chez moi.

    fil.Name correspond juste au nom de ton fichier ayant la bonne date de modification. Vu que tu es dans une boucle vu qu'il peut y en avoir plusieurs, cela correspond au nom des fichiers l'un après l'autre.

  5. #5
    Membre du Club
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 9
    Par défaut
    Super ça marche parfaitement. Merci beaucoup !!

    Seulement j'abuse encore de votre gentille et j'en suis désolée ! Mais en faite ces fichiers devront être coller dans les dossiers non créer en fonction du mois et de l'année de la date de modification du fichier!

    Exemple:
    J'ai 3 fichiers .xls dont la date de modification est du 14-06-2010, alors il faudrait les copier dans le dossier "Juin 2010" que l'ont devra créer

    J'ai essayer ceci comme code, mais apparament ce n'est pas ça !!

    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
     Sub rangement_dossier()
     
        Dim DateMod As String
        Dim fs As Object, fil As Object
     
        Lannee = (Year(Now))
        Lemois = (Month(Now))
     
        Set fs = CreateObject("Scripting.FilesystemObject")
        DateMod = "14/" & Lemois & Lannee
        For Each fil In fs.GetFolder("D:\EXCEL\Bilans\classeur").Files
            If Left(fil.DateLastModified, 10) = DateMod Then
                FileCopy "D:\EXCEL\Bilans\classeur\" & fil.Name, "D:\EXCEL\Bilans\classeur\&Lemois & Lannee & " \ " & fil.Name"
            End If
        Next
    End Sub
    Encore désolée de demander encore et encore mais j'essaie de progresser en VBA !!
    Merci beaucoup d'avance !!!

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    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
    Sub Test()
        Dim DateMod As String
        Dim fs As Object, fil As Object
        Dim Year As String
        Dim Month As String
        Dim Chemin$
     
        Set fs = CreateObject("Scripting.FilesystemObject")
        DateMod = "26/03/2009"
     
        Chemin = "F:\EXCEL\Bilans classeurs\"
     
        For Each fil In fs.GetFolder(Chemin).Files
            If Left(fil.DateLastModified, 10) = DateMod Then
                Year = Mid(fil.DateLastModified, 7, 4)
                Month = Mid(fil.DateLastModified, 4, 2)
                If Month = "01" Then Month = "Janvier"
                End If
                If Month = "02" Then Month = "Février"
                End If
                If Month = "03" Then Month = "Mars"
                End If
                'Etc
                MkDir (Chemin & Month & " " & Year)
                FileCopy "F:\EXCEL\Bilans classeurs\" & fil.Name, "F:\EXCEL\Bilans classeurs\" & Month & " " & Year & "\" & fil.Name
            End If
        Next
    End Sub
    Cela fait exactement ce que tu souhaites. Finis de compléter le 'Etc

    Bonne soirée.

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

Discussions similaires

  1. [Batch] Supprimer tous les fichiers sauf extensions
    Par freedom144 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 13/04/2013, 22h20
  2. Copie de tous les fichiers datant de plus de X jours
    Par chouchouilloux dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 10/06/2010, 17h25
  3. copier tous les fichiers sans extension dans un meme repertoire
    Par soussou80 dans le forum Administration système
    Réponses: 1
    Dernier message: 26/03/2009, 13h02
  4. Macro excel qui ferme tous les fichiers .xls
    Par max2245 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/01/2006, 20h21

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