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 :

VBA Excel: copier et coller à partir de plusieurs fichiers Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut VBA Excel: copier et coller à partir de plusieurs fichiers Excel
    Bonjour,

    Je dispose de plusieurs dossiers et sous dossiers qui contiennent plusieurs fichiers Excels ( exemple c:\Desktop\2015\01\fichier1). Chaque sous dossier contient plusieurs fichiers Excel. Je veux creer une macro qui ouvre les fichiers Excel 1 par 1 et copie toutes les lignes et les collent toutes dans un ordre decroissant dans une nouvelle feuille excel. Y'a t-il un moyen Pour fair ca svp?

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Bonjour,

    Ça te prend une Function récursive pour lire tous les répertoires et sous-répertoires.
    Voici un exemple
    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
    Sub SearchFiles()
        ImportFiles "c:\Desktop\2015\"   'Changer au besoin
    End Sub
     
    Sub ImportFiles(varPath As Variant)
        Dim varFile As Variant
        Dim objColl As Collection
     
        On Error GoTo Erreur
     
        Set objColl = New Collection
     
        If Right(varPath, 1) <> "\" Then varPath = varPath & "\"
     
        varFile = Dir(varPath, vbDirectory + vbArchive)
        Do While varFile <> ""
            'Stocke le répertoire
            If GetAttr(varPath & varFile) = vbDirectory Then
                If Left(varFile, 1) <> "." Then
                    objColl.Add varPath & varFile
                End If
     
            'Travailler avec le fichier
            ElseIf LCase(Right(varFile, 3)) = "xls" Or LCase(Right(varFile, 4)) = "xlsx" Then
                'Ouvrir le fichier, le copier et le fermer
                Debug.Print varPath & varFile  'inscrit, pour fins de test, le nom du fichier dans la fenêtre Exécution (Ctrl-G)
            End If
            varFile = Dir
        Loop
     
        For Each varFile In objColl
            ImportFiles varFile
        Next
     
        Set objColl = Nothing
     
        Exit Sub
     
    Erreur:
        MsgBox Err.Number & vbCrLf & Err.Description
    End Sub
    À partir de là, il suffit de trouver la première ligne vide et de copier les données du fichier trouvé.
    À la fin, il te restera à trier dans l'ordre qui te convient.

  3. #3
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Salut, ceci pourrait t'aider ?

  4. #4
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Bonjour tout le monde,

    Merci pour votre réponse.
    Mr kiki, le lien que vous m'avez envoyé est inactif.
    Mr parmi ,j'ai mis votre code dans un nouveau module d'une nouvelle feuille Excel mais ca n'a pas marché.

  5. #5
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Salut, faux, le lien est actif, et permet après login de télécharger un fichier Fusion.xlsb, je viens de tester à l'instant

  6. #6
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    j'arrive pas à l'ouvrir peut être c'est dû à l'extension du fichier. pouvez -vous svp m'envoyer un format word ou EXCEL ?.

    Merci d'avance.

  7. #7
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Salut, si tu as Excel 2003 il existe un Pack de compatibilité Microsoft Office pour les formats de fichier Word, Excel et PowerPoint qui te permettra de l'ouvrir et de le sauver en xls.

  8. #8
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    toujours rien ne marche malgré le téléchargement du pack de comptabilité

  9. #9
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 272
    Points
    11 272
    Par défaut
    Re, une fois de plus faux, je viens de faire le test de sauvegarde en xls puis de lancer cette version sans problèmes.

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Citation Envoyé par LANGAZOU Voir le message
    Bonjour tout le monde,

    Merci pour votre réponse.
    Mr kiki, le lien que vous m'avez envoyé est inactif.
    Mr parmi ,j'ai mis votre code dans un nouveau module d'une nouvelle feuille Excel mais ca n'a pas marché.
    Qu'est-ce qui n'a pas marché ?
    Est-ce que tu comprends le code écrit dans ma macro ?

  11. #11
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    je suis débutant en VBA, j'ai pas bien compri le code désolé.

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Tu dois démarrer avec la macro SearchFiles en t'assurant que le chemin est valide.
    La macro ImportFiles va lire chaque répertoire et les classer dans une collection et tourner en boucle pour lire chaque sous-répertoire et chacun de ses fichiers.
    J'ai mis les extensions XLS et XSLX, mais on peut ajouter XLSM et autres au besoin...

    Si ça ne fonctionne pas, tu dois avoir un message d'erreur.
    Dis-nous lequel (description de l'erreur)

    Si ça fonctionne tu trouveras les noms des répertoires et fichiers dans la fenêtre Exécution que tu trouveras en tapant Ctrl-G dans l'éditeur VBA

    Donc, si ça fonctionne, tu remplaces la ligne Debug.Print par ce que tu veux faire: copier/coller les résultats trouvés, ce qui pourrait faire partie d'une autre discussion éventuellement...

  13. #13
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Et le fichier que tu peux trouver dans le lien de Kiki29 me semble on ne peut plus parfait pour faire ce que tu veux.
    Je ne l'ai pas testé, mais à première vue, tu ne peux demander mieux...

  14. #14
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    oui je sais mais le fichier n'a pas marché chez moi malgré plusieurs tentatives. si tu as la possibilité de me l'envoyer en format DOCX ou XLSX ca sera parfait.

    Merci beaucoup.

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Si tu parles du fichier de kiki29, ça risque d'être compliqué. Il y a un 2 Userforms avec du code (avec des contrôles nommés de façon particulière), 4 modules,...

  16. #16
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    je ne sais pas pk ca fonctionne pas à mon niveau malgré plusieurs manipulations !

  17. #17
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Qu'est-ce qui ne fonctionne pas ?
    Le téléchargement ou l'application comme telle ?
    Si c'est l'application, y a-t-il un message d'erreur ? si oui lequel ?

  18. #18
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Bonsoir,

    le code a bien marché sur un autre PC c'est exactement ce que je cherchais. juste une dernière question si vous me le permettez :
    qu'est ce que je dois modifier dans le code de kiki29 lorsque je veux copier uniquement des cellules précises (pas une ligne entière) de chaque fichier et les coller successivement ?

    Merci pour votre suivi.

  19. #19
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Points : 5 901
    Points
    5 901
    Par défaut
    Il faudrait connaître la structure de tes fichiers, quelles cellules tu veux copier.

  20. #20
    Membre du Club
    Homme Profil pro
    Architecte technique
    Inscrit en
    Janvier 2015
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 197
    Points : 53
    Points
    53
    Par défaut
    Bonjour cher ''parmi'',

    La structure de mes fichiers EXCEL est la même .chaque classeur contient plusieurs feuilles, je veux extraire de ces dernières les éléments suivants :

    1) récupération des titres : Date(sheets(1).cells(1,1)), Délai(sheets(1).cells(1,2)),Montant (sheets(2).cells(3,4)), Échéance (sheets(3).cells(10,3))
    - Le collage des titres sur la nouvelle feuille se fera horizontalement sur la deuxième Ligne donc on aboutira à 4 colonnes.

    2) récupération des valeurs:

    - Date existe dans (sheets(1).cells(2,1))
    pour chaque date récupérée de chaque classeur, le collage est vertical dans la première colonne "Date" à partir de la cellule (3,1) ...(i,1)

    - Délai existe dans (sheets(1).cells(2,2))
    pour chaque délai récupéré le collage est vertical dans la deuxième colonne "Délai" à partir de la cellule (3,2) ...(i,2)

    - Montant existe dans (sheets(2).cells(4,4))
    le collage des montants est vertical dans la troisième colonne "Montant" à partir de la cellule (3,3) ...(i,3)

    - Échéance existe dans (sheets(3).cells(11,3))
    le collage est vertical dans la 4ème colonne "Échéance" à partir de la cellule (3,4) ...(i,4)

    si vous pouvez m'indiquer la démarche uniquement pour une ou deux lignes(colonnes) et je compléterai le reste.

    Merci pour votre précieuse aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2010] macro de récuperation de données à partir de plusieurs fichiers excel
    Par julien1603 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/05/2015, 02h37
  2. Réponses: 3
    Dernier message: 02/08/2009, 11h31
  3. Réponses: 1
    Dernier message: 08/10/2008, 15h30
  4. [VBA-E]copier une cellule d'un autre fichier excel?
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2007, 09h29

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