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 :

Copier fichiers excel vers un autre fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Par défaut Copier fichiers excel vers un autre fichier
    Bonjour,

    Voilà, je suis novice en programmation vba mais j'aimerai copier tout les fichiers excel d'un repertoire vers un seul fichier excel.

    Est-ce possible? Tout les fichiers excel ont le même format.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Bonjour,

    Je n'ai pas regardé dans le détail mais ce sujet trouvé dans le Forum Contribuez devrait t'aider :
    Copie des feuilles de tous les classeurs d'un répertoire dans 1 seul classeur
    (en tout cas le titre ressemble beaucoup à ta problématique )

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Par défaut
    Alors, j'ai tester le code mais le souci c'est qu'il me copie toute les feuilles de données d'un classeur sur plusieurs feuille de données du fichier que je veux implémenter.

    Par exemple sur feuille.xls, j'ai feuille1, feuille2 et feuille3
    Et lors de l'implémentation du fichier feuilleImplementer.xls, j'ai feuille1, feuille2, feuille3, feuille1(1), feuille2(1), feuille3(1).

    Alors que moi j'aimerai que dans la feuille1 de feuilleImplementer.xls, j'ai par exemple la cellule A1 de la feuille 1 de feuille.xls dans la cellule A2.

    J'espére avoir été clair.

    Merci d'avance.

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Bien personnellement, non je ne comprends pas bien ce que tu veux

    Sinon il y a cette autre contribution :
    Copie des données de ttes feuilles de ts classeurs d'1 répertoire ds 1 feuille

    Après si ces contributions ne font pas exactement ce que tu souhaites tu peux toujours les étudier et essayer de les modifier pour qu'elles fassent ce que tu veux.

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2004
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 277
    Par défaut
    Bonjour,

    Après plusieurs rechercher, j'ai reussi à faire ce que je voulais. Voici le 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
    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
     
    Sub Appel()
    Dim FL1 As Worksheet, Chemin As String
        Application.ScreenUpdating = False
            'Définir le répertoire
            Chemin = "C:\Program Files\EasyPHP 2.0b1\www\dossier\fichierExcel"
            'Crée l'instance de la feuille récapitulative (FL1)
            Set FL1 = ThisWorkbook.Worksheets("Feuil1")
            Ouvrir Chemin, FL1
        Application.ScreenUpdating = True
    End Sub
     
    Sub Ouvrir(Chemin As String, FL1 As Worksheet)
    Dim NomFich As String
        NomFich = Dir(Chemin & "\")
        If NomFich = "" Then MsgBox "Aucun fichier n'a été trouvé."
        Do While NomFich <> ""
            Workbooks.Open Chemin & "\" & NomFich
            DoEvents
            NomFich = ActiveWorkbook.Name
            Copie NomFich, FL1
            NomFich = Dir
        Loop
    End Sub
     
    Sub Copie(NomFich As String, FL1 As Worksheet)
         For Each LaFeuille In Workbooks(NomFich).Worksheets
            'pour copier le contenu de chaque feuille à la suite
            derlig = FL1.Cells(Rows.Count, 1).End(xlUp).Row + 1
            Dim i As Integer
            i = 12
            Dim j As Integer
            j = 1
     
            Do While LaFeuille.Cells(i, 1) <> ""
                LaFeuille.Range("C8").Copy
                FL1.Range("A" & derlig & ":A" & derlig + j).PasteSpecial Paste:=xlValues
                LaFeuille.Range("E5").Copy
                FL1.Range("B" & derlig & ":B" & derlig + j).PasteSpecial Paste:=xlValues
                LaFeuille.Range("A11:A" & i).Copy
                FL1.Range("C" & derlig).PasteSpecial Paste:=xlValues
                LaFeuille.Range("C11:C" & i).Copy
                FL1.Range("D" & derlig).PasteSpecial Paste:=xlValues
                LaFeuille.Range("D11:D" & i).Copy
                FL1.Range("E" & derlig).PasteSpecial Paste:=xlValues
                LaFeuille.Range("E11:E" & i).Copy
                FL1.Range("F" & derlig).PasteSpecial Paste:=xlValues
                i = i + 1
                j = j + 1
     
            Loop
                DoEvents
         Next
         ActiveWorkbook.Close False
         DoEvents
    End Sub
    Le seul souci c'est que j'aimerai que la macro s'execute lorsqu'on ouvre le fichier excel et quand elle s'execute que n'ouvre pas mais autre fichier.

    Merci d'avance.

  6. #6
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Pour que la macro s'exécute à l'ouverture du fichier il faut regarder l'évènement Workbook_Open (Voir les évènements du classeur, II-12. Workbook_Open ).
    Pour lire sans ouvrir les fichiers (si j'ai bien compris car ta phrase est étrange ) : Lire et écrire dans les classeurs Excel fermés

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/05/2015, 16h25
  2. [XL-2007] Envoyer des données d'un fichier excel vers un autre fichier
    Par Langelusyfaire dans le forum Excel
    Réponses: 24
    Dernier message: 22/04/2014, 11h19
  3. Réponses: 0
    Dernier message: 30/12/2013, 10h32
  4. [XL-2007] Macro: comment importer des valeurs de fichiers Excel vers un autre fichier Excel?
    Par jerdel dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/03/2012, 16h23
  5. copier une feuille excel vers un autre fichier excel en access VBA
    Par acbdev dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/03/2008, 09h32

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