Erreur 1004- erreur défini par l'application ou par l'objet

Bonjour à tous.

J'ai un code qui fonctionnait au début et maintenant dès que je cherche à l’exécuter j'ai un message du genre :

'erreur 1004"

Erreur défine par l'application ou par l'objet.

J'ai une bade jaune au niveau de cette ligne : " ActiveSheet.Name = mySN "

Merci de votre aide précieuse!

'Création de feuille par projet
Sub Dispatch()

Application.ScreenUpdating = False
Dim myRange As Range, mySheet As Worksheet, mySN As String, myH As Range

Sheets("TCD").Select
Set mySheet = ActiveSheet

Set myH = Range(Range("A4"), Cells(4, Columns.Count).End(xlToLeft))
dercol = Cells(4, Columns.Count).End(xlToLeft).Column
'myH.Select
n1 = Len(Range("A5").Value) - 31 + 1
n2 = 1
n3 = Application.Max(n1, n2)
mySN = Mid(Range("A5").Value, n3)
Set myRange = ActiveCell
'mySN = ActiveCell

Do Until ActiveCell = "Total général"
    If Not ActiveCell.Offset(1, 0) Like "**/**/****" Then
        Range(myRange, ActiveCell).Rows.EntireRow.Copy
        Sheets.Add after:=Sheets(Sheets.Count)
        ActiveSheet.Name = mySN                                 ' l'erreur se trouve ici !!!!!!!!!!!!!!!!!!!!!!!!!!!
        Range("A2").PasteSpecial
        myH.Copy
        Range("A1").PasteSpecial
        Application.CutCopyMode = False
        Columns("A:H").EntireColumn.AutoFit
            For a = myH.Cells.Count To 2 Step -1
                If Cells(Rows.Count, a).End(xlUp).Row = 1 Then
                    Cells(Rows.Count, a).Columns.EntireColumn.Delete
                End If

            Next a

                'suppression de la dernière colonne "TOTAL général"
                colonne = ActiveSheet.UsedRange.Columns.Count
                For i = colonne To 1 Step -1
                If Cells(1, i) = "Total général" Then Columns(i).Delete
                Next i

                'Insertion d'une colonne pour décaler le tableau d'une colonne à droite
                'Columns("A:A").Select
                'Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

        Range("2:2").Copy
        Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial
        Application.CutCopyMode = False
        Selection.Font.Bold = True
        Range("2:2").Delete
        mySheet.Activate
        Set myRange = ActiveCell.Offset(1, 0)
        n1 = Len(ActiveCell.Offset(1, 0)) - 31 + 1
        n2 = 1
        n3 = Application.Max(n1, n2)
        mySN = Mid(ActiveCell.Offset(1, 0), n3)
    End If

    ActiveCell.Offset(1, 0).Select
Loop
Application.ScreenUpdating = True
End Sub

Bonjour,

Une piste : je remarque que le nommage de la feuille est inclus dans une boucle Do Until ... Loop.

Si la condition est satisfaite plusieurs fois, il ne faut pas que le programme demande à nommer 2 feuilles avec le même nom, sinon Erreur 1004.

A+

Bonjour

J'ai actuellement la meme erreur et encore une fois dans une boucle do until (meme quand j'essaye avec while) loop,

j'ai calculé auparavant la valeur d'un rapport et j'essaye a l'aide de cette boucle de trouver la premiere valeur dans ma liste supérieure

a mon rapport pour la définir, et continuer mon programme. (j'ai copié la partie qui "pose probleme" dans MODULE1)

Merci d'avance pour votre aide.

Bonjour,

La variable i ne peut pas prendre une valeur inférieure à 1.

Sub simpleloop()
Dim rap As Double
Dim i As Integer
    i = 1
    rap = Sheets("Calcul").Range("B15").Value
    Do Until Sheets("Rapport").Cells(i, 1).Value >= rap
        i = i + 1
    Loop
End Sub

A+

Bonjour

Mince j'avais oublié .. reflexe du language C.

j'ai essayé et ca marche un grand merci !

Rechercher des sujets similaires à "erreur 1004 defini application objet"