Macro pour supprimer une ligne selon critères
smaret
Messages postés
6
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonjour,
Je débute dans l'élaboration des macros.
Je voudrais créer une macro qui supprime la ligne en fonction de critères repris dans une colonne (ex colonne F).
L'objectif est de supprimer les lignes qui contiennent les mots LTVA, LD, production et vignette dans la colonne F. Les cellules peuvent contenir plusieurs mots (ex. vente vignette), la ligne devra être supprimée, car elle contient le mot vignette.
D'anvance merci pour votre aide.
Je débute dans l'élaboration des macros.
Je voudrais créer une macro qui supprime la ligne en fonction de critères repris dans une colonne (ex colonne F).
L'objectif est de supprimer les lignes qui contiennent les mots LTVA, LD, production et vignette dans la colonne F. Les cellules peuvent contenir plusieurs mots (ex. vente vignette), la ligne devra être supprimée, car elle contient le mot vignette.
D'anvance merci pour votre aide.
A voir également:
- Macro supprimer ligne selon critère
- Supprimer rond bleu whatsapp - Guide
- Partager photos en ligne - Guide
- Supprimer page word - Guide
- Supprimer pub youtube - Accueil - Streaming
- Mètre en ligne - Guide
2 réponses
bonjour
Changer les valeurs des constantes
Completer le tableau des mots clés (en majuscules)
Est ce que ça répond a la question
Option Explicit
Option Base 1
Sub SupprimeLigne()
Const NomFeuille = "Feuil1"
Const colcritere = "F"
Const PremLig = 1
Dim TabMotsCles
Dim s As String
Dim Lig As Long, DerLig As Long, NumMot As Long, NbMots As Long
Dim trouve As Boolean
' initalisations
TabMotsCles = Array("LTD", "LTVA", "VIGNETTE", "PRODUCTION")
NbMots = UBound(TabMotsCles, 1)
Application.ScreenUpdating = False
With Sheets(NomFeuille)
' dernière ligne
DerLig = .Range(colcritere & 65536).End(xlUp).Row
' traitement de la colonne colcritere
For Lig = DerLig To PremLig Step -1
' met en majuscule la cellule
s = UCase(.Range(colcritere & Lig))
trouve = False
' recherche d'un mot cle dans s
For NumMot = 1 To NbMots
If InStr(1, s, TabMotsCles(NumMot)) > 0 Then
trouve = True
Exit For
End If
Next NumMot
' si trouve mot cle supprimer la ligne lig
If trouve Then
.Range(colcritere & Lig).EntireRow.Delete
End If
Next Lig
End With
Application.ScreenUpdating = True
End Sub
Private Sub CommandButton1_Click()
Call SupprimeLigne
End Sub
Changer les valeurs des constantes
Completer le tableau des mots clés (en majuscules)
Est ce que ça répond a la question
Un grand merci :-)
En principe, le classeur contenant la macro ne va pas être modifié. Je voudrai activer la macro sur un autre classeur dont le nom peut changer (ex. 20120321-Rapport journalier)
Est il possible d'activer la macro sur un autre classeur ouvert ou actif.
Avec cette solution, je vais pouvoir terminer ma macro.
D'avance, je te remercie pour ton aide :-))
j'ai fait une modif à la ligne
DerLig = .Range(colcritere & 65536).End(xlUp).Row
J'ai essayé la macro avec un autre classeur ouvert et les cellules de la collone F avec les critères définis n'ont pas été supprimées.