Erreur 1004': Erreur définie par l'application ou par l'objet
Bonjour,
Je sollicite votre aide sur un problème que je rencontre.
Je suis assez nouveau dans le codage VBA alors, j'ai encore du mal à comprendre les erreurs d'exécution que je rencontre.
Je suis actuellement entrain de créer une petite macro qui fait des comparaisons et des "copier-coller" entre deux fichiers différents.
Or, lorsque j'exécute ma macro, je rencontre l'erreur 1004': Erreur définie par l'application ou par l'objet...
Malgré des recherches, et des essais de modifications, je retombe toujours sur la même erreur.
Je vous mets ci-dessous mon code :
'Parcours des nouveaux PA pour injection dans la bonne feuille
For k = 3 To workbookBI.Sheets("Liste PA filtrée pour ASN").Range("B2").End(xlDown).Row
elementToCompare1 = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("B" & k)
elementToCompare2 = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("E" & k)
elementToCompare3 = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("R" & k)
newLine = True
For kk = 2 To workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row + 1
If elementToCompare1 = workbookPA.Sheets("PA filtrés").Range("A" & k) And elementToCompare2 = workbookPA.Sheets("PA filtrés").Range("C" & k) And elementToCompare3 = workbookPA.Sheets("PA filtrés").Range("J" & k) Then
'La ligne est existante dans le fichier mère, on va faire les comparaisons d'usage
' Comparaison de l'évolution du statut du PA
If workbookPA.Sheets("PA filtrés").Range("C" & kk).Value <> workbookBI.Sheets("Liste PA filtrée pour ASN").Range("E" & kk).Value Then
workbookPA.Sheets("PA filtrés").Range("C" & kk).Value = workbookBI.sheest("Liste PA filtrés pour ASN").Range("E" & kk).Value
workbookPA.Sheets("PA filtrés").Range("C" & kk).Interior.Color = RGB(255, 217, 102) 'Coloration en jaune de la cellule "Statut PA" qui a changé
workbookPA.Sheets("PA filtrés").Range("A" & kk).Interior.Color = RGB(255, 217, 102) 'Coloration en jaune de la cellule "N°PA" pour identifier la ligne qui a changé
End If
'Comparaison de l'évolution du solde du PA
If workbookPA.Sheets("PA filtrés").Range("J" & kk).Value <> workbookBI.Sheets("Liste PA filtrée pour ASN").Range("R" & kk).Value Then
workbookPA.Sheets("PA filtrés").Range("J" & kk).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("R" & kk).Value
workbookPA.Sheets("PA filtrés").Range("J" & kk).Interior.Color = RGB(255, 217, 102) 'Coloration en jaune de la cellule "Solde" qui a changé
workbookPA.Sheets("PA filtrés").Range("A" & kk).Interior.Color = RGB(255, 217, 102) 'Coloration en jaune de la cellule "N°PA" pour identifier la ligne qui a changé
End If
newLine = False
End If
Next
'======================================================================================================================
'Si newLine = True, cela signifie que le PA n'existe pas dans la feuille "PA filtrés"
'On ajoute alors le nouveau PA
If newLine = True Then
workbookPA.Sheets("PA filtrés").Range("A" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row + 1).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("B" & k).Value
workbookPA.Sheets("PA filtrés").Range("B" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("C" & k).Value
workbookPA.Sheets("PA filtrés").Range("C" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("E" & k).Value
workbookPA.Sheets("PA filtrés").Range("D" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("F" & k).Value
workbookPA.Sheets("PA filtrés").Range("E" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("H" & k).Value
workbookPA.Sheets("PA filtrés").Range("F" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("K" & k).Value
workbookPA.Sheets("PA filtrés").Range("G" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("L" & k).Value
workbookPA.Sheets("PA filtrés").Range("H" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("O" & k).Value
workbookPA.Sheets("PA filtrés").Range("I" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("P" & k).Value
workbookPA.Sheets("PA filtrés").Range("J" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("R" & k).Value
workbookPA.Sheets("PA filtrés").Range("K" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("T" & k).Value
workbookPA.Sheets("PA filtrés").Range("A" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row).Interior.Color = RGB(7, 211, 26) 'Coloration en vert de la cellule lorsqu'un nouveau PA est ajouté
End If
Next
FIN_PA:
Je vous remercie pour votre aide :).
Bonjour et bienvenue sur le forum.
Par souci de clarté utilise le bouton </> ci dessus pour mettre ton code. Ensuite, ça aiderait ssi tu disais sur quelle ligne se situe l'erreur.
Daniel
Merci pour les précisions Daniel ^^
L'erreur est indiquée à la ligne :
workbookPA.Sheets("PA filtrés").Range("A" & workbookPA.Sheets("PA filtrés").Range("A1").End(xlDown).Row + 1).Value = workbookBI.Sheets("Liste PA filtrée pour ASN").Range("B" & k).ValueLouis
A mon avis, deux possibilités. Soit k=0 soit la colonne A est vide, au moins en partie.
Daniel
Merci Daniel !
C'était bien la colonne A vide qui posait problème...
Je ne sais pas si je dois me réjouir d'avoir réussi à solutionner mon problème grâce à vous ou si je dois me sentir idiot d'être tombé dans une erreur pareille ^^
Dans tous les cas, merci et passez une bonne journée :)
Louis