Objet requis Err 424
Résolu
Bonjour,
Voici le problème (qui doit être bidon), je ne comprend pas pourquoi à cette ligne
Le but de ce programme est de supprimer les cas unique, si le code fournisseur actuel est différent du précèdent, on enlève la ligne actuel sinon on fait rien.
C'est d'autant plus ridicule que j'ai déjà réussi à corriger cette erreur mais là ça passe pas :/
Voici le problème (qui doit être bidon), je ne comprend pas pourquoi à cette ligne
codeActuel = Worksheets(1).range("D" & cellF1.Row).Value Il me dis "objet requis", après debugging il semblerait que cellF1.Rowne correspond à rien.
Le but de ce programme est de supprimer les cas unique, si le code fournisseur actuel est différent du précèdent, on enlève la ligne actuel sinon on fait rien.
codeActuel = Worksheets(1).range("D2").Value
LastLineFeuil1 = Sheets("ART305FZ").range("D" & Rows.Count).End(xlUp).Row
Set RangeF1 = Sheets("ART305FZ").range("D2:D" & LastLineFeuil1)
For Each cellF1 In RangeF1
If (StrComp(Worksheets(1).range("D" & cellF1.Row),fournisseur,vbTextCompare) <> 0) Then
Worksheets(1).range("D" & cellF1.Row).EntireRow.Delete
End If
codeActuel = Worksheets(1).range("D" & cellF1.Row).Value
Next
C'est d'autant plus ridicule que j'ai déjà réussi à corriger cette erreur mais là ça passe pas :/
1 réponse
-
Pour supprimer les lignes, il faut aller de la dernière vers la première !
-
-
bonjour,
en fait tu n'as pas définit ce qu'était cell1
essaie :
Dim cell1 As Range
codeActuel = Worksheets(1).range("D2").Value
LastLineFeuil1 = Sheets("ART305FZ").range("D" & Rows.Count).End(xlUp).Row
Set RangeF1 = Sheets("ART305FZ").range("D2:D" & LastLineFeuil1)
For Each cellF1 In RangeF1
If (StrComp(Worksheets(1).range("D" & cellF1.Row),fournisseur,vbTextCompare) <> 0) Then
Worksheets(1).range("D" & cellF1.Row).EntireRow.Delete
End If
codeActuel = Worksheets(1).range("D" & cellF1.Row).Value
Next -
@melanie1324Bonjour Mélanie
D'où l'intérêt de commencer par chaque module par
Option Explicit
C'est pas Cell1 mais CellF1 :
Dim CellF1 as Range
Mais crains que le problème soit ailleurs (.Delete a pour effet de mettre CellF1 à Nothing) -
@Patrice33740Oui merci, (j'ai trouver un peu avant mais ça me permet de confirmer) c'était effectivement ça le problème dans le cas ou la ligne est supprimer la valeur CellF1.Row n'existe plus.
Par ailleurs je ne vous ai montré que la parti du programme en lui même la déclaration des variables est au dessus :) -
@ShadorbUne des solutions consiste à utiliser un offset(1) pour le test et pour la suppression.
-