Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Excel 2003 - Echec méthod copy de la classe worksheet

  • Initiateur de la discussion Initiateur de la discussion JLGCF
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

JLGCF

Guest
Bonjour,

La macro ci-desous copie autant de feuilles à partir de la feuille "Bilan_001" que de lignes trouvées dans une table de la feuille Calendar. Il y a 62 lignes dans ce tableau et la macro devrait donc créer 62 feuilles.

Je n'arrive pas à comprendre pourquoi cela marche toujours pour les 20 premières valeurs de la table mais mas pour les suivantes.

Cela plante au niveau de la ligne :

Shxx.Copy After:=Sheets(j)

et j'ai le message d'erreur "La méthod copy de la classe worksheet a échoué"

Sub Creation_Balance_sheet_spreadsheet()

Dim i As Long, j As Long
Dim Sh As Worksheet
Dim Shxx As Worksheet
Dim Entity_id As String

Set Sh = ActiveWorkbook.Worksheets("Calendar")
Set Shxx = ActiveWorkbook.Worksheets("Bilan_001")

j = Shxx.Index

Application.ScreenUpdating = False

For i = 16 To Sh.Range("A65535").End(xlUp).Row

Entity_id = Sh.Cells(i, 1).Value
Shxx.Activate
Shxx.Copy After:=Sheets(j)
Sheets(j + 1).Name = "Bilan_" & Entity_id
Sheets(j + 1).Cells(15, 3).Value = Entity_id
Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j + 1).Name
Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" & Entity_id
Sheets(j + 1).Visible = True
j = j + 1

Next i

Application.ScreenUpdating = True

End Sub

Merci pour votre aide
 
Re : Excel 2003 - Echec méthod copy de la classe worksheet

Bonjour,
Chez moi, ta macro marche impec jusqu'au bout des 62 lignes (Un fichier exemple aurait été bien vu...) mais elle n'accepte pas ces 2 lignes:
Code:
'Sheets(j + 1).Range(Cells(17, 1), Cells(53, 12)).Name = Sheets(j + 1).Name
'Sheets(j + 1).Range(Cells(61, 15), Cells(81, 22)).Name = "PL_" & Entity_id
Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
732
Réponses
5
Affichages
909
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
452
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…