Erreur 1004... quelle solution

Charlie075 -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai la macro suivante :

"
Sub Rappro_IG()
    
    Range("A2:V10000").Select
    Selection.Clear
    Range("A1").Select

'1/ Recopie des feuilles du classeur protégé sur un nouveau classeur
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    Synthese = ActiveWorkbook.Name
    ShSynthese = ActiveSheet.Name
    
    ActiveWindow.ActivateNext
    IntraG = ActiveWorkbook.Name
    ShIntraG = "Feuil1" 'ActiveSheet.Name
    
    Set ShDest = Workbooks(Synthese).Sheets(ShSynthese)
    Set ShSour = Workbooks(IntraG) '.Sheets(ShIntraG)

    LigneEc = 2

    
'3/ Création d'une feuille unique qui empile les données de toutes les feuilles

ShSour.Activate
    
    For i = 1 To 20
        For c = 1 To 10
        If Cells(i, c).Value = "Entity" Then
        LigneDébut = Cells(i, c).Row
        ColEntity = Cells(i, c).Column
        End If
        If Cells(i, c).Value = "Partner" Then
        ColPartner = Cells(i, c).Column
        End If
        If Cells(i, c).Value = "Account" Then
        ColAccount = Cells(i, c).Column
        End If
        If Cells(i, c).Value = "Custom1" Then
        ColCustom1 = Cells(i, c).Column
        End If
        If Cells(i, c).Value = "Custom3" Then
        ColCustom3 = Cells(i, c).Column
        End If
        If Cells(i, c).Value = "Custom4" Then
        ColCustom4 = Cells(i, c).Column
        End If
        If Cells(i, c).Value = "Entity Amount" Then
        ColEAmount = Cells(i, c).Column
        End If
        If Cells(i, c).Value = "Partner Amount" Then
        ColPAmount = Cells(i, c).Column
        End If
        If Cells(i, c).Value = "Difference" Then
        ColDifference = Cells(i, c).Column
        End If
        Next c
    Next i

    ColEntité = ColDifference + 1
    ColPartenaire = ColDifference + 2
    ColEcarts = ColDifference + 3
    ColClasse = ColDifference + 4
    
    LastCol = Cells(LigneDébut, 256).End(xlToLeft).Column
    LastCell = Cells(65536, ColEntity).End(xlUp).Row '-1 = si en-tête

   
    For i = LigneDébut + 1 To LastCell
    If (Abs(Cells(i, ColEAmount).Value + Cells(i, ColPAmount).Value) < 1 Or IsEmpty(Cells(i, ColAccount).Value) = True) Then GoTo Suite Else
        ShDest.Cells(LigneEc, ColEntity).Value = Cells(i, ColEntity).Value
        ShDest.Cells(LigneEc, ColPartner).Value = Cells(i, ColPartner).Value
        ShDest.Cells(LigneEc, ColAccount).Value = Cells(i, ColAccount).Value
        ShDest.Cells(LigneEc, ColCustom1).Value = Cells(i, ColCustom1).Value
        ShDest.Cells(LigneEc, ColCustom3).Value = Cells(i, ColCustom3).Value
        ShDest.Cells(LigneEc, ColCustom4).Value = Cells(i, ColCustom4).Value
        ShDest.Cells(LigneEc, ColEAmount).Value = Cells(i, ColEAmount).Value
        ShDest.Cells(LigneEc, ColPAmount).Value = Cells(i, ColPAmount).Value
        ShDest.Cells(LigneEc, ColEntité).FormulaR1C1 = "=IF(RC3="""","""",IF(RC7<>"""",RC1,RC2))"
        ShDest.Cells(LigneEc, ColPartenaire).FormulaR1C1 = "=IF(RC3="""","""",IF(RC7<>"""",RC2,RC1))"
        ShDest.Cells(LigneEc, ColEcarts).FormulaR1C1 = "=IF(RC10="""",0,IF(OR(LEFT(RC3,2)=""R7"",LEFT(RC3,3)=""RG7""),RC7+RC8,RC7-RC8))"
        ShDest.Cells(LigneEc, ColClasse).FormulaR1C1 = "=VLOOKUP(RC3,Comptes!R1C1:R2000C6,6,0)"
        LigneEc = LigneEc + 1
Suite:
    Next i
    
    
ShDest.Activate
    
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic

End Sub



Le debogueur signale une erreur 1004. Il se positionne sur :
If (Abs(Cells(i, ColEAmount).Value + Cells(i, ColPAmount).Value) < 1 Or IsEmpty(Cells(i, ColAccount).Value) = True) Then GoTo Suite Else




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.






Auriez-vous une idée pour résoudre cette erreur ?

Mille mercis.

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

essaye en plaçant le ELSE à la ligne...

If condition Then
 'qqchose
Else
 'autre chose
End If 

0