Objet requis Err 424

Résolu
Shadorb Messages postés 60 Statut Membre -  
Shadorb Messages postés 60 Statut Membre -
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

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