Objet requis Err 424

Résolu
Shadorb Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -  
Shadorb Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

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.Row
ne 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

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Pour supprimer les lignes, il faut aller de la dernière vers la première !
0
Shadorb Messages postés 53 Date d'inscription   Statut Membre Dernière intervention  
 
Je craint que ça ne change pas le problème actuel.
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
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
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780 > melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour 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)
0
Shadorb Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
Oui 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 :)
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780 > Shadorb Messages postés 53 Date d'inscription   Statut Membre Dernière intervention  
 
Une des solutions consiste à utiliser un offset(1) pour le test et pour la suppression.
0