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 :

Compiler plusieurs fichiers dans un seul [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut Compiler plusieurs fichiers dans un seul
    Bonjour le Forum,

    Je fais appel à votre aide car j'ai un projet sur lequel je bute.

    - J'ai X fichiers avec plusieurs onglets qui ont la même structure. J'ai écrit la macro "Consolidation" qui permet de les transformer et copier les éléments de chaque onglet dans un onglet de" Consolidation" pour les exploiter en format TCD excel.

    - J'ai un autre fichier de Synthèse dans lequel je voudrais lancer une macro "Import_Datas" qui boucle sur chaque fichier, alimente l'onglet Consolidation et copie colle les valeurs dans l'onglet "Synthèse" les unes à la suite des autres.

    J'ai trouvé le code suivant pour ouvrir les fichiers les uns à la suite des autres

    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
    Sub Import_Datas()
     
    Dim myPath As String, myFile As String
    myPath = "Chemin"
    myFile = Dir(myPath & "\*.*")
     
    Do While myFile <> "Synthèse.xlsm"
     
    Call ClasseurOuvert(myPath & "\" & myFile)
     
        With Workbooks(myFile)
     
    'Call Test_Consolidation_onglets2
     
    'Application.Run ("'myFile'!ThisWorkbook.Test_Consolidation_Onglets")
     
    .Close
        End With
        myFile = Dir()
    Loop
     
    End Sub
     
    Function ClasseurOuvert(NomFich)
    On Error Resume Next
        Workbooks(NomFich).Activate
        If Err <> 0 Then Workbooks.Open Filename:=NomFich
    On Error GoTo 0
    End Function
    Au lancement à partir du fichier Synthèse:

    Le 1er fichier s'ouvre bien mais au moment du lancement de la macro "Consolidation" qui est censée transformer et copier les éléments dans l'onglet "Consolidation' j'ai l'erreur suivante

    - avec 'Call Test_Consolidation_onglets2" macro qui se trouve dans mon fichier Synthèse => Indice n'appartient pas à la sélection
    - avec ''Application.Run ("'myFile'!ThisWorkbook.Test_Consolidation_Onglets") macro qui se trouve dans mes X fichiers => erreur 400


    Je vous mets ci-dessous les premières lignes de la macro qui est censée se lancer. Peut être qu'il manque un liant.

    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
    Sub Test_Consolidation_onglets2()
     
          Dim Fe As Worksheet
          Dim DrLig As Long
     
     
        Sheets("Consolidation").Select
        Cells.Select
        Selection.ClearContents
     
        'défintion des entêtes de colonnes onglet consolidation
     
        Range("A1").Select
        ActiveCell.FormulaR1C1 = "XXXX"
        Range("B1").Select
     
     
       For Each Fe In Worksheets
     
        If Fe.Name <> "Consolidation" Then

    Est-ce que la macro Consolidation doit être dans mon fichier synthèse ou dans les X fichiers?

    Je ne sais pas pourquoi cela plante. Merci pour votre aide.

    Eric

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut Suite Investigations
    Si je mets le vrai nom de mon fichier la macro de consolidation des onglets se lance bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Application.Run "Compte.xlsm!Onglets"
    si je mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run "myFile!Onglets"
    cela ne fonctionne plus

    alors que j'ai vérifié avec MsgBox que Une idée svp?

  3. #3
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Syntax error ‼
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Const FICHIER = "D:\Tests\Compte.xlsm"
     
    Sub Demo4Noob1()
        MsgBox "TEXT;FICHIER"
    End Sub
     
    Sub Demo4Noob2()
        MsgBox "TEXT;" & FICHIER
    End Sub
    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    Merci pour l'info sur la façon de générer la MsgBox.

    Mon pb est que je ne trouve pas comment lancer une macro à l'intérieur d'une autre avec des noms de fichiers variables.

    Alors si il y a un expert qui me peut me dépanner ce serait super.

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Et pourtant regarder attentivement mon code fait comprendre la différence entre du texte et une variable ‼

    C'est exactement la réponse à ton problème …   Tout ce qui est entre guillemets n'est pas une variable ‼

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2016
    Messages : 4
    Par défaut
    je comprends.

    Une solution trouvée par une de mes connaissances pour faire le lien entre les 2 macro :

    pour lancer la macro à partir du fichier Synthèse , il manquait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         Call Test_Consolidation_onglets2(Workbooks(myFile))
    dans la macro source

    et dans celle qui est appelée, il manquait de bien définir sur quel fichier va s'appliquer les étapes de consolidation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test_Consolidation_onglets2(W1 As Workbook)
     
          Dim Fe As Worksheet
          Dim DrLig As Long
     
        W1.Sheets("Consolidation").Select
    le fait de définir W1 devant Sheets permet de régler le problème.

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

Discussions similaires

  1. Mettre plusieurs fichiers dans un seul fichier ou une table…
    Par wahab2052 dans le forum Développement de jobs
    Réponses: 7
    Dernier message: 21/09/2009, 20h41
  2. rassembler plusieurs fichiers dans un seul fichier
    Par emelfr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/02/2009, 14h57
  3. [gzip] ecrire plusieurs fichier dans un seul .gz
    Par IP-Fix dans le forum Général Python
    Réponses: 1
    Dernier message: 14/05/2008, 19h49
  4. stocker/archiver plusieurs fichiers dans un seul fichier
    Par tatoo59 dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 03/06/2007, 18h57
  5. comment zipper plusieurs fichiers dans un seul
    Par diamonds dans le forum Linux
    Réponses: 4
    Dernier message: 22/03/2007, 20h15

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