Boucle sur plusieurs onglets

Bonjour,

Je reviens vers vous pour un problème de boucle.

12 fichiers avec 6 onglets identiques et 1 fichier de consolidation, noms d'onglets identiques.

Besoin : Copier/Coller des lignes, 31 au total

Code qui fonctionne pour un seul onglet :

Sub CONSOLIDATION()

Application.ScreenUpdating = False

Sheets("Total Magasin").Select

Range("A1:R500").ClearContents

Dim Chemin As String

Dim Fichier As String

Chemin = "C:\Users\Adeli\OneDrive\Bureau\EXCEL Cyril\Test CONSOLIDATION\"

Fichier = Dir(Chemin & "*.xlsm*")

Do While Len(Fichier) > 0

Workbooks.Open Chemin & Fichier

Sheets("Feuil1").Activate

Range("A7:R37").Select

Selection.Copy

Windows("Consolidation CAHIER.xls").Activate

Sheets("Total Magasin").Select

Dligne = Range("A500").End(xlUp).Row

DDligne = Dligne + 1

Range("A" & DDligne).Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Windows(Fichier).Close

Fichier = Dir

Loop

End Sub

Je n'arrive pas à faire de boucle pour réaliser le copier/coller des 6 onglets de chaque classeur en une seul commande.

J'ai du créer des macros indépendantes en modifiant le nom des onglets...un peu long.

Quelqu'un pourrait-il m'aider ?

Je vous remercie d'avance. Bien Cordialement.

Bonjour

For each Sh in ActiveWorkbook.Worksheets

Mais

d'une part inutile de faire des select et des activate : on peut copier coller sans cela

d'autre part il faudrait préciser si tu colles toutes les feuilles dans la feuille Total Magasin du second classeur ou pas...

bonjour

salut Chris au passage

sur papier on avait une feuille par magasin ou fournisseur ou autre

sur informatique on n'a qu'une feuille pour tout le monde ! c'est la feuille que tu nommes Consolidation

tu fais tes saisies directement dedans *

du coup tu as beaucoup moins besoin de longs code ou de formules à pleurer, et donc tu es 1000 fois plus fiable. tu avancees plus vite, tu crées des analyses de ventes ou achats d'un clic, des graphiques instantanés

les multi-onglets, c'est la galère !

* si tu as 6 collaborateurs avec chacun leur fichier de saisie, alors tu consolides avec ton menu Données Obtenir. Tu connais ce menu Données toi qui gères des données ?

Bonjour,

Mon fichier de consolidation se présente de la même manière, 6 onglets identiques.

Ex :

12 fichiers avec onglets CA, Secteur 1, ....., Secteur 6

1 fichier de consolidation avec onglets CA, Secteur 1, ....., Secteur 6.

Voilà et merci d'avance.

CDLT.

re

eh bien je te conseille de supprimer les 12 fichiers avec tous leurs onglets, pour ne garder qu'une feuille !

elle est donc semblable à ton Récap

elle va te durer 10 ou 20 ans !

sa longueur dans 10 ans ? on s'en moque bien.

on saisit directement dedans

simple, facile à comprendre, facile et fiable à modifier si besoin

TOUS les traitements ultérieurs (les analyses, les budgets, les indicateurs... ) sont automatiques, sans besoin de VBA ni de formules non plus

note répétée : si tu as 12 collaborateurs avec chacun leur fichier de saisie, alors tu consolides avec ton menu Données Obtenir. Tu connais ce menu Données toi qui gères des données ?

Merci du tuyau mais je dois suivre et consolider ces tableaux et les copier/coller manuels sont long.

Le traitement avec une bonne boucle serait plus rapide.

Cordialement.

RE

Donc ton code ne représente pas la réalité !

Tu as Sheets("Feuil1") d'un côté et Sheets("Total Magasin") de l'autre mais tu dis copier CA, Secteur 1, ....., Secteur 6 dans le classeur contenant les même feuilles

Bonjour,

Dsl c’est pour donner un exemple.

Je mettrai les fichiers en lien demain, ce sera plus clair.

En tous cas merci et prendre du m’aider..😜

Cdlt.

Bonsoir,

Voici le modèle de Fichier, un fichier par mois.

Le fichier de Consolidation est identique. Consolider toutes les lignes pour chaque onglet.

Je n'arrive pas à boucler sur chaque onglet pour copier et coller sur les onglets correspondant du classeur consolidation.

Je recopie la commande pour chaque onglet, 7 macros...un peu long.

Merci d'avance.

Bien Cordialement.

Bonjour

Il faut mettre des titres aux colonnes A et B sinon difficile de trouver la 1ère ligne à remplir surtout en début d'année si on veut un code générique

A mettre dans le classeur de consolidation

Sub CONSOLIDATION()

Application.ScreenUpdating = False

Dim Chemin As String
Dim Fichier As String
Dim Sh As Worksheet, CSh As Worksheet, ConsoWK As Workbook

Chemin = "C:\Users\Adeli\OneDrive\Bureau\EXCEL Cyril\Test CONSOLIDATION\"
Fichier = Dir(Chemin & "*.xls*") 'pourquoi xlsm* ? soit c'est xlsm soit xls*
Set ConsoWK = ThisWorkbook

Do While Len(Fichier) > 0

    Workbooks.Open Chemin & Fichier

    For Each Sh In ActiveWorkbook.Worksheets
        Set CSh = ConsoWK.Worksheets(Sh.Name)
        Sh.Range("A2:R33").Copy Destination:=CSh.Range("A" & CSh.Range("A" & Cells.Rows.Count).End(xlUp).Row + 1)
    Next Sh
    ActiveWorkbook.Close

    Fichier = Dir
Loop
ActiveWorkbook.Save
End Sub
Rechercher des sujets similaires à "boucle onglets"