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 :

Consolidation de Fichier par Macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Finance
    Inscrit en
    Août 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 24
    Par défaut Consolidation de Fichier par Macro
    Bonjour à tous,

    Je fais appel à votre connaissance et votre aide pour m'aider à créer une macro qui me permettra de consolider 10 fichiers présents dans des fichiers différents mais avec des noms similaires finissant par un nom de domaine (Identique à celui du fichier; exemple: SITCOM AOT.xlsx ou SITCOM EMI.xlsx). La liste des fichiers et leurs noms avec leurs emplacements sont connus.

    Les fichiers comprennent environ 500 lignes chacun et sont actualisés très régulièrement par mes collaborateurs (d'où ma volonté d'automatiser la consolidation).

    Mon fichier de consolidation garde les mêmes caractéristiques (Nb colonnes etc) sauf que les 10 premières lignes du fichier conso sont réservés à la somme des colonnes et calcul des écarts etc.

    Avez-vous des pistes de réflexion ou une solution même partielle?

    Merci d'avance
    Cordialement

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Est-ce qu'il es possible de faire une consolidation manuellement ? Essaie avec deux classeurs.

  3. #3
    Membre averti
    Homme Profil pro
    Finance
    Inscrit en
    Août 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 24
    Par défaut
    oui en effet, on peut faire une conso manuellement. Pourquoi cette question?

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Simplement pour savoir si l'on peut automatiser simplement le processus (je parlais d'une consolidation Excel : Données, Consolider). Dans ce cas, fais la même opération en utilisant l'enregistreur de macros. Ensuite, il ne restera plus qu'à transformer la macro obtenue pour boucler sur les dix fichiers. Si tu ne sais pas le faire, mets en pièce jointe deux classeurs ainsi que le classeur résultat; celui-ci devra contenir la liste des fichiers à consolider ainsi que leur dossier respectif.
    PS. Ne laisse pas de données confidentielles dans les fichiers et précise ta version d'Excel.

  5. #5
    Membre averti
    Homme Profil pro
    Finance
    Inscrit en
    Août 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Finance

    Informations forums :
    Inscription : Août 2014
    Messages : 24
    Par défaut Solution au problème
    Tout marche sauf la sélection de la feuille dans le fichier à importer.
    En dessous, la sélection de la feuille la plus à gauche fonctionne. J'ai essayer de supprimer cette partie de code et choisir la feuille de mon choix. Sans succès. Quelqu'un à une idée?

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     'Copie des lignes du fichier SITCOM et collage dans le fichier global après la dernière ligne
        'ActiveWorkbook.Sheets(1).Activate 'feuille la plus à gauche dans le classeur
        ActiveWorkbook.Sheets("FICHIER A MODIFIER").Activate 'feuille nommée FICHIER A MODIFIER dans le classeur
        nb_row = Application.WorksheetFunction.CountA(ActiveSheet.Range("D:D"))
    SOLUTION GLOBALE
    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
    Sub Concat()
     
    ' suppression de résultat précédent
    'Worksheets("Resultat").Cells.Delete
    Worksheets("Resultat").Rows("10:65536").Delete
     
    'Choix du répertoire des scénarios à concaténer
    100: reponse = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx", , "Sélectionner le répertoire en cliquant sur un des fichiers Excel")
     
    If reponse = False Then Exit Sub
     
    chemin = reponse
     
    Call concatener_fichier(chemin)
    reponse1 = MsgBox("Voulez-vous importer un autre fichier?", vbYesNo + vbQuestion, "Arrêt de la procédure")
     
    If reponse1 = vbNo Then End
    GoTo 100
     
    End Sub
    Sub concatener_fichier(nom_fichier)
    'Permet de concaténer dans une même feuille le contenu du plusieurs scénarios
    ' ===============================================================================================
     
    Application.ScreenUpdating = False
     
    'nom du fichier global qui va recevoir la concaténation des fichiers CA
        Fichier_global = ActiveWorkbook.Name
     
    'Activation de la feuille SOURCE pour recevoir les données
        Worksheets("Resultat").Activate
     
    'Nombre de lignes du fichier global
        nb_row_global = Application.WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
     
    'ouverture du fichier
        Workbooks.Open nom_fichier, ReadOnly:=True
        Application.StatusBar = "Lecture en cours : " & ActiveWorkbook.Name
     
     
     'Copie des lignes du fichier SITCOM et collage dans le fichier global après la dernière ligne
        'ActiveWorkbook.Sheets(1).Activate 'feuille la plus à gauche dans le classeur
        ActiveWorkbook.Sheets("FICHIER A MODIFIER").Activate 'feuille nommée FICHIER A MODIFIER dans le classeur
        nb_row = Application.WorksheetFunction.CountA(ActiveSheet.Range("D:D"))
     
        'Copie du format (notamment pour avoir les format % et dates)
        ActiveWorkbook.ActiveSheet.Rows("2:" & nb_row).Copy
        Workbooks(Fichier_global).Worksheets("Resultat").Range("A" & nb_row_global + 2).PasteSpecial Paste:=xlPasteValues
        Workbooks(Fichier_global).Worksheets("Resultat").Range("A" & nb_row_global + 2).PasteSpecial Paste:=xlPasteFormats
     
        Application.CutCopyMode = False
     
     
    'Fermeture du fichier CA
        ActiveWorkbook.Close savechanges:=False
     
    'Réactivation du fichier global
        Workbooks(Fichier_global).Activate
        Range("A1").Select
     
    'Fin
        Application.StatusBar = False
     
     
    End Sub

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Ajoute un userform avec une listbox contenant la liste des feuilles du classeur.

Discussions similaires

  1. [XL-2007] Recherche de fichiers par macro
    Par tit-doudou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/06/2010, 10h24
  2. [Toutes versions] ouvrir un fichier par macro
    Par Le Méthanier dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/05/2010, 14h44
  3. Réponses: 12
    Dernier message: 22/03/2010, 15h07
  4. Fermer fichier par macro sans pop up
    Par blobnet dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/05/2009, 11h40
  5. Fermer sans sauvegarde un fichier par macro
    Par blobnet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2008, 17h59

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