Macro pour supprimer des lignes sous conditions

frisco75

XLDnaute Nouveau
Bonjour,

Voici ma recherche :

Je voudrais créer une macro où Excel analyse les cellules d'une colonne donnée et si des cellules comportent le texte "TOTO", alors les lignes qui supportent ces cellules soient effacées.

Merci.

François
:)
 

Dull

XLDnaute Barbatruc
Re : Macro pour supprimer des lignes sous conditions

Salut frisco75 et BienVenue, le Forum

Essaye ce code

Sub EssAi()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 2 Step -1
If Cells(i, 1) like "*Toto*" Then Rows(i).Delete
Next i
End Sub
Attention à la Casse TOTO <>toto sinon écrire

Sub EssAi()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 2 Step -1
If Cells(i, 1) like "*Toto*" or Cells(i, 1) like "*toto*" or Cells(i, 1) like "*TOTO*"Then Rows(i).Delete
Next i
End Sub
Ou mettre en tête de Module
Code:
Option Compare Text

Edit:
Salut Jean-Noël :) Eh oui Bonne Habitude à prendre dès le départ ...mais il est nouveau...;)

Bonne Journée
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Macro pour supprimer des lignes sous conditions

Salut Dull :),
Edit: Salut Jean-Noël :) Eh oui Bonne Habitude à prendre dès le départ ...mais il est nouveau...;)
Et oui, c'est surtout que c'est un sujet très récurent :rolleyes:...
Une autre alternative à ta série de Like :p
Code:
If Not Evaluate("=ISERROR(SEARCH(""toto"", A" & i & "))") Then Rows(i).Delete
Bonne journée :cool:
 

Si...

XLDnaute Barbatruc
Re : Macro pour supprimer des lignes sous conditions

Salut

comme dirait l'ami Dull ;): "deMotsenMaux-deSupprimeràEffacer" on peut tenter :
Code:
Option Compare Text
Sub EssAi()
  Dim l As Long
  For l = 2 To Cells(Rows.Count, "A").End(xlUp).Row
    If Cells(l, "A") = "toto" Then Rows(l).ClearContents
  Next
End Sub
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Macro pour supprimer des lignes sous conditions

Bonjour le fil

Alors on se calme sur ce fil !
J'ai supprimé tous les posts sans rapport avec la question.

Par contre merci de lire la charte frisco75 car n'étant pas le modo sur ce forum tu n'en connais peut-être pas les us et coutumes

*********************

Sinon la réponse donnée par Dull fonctionne à merveille si elle est bien appliquée. Je l'ai utilisée un paquet de fois
 

Paritec

XLDnaute Barbatruc
Re : Macro pour supprimer des lignes sous conditions

Bonjour
sur un autre forum il a fait une demande qui est différente, et là c'est pour supprimer les lignes qui ont un #ref , alors la fiabilité des réponses de l'auteur de la demande est à lire, mais, pas à considérer.
bonne journée
Papou:)
 
Dernière édition:

Fouding

XLDnaute Nouveau
Re : Macro pour supprimer des lignes sous conditions

Bonsoir à tous.

Le code ci-dessous ne semble pas correct car je n'ai pas le résultat attendu (rien ne se passe ..)

Voici que je veux faire :
J'éxécute la macro depuis la feuille "Sheet1" : la traitement concerne la feuille "Réservé"
Je souhaite que de la ligne 808 à 1592, celles contenant en colonne B le texte "Divers" se vident

Dim i As Long
Sheets("Réservé").Select
For i = Range("A1592").End(xlUp).Row To 808 Step -1
If Cells(i, 2) Like "Divers" Then Rows(i).Delete
Next i

Merci de votre aide
 

Fouding

XLDnaute Nouveau
Re : Macro pour supprimer des lignes sous conditions

J'ai trouvé tout seul en cherchant :)

With Sheets("Réservé")
For Lig = .Cells(.Rows.Count, 2).End(xlUp).Row To 802 Step -1
If .Cells(Lig, 2).Value = "Divers" Then .Rows(Lig).Delete
Next Lig
End With

En revanche, comment ne pas "supprimer" la ligne, mais simplement la vider ?

Merci de votre aide
 

Paritec

XLDnaute Barbatruc
Re : Macro pour supprimer des lignes sous conditions

Bonjour Fouding le forum
Tu dis avoir trouvé, oui mais la première macro cherche la première ligne remplie dans la colonne A et la seconde macro dans la colonne B alors déjà là il faut savoir ce que tu veux ???
Mais considérant que tu veux traiter la colonne B la deuxième doit être la bonne??
ensuite le point devant Rows.count est en trop, et la variable doit être déclarée en long pour être moins gourmande, car là sans déclaration elle est systématiquement considérée comme une variant
voilà donc le code modifié pour effacer et non supprimer les lignes
a+
Papou:eek:

Code:
Dim Lig&
With Sheets("Réservé")
           For Lig = .Cells(Rows.Count, 2).End(xlUp).Row To 802 Step -1
                    If .Cells(Lig, 2) = "Divers" Then .Rows(Lig).Clearcontents
           Next Lig
End With
 
Dernière édition:

Fouding

XLDnaute Nouveau
Re : Macro pour supprimer des lignes sous conditions

Merci beacoup. ça marche nickel.

Pour ta remarque, je pensais que Range("A1592") traitait l'ensemble des lignes, et que seul Cells(i, 2) traitait la colonne B. J'ai noté mon erreur ... Méa maxima culpa ....

Bonne jounrée
 

Paritec

XLDnaute Barbatruc
Re : Macro pour supprimer des lignes sous conditions

Bonjour Fouding le forum
Non il semble que tu n'as pas compris justement quand tu écris "Range("A1590").end(xlup).row"
cela signifie que tu cherches la première ligne que tu as de remplie en partant de la cellule A1590 et en remontant jusqu'à avoir une ligne remplie. donc dans la colonne A
alors que "Cells(Rows.Count, 2).end(xlup).row" signifie que tu cherches la première cellule remplie de la colonne 2 en partant du bas de la dernière ligne de ta feuille excel et en remontant
Voilà à + et Joyeux Noël
Papou:eek:
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo