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

copier PLUSIEURS feuilles dans un classeur

2 réponses
Avatar
Rekam
Bonjour à toutes et à tous!

Je cherche désespérément un moyen de copier les feuilles sélectionnées avec
Ctrl+clic dans un nouveau classeur. J'arrive avec une seule feuille, mais pas
moyen d'aller au delà. Je me heurte à des problèmes d'indice de tableau qui
sont pas définis et dieu sait quoi encore... Le code pour copier une seule
feuille est le suivant :
ThisWorkbook.Sheets("Page de garde").Copy

Sinon, j'arrive également à parcourir les feuilles sélectionnées :

For Each f In ActiveWindow.SelectedSheets
ThisWorkbook.Sheets(f.Name).Copy
Next

Mais de cette manière, il me créé chaque fois un nouveau fichier avec une
seule feuille dedans. Et c pô l'but...

Comment est-ce que je peux faire ?
Merci d'avance!

2 réponses

Avatar
papou
Bonjour
Sans avoir à sélectionner les feuilles, et s'il s'agit donc bien de copier
toutes les feuilles du classeur :
Sub copielesf()
Dim LeNouvClass As Workbook
Set LeNouvClass = Workbooks.Add
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
f.Copy after:=LeNouvClass.Worksheets("Feuil1")
Next f
End Sub
Cordialement
Pascal

"Rekam" a écrit dans le message de news:

Bonjour à toutes et à tous!

Je cherche désespérément un moyen de copier les feuilles sélectionnées
avec
Ctrl+clic dans un nouveau classeur. J'arrive avec une seule feuille, mais
pas
moyen d'aller au delà. Je me heurte à des problèmes d'indice de tableau
qui
sont pas définis et dieu sait quoi encore... Le code pour copier une seule
feuille est le suivant :
ThisWorkbook.Sheets("Page de garde").Copy

Sinon, j'arrive également à parcourir les feuilles sélectionnées :

For Each f In ActiveWindow.SelectedSheets
ThisWorkbook.Sheets(f.Name).Copy
Next

Mais de cette manière, il me créé chaque fois un nouveau fichier avec une
seule feuille dedans. Et c pô l'but...

Comment est-ce que je peux faire ?
Merci d'avance!


Avatar
Rekam
Salut

Alors malheureusement, je ne copie pas toutes les feuilles du classeur mais
seulement certaines (celles sélectionnées). J'ai finalement réussi, si
jamais. Mais merci quand même :) !

La page de garde est prise de toute façon

Private Function envoiMail()
Dim f As Worksheet
Dim c As Workbook
Dim w As Window

Set w = Windows(1)
ThisWorkbook.Sheets("Page de garde").Copy
Set c = Workbooks.Item(Workbooks.Count)
For Each f In w.SelectedSheets
If f.Name <> "Page de garde" Then
f.Copy after:=Workbooks(c.Name).Sheets("Page de garde")
End If
Next
For Each f In Workbooks(c.Name).Application.Worksheets
f.Protect Password:="blu"
Next
Workbooks(c.Name).SendMail [E39], "Sujet", False
c.Saved = True
c.Close
End Function

De cette manière, ça envoie un mail (dont l'adresse est inscrite en E39)
avec un fichier qui contient les feuilles sélectionnées précédemment.

Youpiiie !


Bonjour
Sans avoir à sélectionner les feuilles, et s'il s'agit donc bien de copier
toutes les feuilles du classeur :
Sub copielesf()
Dim LeNouvClass As Workbook
Set LeNouvClass = Workbooks.Add
Dim f As Worksheet
For Each f In ThisWorkbook.Worksheets
f.Copy after:=LeNouvClass.Worksheets("Feuil1")
Next f
End Sub
Cordialement
Pascal

"Rekam" a écrit dans le message de news:

Bonjour à toutes et à tous!

Je cherche désespérément un moyen de copier les feuilles sélectionnées
avec
Ctrl+clic dans un nouveau classeur. J'arrive avec une seule feuille, mais
pas
moyen d'aller au delà. Je me heurte à des problèmes d'indice de tableau
qui
sont pas définis et dieu sait quoi encore... Le code pour copier une seule
feuille est le suivant :
ThisWorkbook.Sheets("Page de garde").Copy

Sinon, j'arrive également à parcourir les feuilles sélectionnées :

For Each f In ActiveWindow.SelectedSheets
ThisWorkbook.Sheets(f.Name).Copy
Next

Mais de cette manière, il me créé chaque fois un nouveau fichier avec une
seule feuille dedans. Et c pô l'but...

Comment est-ce que je peux faire ?
Merci d'avance!