Copie de plusieurs onglets dans un seul

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

slaurent01

XLDnaute Junior
Bonjour le forum,

Je fais appel à vous pour une question. J'ai un classeur avec plusieurs onglets que je veux regrouper dans un seul onglet à l'ouverture du fichier. J'ai insérer une macro mais qui me semble trop longue à executer :

Code:
Private Sub Workbook_Open()

Worksheets("dest").Rows("5:65536").EntireRow.Delete

Sheets("GAMME BOUTIQUES SODI'STORE").Select
 Range("A4").Select
 Range(Selection, Selection.End(xlDown)).Select
 Range(Selection, Selection.End(xlToRight)).Select
 Selection.Copy
 
 
Sheets("Dest").Select
 Range("A4").Select
 ActiveSheet.Paste

Sheets("RENOVATION ET ENTRETIEN").Select
 Range("A5").Select
 Range(Selection, Selection.End(xlDown)).Select
 Range(Selection, Selection.End(xlToRight)).Select
 Selection.Copy

Sheets("Dest").Select
Range("a4").End(xlDown).Select
ActiveCell.Offset(1, 0).Select
 ActiveSheet.Paste
............

J'ai 5 onglets à regrouper. Etant débutant dans le vba, existe-t-il une meilleur facon d'écrire cette macro afin qu'elle s'execute plus rapidement?

Merci par avance de l'attention que vous porterez a ma question.
Cordialement
Stéphane
 
Re : Copie de plusieurs onglets dans un seul

Bonjour à tous

slaurent01
Oui elle existe
Ne pas recourir au Select

As-tu regarder dans les archives du forum?
Tu trouveras de nombreux exemples pour compiler plusieurs onglets dans un seul.

(Voir aussi en bas de page dans les cinq discussions similaires)
 
Re : Copie de plusieurs onglets dans un seul

Re

Histoire de passer le temps et d'oublier ce dimanche pluvieux
Voici ce que je te propose
Code:
Sub a()
Dim ws As Worksheet
For Each ws In Worksheets
If Not ws.Name = "dest" Then
ws.UsedRange.Copy Sheets("dest").[A65536].End(xlUp)(2)
End If
Next ws
End Sub

Je te laisse tester (et peut-être adapter) et insérer dans une procédure WorkBook_Open()

EDITION1: Bonjour Gareth

EDITION2: Bonjour JCGL
 
Dernière édition:
Re : Copie de plusieurs onglets dans un seul

Bonjour,

Ton code doit pouvoir se simplifier comme ceci :
Code:
Private Sub Workbook_Open()
Worksheets("dest").Rows("5:65536").Clear
Sheets("GAMME BOUTIQUES SODI'STORE").Range("A4").CurrentRegion.Copy Sheets("Dest").Range("A4")
Sheets("RENOVATION ET ENTRETIEN").Range("A5").CurrentRegion.Copy Sheets("Dest").Range("A65000").End(xlUp).Offset(1, 0)
End Sub

Edit : Bonjour Staple1600
 
Re : Copie de plusieurs onglets dans un seul

Bonjour à tous,

C'était fait donc je dépose :

VB:
Sub Test()
Dim DerL%, Feuille As Worksheet
Feuil1.Range("A1:IV65536").ClearContents
DerL = Feuil1.Range("A65536").End(xlUp).Row
For Each Feuille In Worksheets
If Feuille.Name <> "Dest" Then Feuille.UsedRange.Copy Feuil1.Range("A" & DerL)
DerL = Feuil1.Range("A65536").End(xlUp).Row + 1
Next Feuille
End Sub

A + à tous

Edition : Pas vu l'Agrafe... Salut.
 
Dernière édition:
Re : Copie de plusieurs onglets dans un seul

Tout d'abord merci à tous de vous êtes penché sur mon problème ce dimanche matin.
Les pages se copient bien mais avec les entêtes de colonnes et autres lignes vides.
étant plus que débutant, j'ai un peu de mal à adapter le code.

Toutefois dans le fil du forum j'ai trouvé ce code que j'ai réussi à modifier
Private Sub Workbook_Open()

Dim Sh As Worksheet
Application.ScreenUpdating = False
With Sheets("dest")
.Columns("A:d").ClearContents
For Each Sh In Sheets
If Sh.Name <> .Name Then
Sh.Range("A5:d170").Copy .Cells(.Rows.Count, 1).End(xlUp)(2)
End If
Next Sh
End With
Application.ScreenUpdating = True

'on déplace la colonne D en A
Sheets("dest").Columns("D😀").Cut
Columns("A:A").Insert Shift:=xlToRight

'on selectionne l'onglet de recherche
Sheets("recherche").Select
Range("b2").Select

End Sub

Par contre, et oui il y a toujours un petit probleme, ce code copie toutes les fiches et il y en à deux que je ne veux pas qu'il copie.
Comment dois je adapter le code pour qu'il exclue l'onglet "recherche" et "famille" dans la selection.

Par avance merci de m'apporter encore de l'aide
Stéphane
 
Re : Copie de plusieurs onglets dans un seul

bonjour stapple 1600


Oui j'avais effectivement une petite idée que ca se passait par là, mais je n'arrive pas à l'écrire. Tous les codes que j'ai saisi, j'ai eu droit au plantage de la macro. Une idée ?

cordialement
stephane
 
Re : Copie de plusieurs onglets dans un seul

Re


Alors il est venu le temps (non non pitié pas des cathédrales)
Oui il est venu pour toi de nous joindre un fichier exemple anonymisé histoire d'y voir plus clair
et surtout ne pas avoir à créer un fichier qui existe déjà sur ton disque dur. 😉
 
Re : Copie de plusieurs onglets dans un seul

Bonjour à tous,

L'Agrafe : J'en ai un peu marre de rappeler qu'avec un fichier significatif, conforme à l'original mais anonymisé, le demandeur aurait une réponse plus adaptée...

A++
A + à tous
 
Re : Copie de plusieurs onglets dans un seul

bonjour,


PCGL j'ai tenté avec votre code mais ca ne fonctionne pas.

Effectivement avec le fichier ca sera plus clair.

Je ne peux pas changer le nom des onglets et j'aurai peut être d'autres onglets à rajouter par la suite.

Merci à tous pour votre attention

Cordialement

Stephane
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
892
Retour