Macro pour supprimer une ligne selon critères
smaret
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
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 une 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.