Bonjour,
Désolé de recréer un post pour ce problème mais je n'y connais rien en VB.
J'ai trouvé une piste pour solutionner mon problème mais je ne sais pas comment l'appliquer.
Pouvez-vous m'aider, svp?
Voilà le problème:
Un gentil XLDnaute "liloucmoi") m'a conseillé la macro ci-dessous pour répondre à une demande précédente. Malheureusement, elle génère le message d'erreur suivant: "Erreur d'execution 1004-la méthode de la classe worksheet a échoué-Continuer Fin Debogage Annuler"
La macro:
##
Option Explicit
Public sel() As Variant
Sub CreerFeuilles()
Dim i As Integer, f As Worksheet
ReDim sel(1)
sel(0) = "No films"
listFilms.Show
For Each f In ThisWorkbook.Sheets
If f.Name <> "Matrice vide" And f.Name <> "Données" Then
Application.DisplayAlerts = False
f.Delete
Application.DisplayAlerts = True
End If
Next f
If sel(0) <> "No films" Then
For i = 0 To UBound(sel)
Worksheets("Matrice vide").Copy After:=Worksheets("Matrice vide")
ActiveSheet.Name = sel(i)
ActiveSheet.Range("$AB$3").Value = sel(i)
Next i
End If
End Sub
##
Voici la piste que j'ai trouvée:
##
Cause:
Ce problème se produit car à chaque fois que vous copiez la même feuille, un nom de code est affecté à la copie, et à chaque copie de la feuille ce nom de code s'allonge. Par exemple, si vous copiez sheet1 une fois, le nom de code affecté à la feuille est sheet11. Lorsque vous copiez à nouveau cette feuille, le nom sheet111 lui est affecté, et ainsi de suite. La longueur maximale du nom de code est d'environ 35 caractères. Lorsque cette limite est atteinte, Excel cesse de répondre.
Solution proposée:
Pour contourner ce problème, essayez d'utiliser un code semblable au suivant pour copier des feuilles de calcul :
***
Sub Copy Sheets()
For x = 1 To 300
Sheets.Add
Workbooks("YourWorkBook.xls").Sheets("sheet1").Cells.Copy
ActiveSheet.Paste
Workbooks("YourWorkBook.xls").Sheets("sheet1").Select
##
Savez-vous si l'on peut intégrer cette solution dans ma macro?
Merci d'avance!!
D
Désolé de recréer un post pour ce problème mais je n'y connais rien en VB.
J'ai trouvé une piste pour solutionner mon problème mais je ne sais pas comment l'appliquer.
Pouvez-vous m'aider, svp?
Voilà le problème:
Un gentil XLDnaute "liloucmoi") m'a conseillé la macro ci-dessous pour répondre à une demande précédente. Malheureusement, elle génère le message d'erreur suivant: "Erreur d'execution 1004-la méthode de la classe worksheet a échoué-Continuer Fin Debogage Annuler"
La macro:
##
Option Explicit
Public sel() As Variant
Sub CreerFeuilles()
Dim i As Integer, f As Worksheet
ReDim sel(1)
sel(0) = "No films"
listFilms.Show
For Each f In ThisWorkbook.Sheets
If f.Name <> "Matrice vide" And f.Name <> "Données" Then
Application.DisplayAlerts = False
f.Delete
Application.DisplayAlerts = True
End If
Next f
If sel(0) <> "No films" Then
For i = 0 To UBound(sel)
Worksheets("Matrice vide").Copy After:=Worksheets("Matrice vide")
ActiveSheet.Name = sel(i)
ActiveSheet.Range("$AB$3").Value = sel(i)
Next i
End If
End Sub
##
Voici la piste que j'ai trouvée:
##
Cause:
Ce problème se produit car à chaque fois que vous copiez la même feuille, un nom de code est affecté à la copie, et à chaque copie de la feuille ce nom de code s'allonge. Par exemple, si vous copiez sheet1 une fois, le nom de code affecté à la feuille est sheet11. Lorsque vous copiez à nouveau cette feuille, le nom sheet111 lui est affecté, et ainsi de suite. La longueur maximale du nom de code est d'environ 35 caractères. Lorsque cette limite est atteinte, Excel cesse de répondre.
Solution proposée:
Pour contourner ce problème, essayez d'utiliser un code semblable au suivant pour copier des feuilles de calcul :
***
Sub Copy Sheets()
For x = 1 To 300
Sheets.Add
Workbooks("YourWorkBook.xls").Sheets("sheet1").Cells.Copy
ActiveSheet.Paste
Workbooks("YourWorkBook.xls").Sheets("sheet1").Select
##
Savez-vous si l'on peut intégrer cette solution dans ma macro?
Merci d'avance!!
D