Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Copier des Feuilles

6 réponses
Avatar
Hicham Oudrhiri
Bonjour à tous
J'ai un classeur avec des dizaines de feuilles. Je souhaite créer une macro
qui me permet de copier des feuille selon une plage dans un nouveau fichier.
Merci de votre aide
H

6 réponses

Avatar
JB
Bonjour,

Sub DecoupeClasseurPlusieurs()
Application.DisplayAlerts = False
ChDir ActiveWorkbook.Path
For Each s In ActiveWorkbook.Sheets
s.Copy
ActiveWorkbook.SaveAs Filename:=s.Name
ActiveWorkbook.Close
Next s
End Sub

http://boisgontierjacques.free.fr/pages_site/GestionOnglets.htm#DecoupeClas seur

JB
http://boisgontierjacques.free.fr

On 1 sep, 12:00, "Hicham Oudrhiri" wrote:
Bonjour à tous
J'ai un classeur avec des dizaines de feuilles. Je souhaite créer une m acro
qui me permet de copier des feuille selon une plage dans un nouveau fichi er.
Merci de votre aide
H


Avatar
LSteph
Bonjour,

Sous réserve du nb d'enregistrements (total<65536)

Menu Données TCD Plage de données avec étiquettes

ajoute les différentes feuilles disposant de ces mêmes étiquettes
Une simple opération Somme ou NB suffit, du moment qu'elle fait
intervenir une donnée présente dans tous les enregistrements.

Une fois le TCD obtenu, fais

un DOubleClick sur le Total Général

Tu extrais ainsi une feuille regroupant l'ensemble des enregistrements.

Cordialement.

lSteph


Bonjour à tous
J'ai un classeur avec des dizaines de feuilles. Je souhaite créer une macro
qui me permet de copier des feuille selon une plage dans un nouveau fichier.
Merci de votre aide
H




Avatar
LSteph
.. sinon par macro

Sub regroupe()
Dim i As Byte

With ActiveWorkbook
.Worksheets.Add _
after:=.Sheets(.Sheets.Count)
.Sheets(1).Rows(1).Copy _
Destination:¬tiveSheet.[a1]
For i = 1 To .Sheets.Count - 1
Sheets(i).Range("a2", _
Sheets(i).[a65536].End(xlUp).Address).EntireRow.Copy
ActiveSheet.[a65536].End(xlUp)(2).PasteSpecial _
Paste:=xlPasteValues
Next
End With

ActiveSheet.Move
ActiveSheet.Name = "Feuil1"
ActiveWorkbook.SaveAs "recap" & _
Format(Now, "yyyymmjj_hhmm")
End Sub


'lSteph


Bonjour à tous
J'ai un classeur avec des dizaines de feuilles. Je souhaite créer une macro
qui me permet de copier des feuille selon une plage dans un nouveau fichier.
Merci de votre aide
H




Avatar
Hicham Oudrhiri
Bonjour à tous
Merci pour toutes vos réponses. Je crois que je me suis mal exprimé. Ce que
je cherche à faire est comme suit
J'ai un classeur avec plus de cent feuilles. A chaque fois je dois dupliquer
des dizaines de feuille dans un nouveau et même classeur. Comme je le fais
manuellement ca me pend beaucoup de temps. Sachant que le liste des feuilles
à dupliquer se trouve dans une plage par exemple range("A1:A120") est il
possible de le faire par macro.
Merci de votre aide
H
"LSteph" a écrit dans le message de news:

.. sinon par macro

Sub regroupe()
Dim i As Byte

With ActiveWorkbook
.Worksheets.Add _
after:=.Sheets(.Sheets.Count)
.Sheets(1).Rows(1).Copy _
Destination:¬tiveSheet.[a1]
For i = 1 To .Sheets.Count - 1
Sheets(i).Range("a2", _
Sheets(i).[a65536].End(xlUp).Address).EntireRow.Copy
ActiveSheet.[a65536].End(xlUp)(2).PasteSpecial _
Paste:=xlPasteValues
Next
End With

ActiveSheet.Move
ActiveSheet.Name = "Feuil1"
ActiveWorkbook.SaveAs "recap" & _
Format(Now, "yyyymmjj_hhmm")
End Sub


'lSteph


Bonjour à tous
J'ai un classeur avec des dizaines de feuilles. Je souhaite créer une
macro qui me permet de copier des feuille selon une plage dans un nouveau
fichier.
Merci de votre aide
H





Avatar
lSteph
Bonjour,
alors certainement et plus vite même sans macro
(mais tu peux aussi faire une macro)

Tu enregistres ton classeur sous un nouveau nom
et tu supprime les une ou deux feuilles qu'il n'est pas utile de
garder.

Cordialement.

lSteph

On 3 sep, 12:17, "Hicham Oudrhiri" wrote:
Bonjour à tous
Merci pour toutes vos réponses. Je crois que je me suis mal exprimé. Ce que
je cherche à faire est comme suit
J'ai un classeur avec plus de cent feuilles. A chaque fois je dois dupliq uer
des dizaines de feuille dans un nouveau et même classeur. Comme je le f ais
manuellement ca me pend beaucoup de temps. Sachant que le liste des feuil les
à dupliquer se trouve dans une plage par exemple range("A1:A120") est il
possible de le faire par macro.
Merci de votre aide
H
"LSteph" a écrit dans le message de news:


.. sinon par macro

Sub regroupe()
Dim i As Byte

With ActiveWorkbook
.Worksheets.Add _
after:=.Sheets(.Sheets.Count)
.Sheets(1).Rows(1).Copy _
Destination:¬tiveSheet.[a1]
For i = 1 To .Sheets.Count - 1
Sheets(i).Range("a2", _
Sheets(i).[a65536].End(xlUp).Address).EntireRow.Copy
ActiveSheet.[a65536].End(xlUp)(2).PasteSpecial _
Paste:=xlPasteValues
Next
End With

ActiveSheet.Move
ActiveSheet.Name = "Feuil1"
ActiveWorkbook.SaveAs "recap" & _
Format(Now, "yyyymmjj_hhmm")
End Sub

'lSteph

Bonjour à tous
J'ai un classeur avec des dizaines de feuilles. Je souhaite créer une
macro qui me permet de copier des feuille selon une plage dans un nouv eau
fichier.
Merci de votre aide
H






Avatar
JB
Bonjour,

For Each c In Range(Sheets(1).[A1], Sheets(1).[A65000].End(xlUp))
nom = c.Value
Sheets(nom).Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = nom & "bis"
Next c

JB
http://boisgontierjacques.free.fr/


On 3 sep, 12:17, "Hicham Oudrhiri" wrote:
Bonjour à tous
Merci pour toutes vos réponses. Je crois que je me suis mal exprimé. Ce que
je cherche à faire est comme suit
J'ai un classeur avec plus de cent feuilles. A chaque fois je dois dupliq uer
des dizaines de feuille dans un nouveau et même classeur. Comme je le f ais
manuellement ca me pend beaucoup de temps. Sachant que le liste des feuil les
à dupliquer se trouve dans une plage par exemple range("A1:A120") est il
possible de le faire par macro.
Merci de votre aide
H
"LSteph" a écrit dans le message de news:




.. sinon par macro

Sub regroupe()
Dim i As Byte

With ActiveWorkbook
.Worksheets.Add _
after:=.Sheets(.Sheets.Count)
.Sheets(1).Rows(1).Copy _
Destination:¬tiveSheet.[a1]
For i = 1 To .Sheets.Count - 1
Sheets(i).Range("a2", _
Sheets(i).[a65536].End(xlUp).Address).EntireRow.Copy
ActiveSheet.[a65536].End(xlUp)(2).PasteSpecial _
Paste:=xlPasteValues
Next
End With

ActiveSheet.Move
ActiveSheet.Name = "Feuil1"
ActiveWorkbook.SaveAs "recap" & _
Format(Now, "yyyymmjj_hhmm")
End Sub

'lSteph

Bonjour à tous
J'ai un classeur avec des dizaines de feuilles. Je souhaite créer une
macro qui me permet de copier des feuille selon une plage dans un nouv eau
fichier.
Merci de votre aide
H- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -