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   -
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.

A voir également:

2 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
0
smaret Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
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 :-))
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
re

j'ai fait une modif à la ligne

DerLig = .Range(colcritere & 65536).End(xlUp).Row
0
smaret Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Est ce que ce changement supprime la cel. dans un autre classeur ?
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.
0