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 :

Macro pour Regrouper des feuilles de plusieurs classeurs dans un seul


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Macro pour Regrouper des feuilles de plusieurs classeurs dans un seul
    Bonsoir,

    J'ai un peu de mal à résoudre un problème :

    En fait je dispose de plusieurs classeurs Excel de type "A" et "B". Ces deux classeurs regroupent plusieurs feuilles portant les mêmes noms, c'est à dire que A et B contiennent des feuilles semblables, seules les données sur ces feuilles changent.

    1) Je cherche maintenant à faire une Macro qui regroupe les feuilles de "A" et "B" portant les mêmes noms dans un seul classeur, et donc créer autant de classeurs que de noms de feuilles existants => 1 classeur par nom; la 1ère feuille de ce classeur contiendra celle issue de A, et la 2ème celle issue de B.

    J'ai essayé d'appliquer la Macro trouvée ici : https://msdn.microsoft.com/fr-fr/lib...ffice.14).aspx , mais je bloque un peu dans la partie de la boucle pour comparer les noms des Worksheets:

    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
     
    Sub extractiondonnees()
     
       Dim sSource As String
       Dim ws As Worksheet
       Dim wb As Workbook
       Dim SummarySheet As Worksheet
       Dim FolderPath As String
       Dim SelectedFiles() As Variant
       Dim NRow As Long
       Dim FileName As String
       Dim NFile As Long
       Dim WorkBk As Workbook
       Dim SourceRange As Range
       Dim DestRange As Range
       Dim LastRow As Long
     
     
       Set SummarySheet = Workbooks.Add(xlWBATWorksheet).Worksheets(1)
     
       SelectedFiles = Application.GetOpenFilename(, , "Fichiers Sources", , True)
     
       If SelectedFiles = "False" Then
          Exit Sub
       End If
     
       NRow = 1
     
       For NFile = LBound(SelectedFiles) To UBound(SelectedFiles)
     
            FileName = SelectedFiles(NFile)
     
     
            Set WorkBk = Workbooks.Open(FileName)
     
     
            SummarySheet.Range("A" & NRow).Value = FileName
     
            LastRow = WorkBk.Worksheets(1).Cells.Find(What:="*", _
                     After:=WorkBk.Worksheets(1).Cells.Range("A1"), _
                     SearchDirection:=xlPrevious, _
                     LookIn:=xlFormulas, _
                     SearchOrder:=xlByRows).Row
            Set SourceRange = WorkBk.Worksheets(1).Range("A1:S" & LastRow)
     
            Set DestRange = SummarySheet.Range("B" & NRow)
            Set DestRange = DestRange.Resize(SourceRange.Rows.Count, _
               SourceRange.Columns.Count)
     
     
            DestRange.Value = SourceRange.Value
     
            NRow = NRow + DestRange.Rows.Count
     
            WorkBk.Close savechanges:=False
        Next NFile
     
        SummarySheet.Columns.AutoFit
     
    End Sub
    Je ne sais pas comment parcourir les deux Workbooks en même temps :/

    2) Si par exemple je dois copier les données présentes dans ces feuilles en les comparant à des valeurs précises (des normes), comment pourrais-je y procéder ?
    Les valeurs respectant les normes se copieront normalement, et les données "erronées" seront aussi copiées mais leurs cellules de destination seront de couleur rouge.

    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 876
    Points : 28 821
    Points
    28 821
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Les fichiers à télécharger dès l'ouverture d'une discussion ne sont pas les bienvenus.
    La procédure que tu trouveras dans cette contribution nommée Regrouper plusieurs feuilles sur une autre. (2003-2010) devrait répondre à ton attente.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2016
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci pour votre réponse rapide Philippe. Je vais retirer les pièces jointes.
    A propos de la procédure que vous avez créé, est-il possible de l'affecter à un bouton ? Désolé je ne me suis pas encore familiarisé avec les fonctions :/

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 876
    Points : 28 821
    Points
    28 821
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    A propos de la procédure que vous avez créé, est-il possible de l'affecter à un bouton ?
    Voir le classeur à télécharger qui se trouve dans la contribution.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [XL-2010] regrouper les macro de plusieurs classeurs dans un seul classeur
    Par jinane13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/03/2013, 11h29
  2. Réponses: 0
    Dernier message: 22/03/2013, 13h21
  3. Réponses: 1
    Dernier message: 25/12/2012, 21h04
  4. [Toutes versions] Macro regroupant plusieurs classeurs dans une seule feuille
    Par lisandjo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/04/2012, 07h52
  5. [Macro] macro pour regrouper des tables
    Par melomanu dans le forum Macro
    Réponses: 5
    Dernier message: 16/10/2008, 17h05

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