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

La méthode Copy de la classe Worksheet a échoué

5 réponses
Avatar
Lio
Bonjour

Lorsque j'ex=E9cute un certain nombre de fois la=20
fonction copy pour worksheet (voir macro ci-dessous),=20
j'obtiens l'erreur suivante : La m=E9thode Copy de la=20
classe Worksheet a =E9chou=E9. Cette erreur emp=EAche ensuite=20
la duplication manuelle d'une feuille du classeur (qui=20
contient la macro) vers ce m=EAme classeur mais n'emp=EAche=20
pas la copie d'une feuille de ce m=EAme classeur vers un=20
autre classeur.

Merci pour l'aide

Lionel =20


Sub Macro()
Application.ScreenUpdating =3D False
For i =3D 1 To 300
Sheets(1).Copy Before:=3DSheets(1)
Application.DisplayAlerts =3D False
Sheets("Feuil1").Delete
Application.DisplayAlerts =3D True
Sheets(1).Name =3D "Feuil1"
Next i
Application.ScreenUpdating =3D True
End Sub

5 réponses

Avatar
LeSteph
Bonsoir,
Cela ne plante pas en soi sur un tour
mais ta macro
ne semble pas avoir d'objectif:
tu ajoute une copie de la même feuille que
tu supprime 300 fois renomme le double???
D'autre part,a u bout de plusieurs tours va voir dans l'explorateur de
projet
ta feuil dite 1 porte le numéro combien?
A la longue ça plante...! ..dépassement je présume...

leSteph


"Lio" a écrit dans le message de
news:11fb01c4a26a$4a826870$
Bonjour

Lorsque j'exécute un certain nombre de fois la
fonction copy pour worksheet (voir macro ci-dessous),
j'obtiens l'erreur suivante : La méthode Copy de la
classe Worksheet a échoué. Cette erreur empêche ensuite
la duplication manuelle d'une feuille du classeur (qui
contient la macro) vers ce même classeur mais n'empêche
pas la copie d'une feuille de ce même classeur vers un
autre classeur.

Merci pour l'aide

Lionel


Sub Macro()
Application.ScreenUpdating = False
For i = 1 To 300
Sheets(1).Copy Before:=Sheets(1)
Application.DisplayAlerts = False
Sheets("Feuil1").Delete
Application.DisplayAlerts = True
Sheets(1).Name = "Feuil1"
Next i
Application.ScreenUpdating = True
End Sub
Avatar
michdenis
Bonjour Lio,

Essaie ceci :

(Pas tester !)
'----------------------------
Sub Macro()
Dim SonNom As String
Application.ScreenUpdating = False
For i = 1 To 300
SonNom = Sheets(1).CodeName
Sheets(1).Copy Before:=Sheets(1)
Application.DisplayAlerts = False
Sheets("Feuil1").Delete
Application.DisplayAlerts = True
Sheets(1).Name = "Feuil1"
Sheets(1).CodeName = SonNom
Next i
Application.ScreenUpdating = True
End Sub
'----------------------------


Salutations!






"Lio" a écrit dans le message de news:11fb01c4a26a$4a826870$
Bonjour

Lorsque j'exécute un certain nombre de fois la
fonction copy pour worksheet (voir macro ci-dessous),
j'obtiens l'erreur suivante : La méthode Copy de la
classe Worksheet a échoué. Cette erreur empêche ensuite
la duplication manuelle d'une feuille du classeur (qui
contient la macro) vers ce même classeur mais n'empêche
pas la copie d'une feuille de ce même classeur vers un
autre classeur.

Merci pour l'aide

Lionel


Sub Macro()
Application.ScreenUpdating = False
For i = 1 To 300
Sheets(1).Copy Before:=Sheets(1)
Application.DisplayAlerts = False
Sheets("Feuil1").Delete
Application.DisplayAlerts = True
Sheets(1).Name = "Feuil1"
Next i
Application.ScreenUpdating = True
End Sub
Avatar
...Patrick
salut,
quel est l'interet d'ajouter une feuille pour la détruire juste derrière ?

ou alors j'ai pas compris (ce qui est tres possible )


--
...Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel


"Lio" a écrit dans le message de news:
11fb01c4a26a$4a826870$
Bonjour

Lorsque j'exécute un certain nombre de fois la
fonction copy pour worksheet (voir macro ci-dessous),
j'obtiens l'erreur suivante : La méthode Copy de la
classe Worksheet a échoué. Cette erreur empêche ensuite
la duplication manuelle d'une feuille du classeur (qui
contient la macro) vers ce même classeur mais n'empêche
pas la copie d'une feuille de ce même classeur vers un
autre classeur.

Merci pour l'aide

Lionel


Sub Macro()
Application.ScreenUpdating = False
For i = 1 To 300
Sheets(1).Copy Before:=Sheets(1)
Application.DisplayAlerts = False
Sheets("Feuil1").Delete
Application.DisplayAlerts = True
Sheets(1).Name = "Feuil1"
Next i
Application.ScreenUpdating = True
End Sub
Avatar
LeSteph
Re,...
ben oui, même question
;-)
"...Patrick" a écrit dans le message de
news:%
salut,
quel est l'interet d'ajouter une feuille pour la détruire juste derrière
?


ou alors j'ai pas compris (ce qui est tres possible )


--
...Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel


"Lio" a écrit dans le message de news:
11fb01c4a26a$4a826870$
Bonjour

Lorsque j'exécute un certain nombre de fois la
fonction copy pour worksheet (voir macro ci-dessous),
j'obtiens l'erreur suivante : La méthode Copy de la
classe Worksheet a échoué. Cette erreur empêche ensuite
la duplication manuelle d'une feuille du classeur (qui
contient la macro) vers ce même classeur mais n'empêche
pas la copie d'une feuille de ce même classeur vers un
autre classeur.

Merci pour l'aide

Lionel


Sub Macro()
Application.ScreenUpdating = False
For i = 1 To 300
Sheets(1).Copy Before:=Sheets(1)
Application.DisplayAlerts = False
Sheets("Feuil1").Delete
Application.DisplayAlerts = True
Sheets(1).Name = "Feuil1"
Next i
Application.ScreenUpdating = True
End Sub





Avatar
Lio
C'est juste une macro qui me permet de simuler l'erreur
plus facilement. Réellement, le code fait plus de 800
lignes et doit être exécuté au moins une trentaine de
fois. J'utilise 3 fois la fonction copy, fois 30, cela
fait plus de 90 copy de feuille.

Pour éviter le problème du codename de la feuille, je
viens d'ajouter les lignes suivantes:
With ThisWorkbook
.VBProject.VBComponents(.Worksheets
("Feuil1").CodeName).Name = "Feuil1"
End With

avant Next i, cela permet d'avoir toujours le codename
égal à Feuil1.

Pour info complémentaire, j'ai 8 cellules nommées.


Merci

Lio
-----Message d'origine-----
salut,
quel est l'interet d'ajouter une feuille pour la
détruire juste derrière ?


ou alors j'ai pas compris (ce qui est tres possible )


--
....Patrick
Quoi que vous fassiez, faites le bien .
Mail: http://cerbermail.com/?KPW0tTCjFw
Connectez vous sur ce forum par :
news://msnews.microsoft.com/microsoft.public.fr.excel


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

11fb01c4a26a$4a826870$
Bonjour

Lorsque j'exécute un certain nombre de fois la
fonction copy pour worksheet (voir macro ci-dessous),
j'obtiens l'erreur suivante : La méthode Copy de la
classe Worksheet a échoué. Cette erreur empêche ensuite
la duplication manuelle d'une feuille du classeur (qui
contient la macro) vers ce même classeur mais n'empêche
pas la copie d'une feuille de ce même classeur vers un
autre classeur.

Merci pour l'aide

Lionel


Sub Macro()
Application.ScreenUpdating = False
For i = 1 To 300
Sheets(1).Copy Before:=Sheets(1)
Application.DisplayAlerts = False
Sheets("Feuil1").Delete
Application.DisplayAlerts = True
Sheets(1).Name = "Feuil1"
Next i
Application.ScreenUpdating = True
End Sub



.