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.
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
Voici le Maître Mot : RECHERCHE ...
Tu aurais recherché sur le forum "supprimer lignes", tu aurais trouvé moult discussions t'apportant une solution, comme ICI par exemple ...
Bon courage
Bête question mais les Cells(i, 1) correspondent à la colonne A. Les as-tu adaptés à la colonne que tu souhaites (2 pour B, 3 pour C, etc.) ?
De même que Range("A65536") ?
As-tu plus de 65000 lignes à traiter ?
Bon courage
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
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
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
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
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
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
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 ....
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