Supprimer ligne

Résolu
lugop Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
lugop Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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. lugop Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonjour Jordane45,

      J'ai essayé cette macro mais cela ne fonctionne pas, la ligne n'est pas supprimée.
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > lugop Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
         
        1 - 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. lugop Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci beaucoup, ci-joint le lien : https://www.cjoint.com/?3LcqCYnPQJL
        0
  2. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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. lugop
       
      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
      1. lugop Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   > lugop
         
        Bonjour,

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