[VB Excel] Suppression de ligne sur critère

Résolu/Fermé
Lalence Messages postés 8 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 26 août 2007 - 12 mars 2007 à 17:21
allfrede Messages postés 6 Date d'inscription jeudi 12 mai 2011 Statut Membre Dernière intervention 20 mai 2011 - 12 mai 2011 à 10:25
Bonjour,
Je souhaiterais intégrer une fonction de tri/extraction dans une macro Excel :
. le programme irait tester la valeur d'une cellule
. si cette valeur est différente de celle souhaitée, la ligne est supprimée
Comment pourrai-je faire pour programmer une boucle itérative de la ligne x à la ligne y ?

D'avance un grand merci !

Laz
A voir également:

3 réponses

Kobaya Messages postés 282 Date d'inscription vendredi 28 mai 2004 Statut Membre Dernière intervention 10 janvier 2008 214
12 mars 2007 à 23:46
bonjour lalence,

je te propose non pas une fonction, mais une procédure :
Public Sub KillLigne(Valeur As String, Colonne As Integer, FirstLine As Long, LastLine As Long)
     ' Valeur      : valeur à comparer au contenu de la cellule
     ' Colonne    : colonne où se trouve la valeur à vérifier
     ' FirstLine  : première ligne à vérifier
     ' LastLine   : dernière ligne à vérifier
   
     Dim lngL As Long
     
     Application.ScreenUpdate = False
     Application.DisplayAlerts = False
     For lngL = LastLine To FirstLine Step -1
          If Cells(lngL, Colonne).Value <> Valeur Then
               Rows(lngL).Delete Shift:=xlShiftUp
          End If
     Next lngL
     Application.DisplayAlerts = True
     Application.ScreenUpdate = True
End Sub

je ne l'ai pas testé, vu que je n'ai plus Excel (je suis passé à OpenOffice), mais ça devrait marcher, et en tout cas, te donner des pistes pour faire la fonction/procédure dont tu as besoin.
4
derout Messages postés 23 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 28 décembre 2009 1
11 mai 2009 à 16:52
Bonjour Kobaya,

Je désirerai créer une macro relativement similaire qui supprimerait la ligne si celle-ci comporte une cellule dans laquelle il est écrit "mauvais"

Voici mon fichier:

https://www.cjoint.com/?fngEtEKFMi


Voici comment j'ai addapté la macro que tu as proposé à lalence:

Public Sub KillLigne(Valeur As String, Colonne As Integer, FirstLine As Long, LastLine As Long)
Dim lngL As Long

Application.ScreenUpdate = False
Application.DisplayAlerts = False
For lngL = LastLine To FirstLine Step -1
If Cells(2, 7).Value = mauvais Then
Rows(lngL).Delete Shift:=xlShiftUp
End If
Next lngL
Application.DisplayAlerts = True
Application.ScreenUpdate = True
End Sub

J'ai dû omettre quelque chose car la macro n'est pas reconnue.

Si tu vois où se trouve l'erreur, je te serai reconnaissant de me le préciser.

merci par avance,


Derout
0
Bonjour,
Je debute (depuis 1h) en VB. mais j'aimerais faire la meme operation mais sur des colonne.
A savoir un total en bas de colonne et si la somme est egale a 0, supprimer la colonne.

Merci par avance
0
allfrede Messages postés 6 Date d'inscription jeudi 12 mai 2011 Statut Membre Dernière intervention 20 mai 2011
12 mai 2011 à 10:25
bonjour,

je suis dans la même galère!

je souhaiterais supprimer une ligne si une cellule de la colonne A est supérieur à 600 000.

Quelqu'un peut il m'aider!

Merci d'avance
0