Deverser certains onglets ds 1seul (mm classeur)
Curlyness
Messages postés
1
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Alors voilà...
J'ai X onglets dans un classeur, et je souhaiterai déverser le contenu de plusieurs d'entre eux dans un autre, sobrement intitulé all in one ^^
A noter que si je me défends coté formules, je ne connais rien aux macros.
J'ai donc copié collé et adapté tent biuien que mal une macro trouvée sur le net et faisant partiellement l'affaire:
Le problème, c'est que je ne sais pas comment l'adapter pour qu'elle ne prenne le contenu que de certaines feuilles, et non de l'intégralité de mon classeur comme défini visiblement dans la première partie. Je ne suis pas familière du format à respecter pour transcrire cette demande.
Pourriez vous éclairer ma lanterne?
Alors voilà...
J'ai X onglets dans un classeur, et je souhaiterai déverser le contenu de plusieurs d'entre eux dans un autre, sobrement intitulé all in one ^^
A noter que si je me défends coté formules, je ne connais rien aux macros.
J'ai donc copié collé et adapté tent biuien que mal une macro trouvée sur le net et faisant partiellement l'affaire:
Option Explicit
Sub allinone()
Dim ws As Worksheet
For Each ws In Worksheets
If ws.Name <> "recap" Then
Application.ScreenUpdating = False
ws.Activate
Range("A1:" & [a1].SpecialCells(xlCellTypeLastCell).Address).Copy
Sheets("all in one").Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End If
Next ws
End Sub
Le problème, c'est que je ne sais pas comment l'adapter pour qu'elle ne prenne le contenu que de certaines feuilles, et non de l'intégralité de mon classeur comme défini visiblement dans la première partie. Je ne suis pas familière du format à respecter pour transcrire cette demande.
Pourriez vous éclairer ma lanterne?
A voir également:
- Deverser certains onglets ds 1seul (mm classeur)
- Restaurer les onglets chrome - Guide
- Imprimer un classeur excel sur mac - Guide
- Ds clock - Télécharger - Bureautique
- Pourquoi certains contacts disparaissent de mon répertoire - Accueil - Guide Android
- Pourquoi certains sites sont inaccessibles - Guide
1 réponse
Bonjour,
Tout est dans cette ligne :
Si le nom de la feuille (en cours dans la boucle) est différent de récap alors je fais le traitement.
Si tu dois écarter du traitement 2-3 feuilles, il suffit de les ajouter à ce test :
On veut écarter du traitement les feuilles : Feuil1, Feuil5 et OneShot :
Il existe une seconde façon de procéder, qui consiste à ne boucler que sur les feuilles concernées par la macro.
Ainsi, si seules les feuilles "Feuil1", "Feuil3"et "Feuil5" sont concernées :
Tu peux bien entendu ajouter ou enlever des feuilles à ta guise...
EDIT :
Tu peux aussi te passer de l'activation de tes feuilles. Ce code te suffit :
🎼 Cordialement,
Franck 🎶
Tout est dans cette ligne :
If ws.Name <> "recap" Then
Si le nom de la feuille (en cours dans la boucle) est différent de récap alors je fais le traitement.
Si tu dois écarter du traitement 2-3 feuilles, il suffit de les ajouter à ce test :
On veut écarter du traitement les feuilles : Feuil1, Feuil5 et OneShot :
If ws.Name <> "recap" And ws.Name <> "Feuil1" ws.Name <> "Feuil5" ws.Name <> "OneShot" Then
Il existe une seconde façon de procéder, qui consiste à ne boucler que sur les feuilles concernées par la macro.
Ainsi, si seules les feuilles "Feuil1", "Feuil3"et "Feuil5" sont concernées :
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets(Array("Feuil1", "Feuil3", "Feuil5"))
Application.ScreenUpdating = False
ws.Activate
Range("A1:" & [a1].SpecialCells(xlCellTypeLastCell).Address).Copy
Sheets("all in one").Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Next
Tu peux bien entendu ajouter ou enlever des feuilles à ta guise...
EDIT :
Tu peux aussi te passer de l'activation de tes feuilles. Ce code te suffit :
Dim Ws As Worksheet
For Each Ws In ThisWorkbook.Worksheets(Array("Feuil1", "Feuil3", "Feuil5"))
With Ws
.Range("A1:" & [a1].SpecialCells(xlCellTypeLastCell).Address).Copy Sheets("all in one").Range("A65536").End(xlUp).Offset(1, 0)
End With
Next
🎼 Cordialement,
Franck 🎶