Supprimer toutes les lignes contenant le mot "Representative"

josanche

XLDnaute Occasionnel
Bonjour,

J'aurais besoin de votre aide. Je voudrais savoir comment on fait via un macro ou une autre fonction excel pour supprimer toutes les lignes du fichier excel contenant le mot "Representative" en sachant que les lignes sont du textes ! J'aimerais un macro qui analyse ligne par ligne et supprime chaque ligne de texte contenant le mot "Representative"

Merci pour votre aide

Cordialement
 

Pièces jointes

  • Echantillon.xlsx
    11.1 KB · Affichages: 233
  • Echantillon.xlsx
    11.1 KB · Affichages: 237
  • Echantillon.xlsx
    11.1 KB · Affichages: 262

JNP

XLDnaute Barbatruc
Re : Supprimer toutes les lignes contenant le mot "Representative"

Bonsoir Josanche et bienvenue :),
A tester
Code:
Sub test()
Dim I As Integer
Application.ScreenUpdating = False
For I = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
If Range("A" & I).Value Like "*Representative*" Then Rows(I).Delete
Next I
Application.ScreenUpdating = True
End Sub
Bonne suite :cool:
 

david84

XLDnaute Barbatruc
Re : Supprimer toutes les lignes contenant le mot "Representative"

Bonjour,
à tester :
Code:
Sub test()
Dim obj, resultat, DerLig&, i&
Set obj = CreateObject("vbscript.regexp")
DerLig = Range("A" & Rows.Count).End(xlUp).Row
For i = DerLig To 1 Step -1
  obj.Pattern = ".*Representative.*"
    If obj.test(Cells(i, 1)) = True Then Cells(i, 1).Delete shift:=xlUp
  Next i
End Sub
A+
 
Dernière édition:

choupi_nette

XLDnaute Occasionnel
Re : Supprimer toutes les lignes contenant le mot "Representative"

Bonjour,
Sinon avec un prompt qui demande quel mot supprimer, ca peut rendre service

Code:
Sub suppr()
Dim cellRecherche As Range, Mot As String
Mot = InputBox("Mot à rechercher", "Effacement ligne")
Set cellRecherche = ActiveSheet.Cells.Find(Mot, , , xlPart)
While Not cellRecherche Is Nothing
cellRecherche.EntireRow.Delete
Set cellRecherche = ActiveSheet.Cells.Find(Mot, , , xlPart)
Wend
End Sub
 

Gorfael

XLDnaute Barbatruc
Re : Supprimer toutes les lignes contenant le mot "Representative"

Salut josanche et le forum
une macro du style :
Code:
Sub Macro1()
Dim Cel As Range
Do
    Set Cel = Cells.Find(What:="Representative", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, _
                    SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True, SearchFormat:=False)
    If Cel Is Nothing Then
        Exit Do
    Else
        Rows(Cel.Row).Delete
    End If
Loop
End Sub
devrait convenir
A+
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Supprimer toutes les lignes contenant le mot "Representative"

Bonsoir,

Méthode rapide: 0,15 sec pour 20.000 lignes (20 sec pour la méthode traditionnelle)

Code:
Sub supLignesRapide2()
  Application.ScreenUpdating = False
  a = Range("A1:A" & [A65000].End(xlUp).Row)
  For i = LBound(a) To UBound(a)
    If a(i, 1) Like "*Representative*" Then a(i, 1) = "sup" Else a(i, 1) = 0
  Next i
  Columns("b:b").Insert Shift:=xlToRight
  [B1].Resize(UBound(a)) = a
  [A1].CurrentRegion.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess
  On Error Resume Next
  Range("B1:B65000").SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete
  Columns("b:b").Delete Shift:=xlToLeft
End Sub

JB
 

Pièces jointes

  • Copie de Echantillon-1.xls
    39.5 KB · Affichages: 406
Dernière édition:

steuf999

XLDnaute Nouveau
Re : Supprimer toutes les lignes contenant le mot "Representative"

Bonjour à tous !

J'ai un peu le même problème mais je n'arrive pas à m'en sortir...
Je souhaiterais supprimer les lignes où les cellules de la colonne F contiennent le mot FAUX.
J'ai essayé :

Sheets("Liste").Select
Range("F12").Select
For r = 1 To Range("F12").End(xlDown).Row
If ActiveCell = "FAUX" Then Rows(r).Delete
Next r

Mais bon rien ne marche ....

Merci beaucoup pour votre aide !
 

Pièces jointes

  • Supp_lign.xlsx
    24.4 KB · Affichages: 232

JM-OFF

XLDnaute Nouveau
Bonjour,

Je me suis servi du code de Gorfael qui marchait dans mon cas.

Cependant, maintenant que j’ai trouvé le mot disons « carotte », comment faut-il faire pour rechercher le mot « navet » etc. ?

Merci d’avance pour vos conseils !
 

JM-OFF

XLDnaute Nouveau
Peut être me suis-je mal exprimé.

Les solutions qui ont étés apportées plus haut permettent de rechercher un seul terme.

Je recherche moi une macro qui me permettra de rechercher un MOT1, puis un MOT2, puis un MOT3.

J’ai essayé en rajoutant « MOT1 » & « MOT2 » mais échec. J’ai également essayé de recopier, à la suite, la même formule en remplaçant bien sûr « représentative » par un autre terme mais cela ne semble pas convenir.
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Styv17,

juste une piste :

If la ligne ne contient pas "Precious Alloy" Then
**If la ligne contient "Rich" Alors Rows(lig).Delete
End If
(les étoiles sont pour l'indentation ; à remplacer par des espaces)

attention : comme il s'agit d'une suppression de lignes,
tu dois « balayer » les lignes dans une boucle de bas
en haut ; c'est obligatoire, pour ne pas perturber le
compteur de boucle (= variable-indice du For .. Next).

n'oublie pas d'utiliser le gel de la mise à jour écran :

Application.ScreenUpdating = False (à placer
avant la boucle For .. Next)


soan
 
Dernière édition:

Statistiques des forums

Discussions
312 024
Messages
2 084 718
Membres
102 638
dernier inscrit
TOTO33000