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,

Peux-tu essayer avec :

VB:
Private Sub Workbook_Open()
' on va copier le contenu des onglets de produits dans un onglet appelé "dest" en omettant les en-têtes de colonnes
 
 Dim Sh As Worksheet
Application.ScreenUpdating = False
 
'on efface d'abord le contenu de l'onglet "dest"
 With Sheets("dest")
     .Columns("A:d").ClearContents
     For Each Sh In Sheets
       
   ' je voudrais par le code nommer les feuilles à exclure
       If Sh.Name <> .Name And Sh.Name <> "Recherche" And Sh.Name <> "Familles" Then
        If Sh.Name <> .Name Then Sh.Range("A5:D200").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:D").Cut
Sheets("dest").Columns("A:A").Insert Shift:=xlToRight
      
'on selectionne l'onglet de recherche
Sheets("recherche").Select
Range("b2").Select
End Sub

A + à tous
 
Dernière édition:
Re : Copie de plusieurs onglets dans un seul

bonsoir à tous,



Effectivement en renomant en FAMILLES ca marche. C'est super.
Un grand merci à vous tous qui avez passé du temps, et un grand merci à JCGL pour avoir trouvé la solution.
Je vais pouvoir continuer à développer mon application.

Ca fait quelques mois que je me suis mis à développer des appli. sur excel, étant vraiment débutant en vba, le forum est un endroit vraiment plein de sources utiles et de personnes sympas qui vous donnent un coups de main.
Merci à vous tous

Cordialement
stéphane
 
Re : Copie de plusieurs onglets dans un seul

Bonjour à tous,

Merci de ton retour.

Si tu continues sur XLD comme tu l'a fait dans cette discussion, tu auras forcément des réponses...

Au plaisir de tenter de t'aider de nouveau
A++

A + à tous
 
- 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