Macro pour regrouper des schémas

Bonjour à tous,

Est-ce que quelqu'un peut m'aider à construire une macro qui permette de regrouper sur une feuille excel certaines données d'autres feuilles.

J'ai posté un exemple ce que je voudrais obtenir (j'ai mis des tableaux mais en fait il s'agit de schémas (TAB1 à TAB5) regroupés sur la feuille de synthèse qui apparait au début du classeur).

Le problèmes c'est que ce ne sont jamais les mêmes schémas qui sont sélectionnés : par exemple

parfois ce sera tab 1 et tab 3

d'autres fois tab 2 et tab 5

La macro devra aller chercher les feuilles concernées, en copier le contenu (spécifier un nombre de cellules à sélectionner car le schéma évolue selon les analyses) et le mettre dans la feuille de synthèse en accolant chacun des schémas retenus. l'idée est de pouvoir les consulter d'un coup.

Dans mon fichier réel je travaille sur 100 schémas parmi lesquels je dois en sélectionner 20 à 30 selon les besoins ! Je ne peux pas le communiquer c'est confidentiel.

Merci d'avance à qui pourra m'aider

Sarah

Bonsoir,

Si tu commences par nous dire qu'en fait ton modèle ne correspond pas à la réalité, cela n'augure pas de bonnes conditions pour atteindre l'objectif...

Cordialement.

Merci pour ton retour

En fait je me dis que si la macro marche pour l'exemple je pourrais l'adapter pour mon fichier de 100.

non ?

Sarah

bonsoir,

une proposition de macro qui fonctionne avec ton classeur exemple, si ce n'est que j'ai du ajouter un nom de tableau en A1, je fais l'hypothèse que les tableaux sont séparés par une et une seule colonne vide.

Sub aargh()
    fc = 1
    With Sheets("synthese")
        While .Cells(1, fc) <> ""
            dc = .Cells(1, fc).End(xlToRight).Column
            dl = .Cells(1, fc).End(xlDown).Row
            Set ws = Sheets.Add
            ws.Name = .Cells(1, fc)
            Range(.Cells(1, fc), .Cells(dl, dc)).Copy ws.Cells(1, 1)
            fc = dc + 2
        Wend
    End With
End Sub

Merci beaucoup pour ton aide ! Cependant je n'arrive pas à l'utiliser

Je l'ai copié dans les macros du classeur et je me suis positionnée dans la feuille SYNTHESE, je clique sur la macro et il ne se passe rien.

Sarah

Bonjour,

as-tu mis un nom de tableau pour ton 1er tableau en A1 ?

Bonjour,

Merci pour ta réponse

J'ai bien défini un nom TAB1_ pour le premier tableau !

Mais depuis hier j'ai précisé mon besoin et j'ai créé la macro qui décrit ce que je voudrais obtenir (exemple sur 3 feuilles "66"; "44"; "32") :

Sub REGROUP()

Sheets("66").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("SYNTHESE").Select

ActiveSheet.Paste

Columns("C:C").Select

Sheets("44").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("SYNTHESE").Select

ActiveSheet.Paste

Columns("CE:CE").Select

Sheets("32").Select

Application.CutCopyMode = False

Selection.Copy

Sheets("SYNTHESE").Select

ActiveSheet.Paste

Columns("FG:FG").Select

End Sub

Mon problème c'est que les feuilles à regrouper ne sont jamais les mêmes : parfois c'est la 64, 45, 22, 99, 100....et je dois modifier dans la macro la ligne Sheets("64").Select....et c'est super chronophage lorsque j'ai une trentaine de feuilles à regrouper.

N'existe-t-il pas une procédure qui me permettent d'indiquer automatiquement les feuilles à regrouper dans le fichier synthèse.

Merci de ton aide

Sarah

Bonjour Sarah,

au temps pour moi

j'ai lu trop rapidement ta demande, je t'ai fourni une macro qui ventile la synthèse en onglt alors que tu veux l'inverse.

voici

ub aargh()
    Set wss = Sheets("synthese")
    For Each ws In Sheets
        If ws.Name <> wss.Name Then
            dc = ws.Cells(1, Columns.Count).End(xlToLeft).Column
            dcs = wss.Cells(1, Columns.Count).End(xlToLeft).Column
            If dcs <> 1 Then dcs = dcs + 2
            dl = ws.Cells(Rows.Count, 1).End(xlDown).Row
            Range(ws.Cells(1, 1), ws.Cells(dl, dc)).Copy wss.Cells(1, dcs)
        End If
    Next
End Sub

Ça marche

un grand MERCI à toi !!!!

J'espère que je vais arriver à transposer à mon fichier de 100 feuillets

Si ce n'est pas le cas, j'espère pouvoir te recroiser sur le site et bénéficier encore de ton aide

Merci encore !!!

@+

Sarah

Bonjour,

Désolée de te solliciter à nouveau mais il manque un élément dans la macro et comme je n'y connais strictement rien je ne peux pas la modifier. Du coup je me tourne encore vers toi en t'expliquant ce que je voudrais :

Quand j'ouvre le fichier qui contient 100 feuillets numérotés de 1 à 100, je voudrais en sélectionner seulement quelqu'un (20 à 30 selon les besoins).

Mais pour ça j'ai besoin d'inclure dans la macro un élément (une boite de dialogue par exemple) qui me permettrait de sélectionner ces fichiers et ensuite de les regrouper dans le fichier synthèse selon la procédure que tu as déjà écrite.

Est-ce que cela est possible sous excel ?

Merci d'avance pour ton aide

Sarah

bonjour,

macro adaptée pour faire la synthèse des feuilles préalablement sélectionnées avec CTRL-Clic gauche

Sub aargh()
    Set wss = Sheets("synthese")
    For Each ws In ActiveWindow.SelectedSheets
        If ws.Name <> wss.Name Then
            dc = ws.Cells(1, Columns.Count).End(xlToLeft).Column
            dcs = wss.Cells(1, Columns.Count).End(xlToLeft).Column
            If dcs <> 1 Then dcs = dcs + 2
            dl = ws.Cells(Rows.Count, 1).End(xlDown).Row
            Range(ws.Cells(1, 1), ws.Cells(dl, dc)).Copy wss.Cells(1, dcs)
        End If
    Next
End Sub

Merci Beaucoup !!! Ça marche

@+

Sarah

Rechercher des sujets similaires à "macro regrouper schemas"