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.
A voir également:

2 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > 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
lugop Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci beaucoup, ci-joint le lien : https://www.cjoint.com/?3LcqCYnPQJL
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
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
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