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
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