DUPLICATION DE FEUILLES LIMITEES

P

patrick

Guest
Bonjour à tous !!

Je vous explique mon problème :

j'ai une feuille dans mon classeur qui est deja mise en forme et prete à etre remplie, et j'ai besoin de la dupliquer dans le meme classeur, le nombre de copie étant variable (de 300 à 400 feuilles).

Le probleme c'est que quand je lance ma macro la feuille est dupliquée 180 fois puis j'ai ce message d'erreur :
Erreur d'execution '1004': La methode copy de la classe worksheet à echoué


ca fait 2 jours que je cherche dans les tutos et que j'essai de resoudre ce probleme, mais rien à faire

Pourtant quand je lance ma macro dans un classeur vide ca marche impec' alor jme demande si ce n'est pas du à la taille de la feuille???

voila mon bout de code :

Sub duplic()

Dim i As Integer
i = 1

Do While i < 350

Sheets('Feuil1').Select
Sheets('Feuil1').Copy Before:=Sheets(2)
ActiveSheet.Name = i
i = i + 1
Loop

End Sub


Merci pour votre aide
 

CBernardT

XLDnaute Barbatruc
Bonjour Patrick,

Essayes ce code :

Sub duplic()
Dim i As Integer

For i = 2 To 350
Sheets('Feuil1').Copy after:=Sheets(Worksheets.Count)
ActiveSheet.Name = i
Next i
End Sub

Il est supposé que le classeur ne contient que la feuille 'feuil1'.

Cordialement

Bernard
 

Staple1600

XLDnaute Barbatruc
Bonjour

En remplaçant Integer par Long
avec une une feuille contenant 1000 lignes de données brutes
(3 caractères par cellules)
Cela fonctionne chez moi

Sub Cop()
Dim i As Long
i = 1
Do While i < 350
Application.ScreenUpdating = False
Sheets('Feuil1').Copy Before:=Sheets(2)
ActiveSheet.Name = i
i = i + 1
Loop

End Sub
 

Staple1600

XLDnaute Barbatruc
Bonjour again

Peut-être en scindant les choses...
(chez moi ca marche:
XL2K, XPHome SP2, 256 Mo, Athlon 1,92)

Sub DUPLIK_SH()

Dim i, j, k As Long
i = 1
Do While i < 75
Application.ScreenUpdating = False
Sheets('Feuil1').Copy Before:=Sheets(2)
ActiveSheet.Name = i
i = i + 1
Loop

j = 75
Do While j < 150
Sheets('74').Copy Before:=Sheets(2)
ActiveSheet.Name = j
j = j + 1
Loop

k = 150
Do While k < 351
Sheets('149').Copy Before:=Sheets(2)
ActiveSheet.Name = k
k = k + 1
Loop

End Sub
 
P

Patrick

Guest
Toujours pas ca s'arrete toujours vers 180 feuilles copiés.
Ca fonctionne avec une feuille vide mais la mienne et tres chargée au niveau de la mise en page, des formules ...

Quoi qu'il en soit g du bidouiller pour arriver à kelke chose :
ma procedure copie la moitié des feuilles dans le fichier, et l'autre moitié dans un classeur temporaire créé pour l'occasion.
ensuite je fais une selection de toute les feuille du classeur temporaire et les copie d'un block vers mon classeur destionation.
ensuite je suprimme mon classeur temporaire.

Ca fait un peu lourd mais bon au moin ca plante pas !!!!

Merci à tous pour votre aide.
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 245
Membres
103 498
dernier inscrit
FAHDE