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.
2 réponses
-
bonjour
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-
Super !! cela fonctionne.
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 :-)) -
-
-