[VB Excel] Suppression de ligne sur critère
Résolu
Lalence
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
allfrede Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
allfrede Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
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
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:
- [VB Excel] Suppression de ligne sur critère
- Forcer suppression fichier - Guide
- Aller à la ligne excel - Guide
- Partage de photos en ligne - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
3 réponses
bonjour lalence,
je te propose non pas une fonction, mais une procédure :
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.
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.
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