Supprimer ligne

Résolu
Bonjour,

Je souhaiterai savoir comment je peux supprimer une ligne automatiquement sous excel 2003 lorsque dans la cellule E s'affiche #REF!
Je vous remercie par avance de votre aide.

2 réponses

  1. Modérateur
    Bonjour,
    En VBA cela est facilement réalisable :

    Sub suprRef()
    Dim i as Long
    Dim ColE as Integer
           ColE = 5
    Dim lastRow As Long
    lastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    
    For i = lastRow To 1 Step -1
    valCel = Cells(i, ColE).Formula
    If valCel = "=#REF!" Then
      Debug.Print "Suppression de la ligne :" & i
      Rows(i).Delete
    End If
    
    Next
    
    End Sub
    
    

    0
    1. Bonjour Jordane45,

      J'ai essayé cette macro mais cela ne fonctionne pas, la ligne n'est pas supprimée.
      0
    2. Modérateur
      @lugop1 - Avez vous regardé en mode pas à pas ce qu'elle faisait ? .. les valeurs des différentes variables.... ??

      2 - Pourriez-vous nous mettre à dispo un exemplaire de votre classeur qu'on regarde ?
      (en utilisant le site de dépose : cijoint.com puis en nous collant le lien ici ) ?
      0
  2. Modérateur
    Voilou :

    Sub sbDelete_Rows_IF_Cell_Contains_Error()
    Dim lastRow As Long
        lastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Dim iCntr As Long
    Dim ColE As Integer
         ColE = 5
         
    For iCntr = lastRow To 1 Step -1
    If IsError(Cells(iCntr, ColE)) Then
        Debug.Print "Suppression de la ligne :" & iCntr
        Rows(iCntr).Delete
    End If
    Next
    End Sub
    
    

    0
    1. Merci beaucoup mais je ne peux pas essayer cette macro pour le moment car je suis en arrêt de travail.
      Dès ma reprise, je vous tiendrai au courant.
      Encore merci
      0
    2. @lugopBonjour,

      Enfin de retour, la dernière macro fonctionne très bien. Merci beaucoup
      Bonne année
      0