Afficher un message
Vieux 27/11/2002, 01h07   #2 (permalink)
@+Thierry
Guest
 
Messages: n/a
Par défaut Re: suppression de lignes en fonction d'un mot

Bonsoir Fabrice,


Pas complet ? combien de lettres ? si il n'y a que le "J" de juillet, la macro détruira toutes les lignes contenant "Juliette", "Janvier", "Jean" enfin tous les mots qui contienne un "J" majuscule ou minuscule.....

De plus si l'on dit à VBA de chercher des valeurs de mois en lui disant de chercher le 7em mois de l'année...... Il ne supprimera pas "Juilliet" ou alors il faut faire une function qui détruise les lignes......... contenant.... des........ Fot_d_Or_to_ graph ! (lol)

Alors j'ai écrit un code en deux étapes..... 1) il "grise" les cellule contenant la "string" tapée en "InputBox"....Il te demande si OK puis il vire les lignes...

Bon c'est pas trop testé car à chaque fois on a un problème avec "EntireRow.Delete" .... (il reste des valeurs non suppriémées en cas de redondance sur lignes adjacentes)

Mais bon dans un premier temps ce code devrait déjà faire une partie du boulot... (100% tiré de l'aide)

Sub ChercherEtDetruire()
Dim RECHERCHE As String
Dim c As Range

RECHERCHE = InputBox("Votre recherche ? (attention aux Majuscules/Minuscules) ")

Set Maplage = Worksheets(1).Range("A1:E50")

With Maplage
Set c = .Find(RECHERCHE, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Interior.Pattern = xlPatternGray50
'c.EntireRow.Delete (et non çà marche pas ici !!!, çà plante le "FindNext" puisque la ligne a été virée

Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

Alerte = MsgBox("Toutes les cellules grisées vont être supprimmées", vbYesNo, "Warning")
If Alerte = vbYes Then
For Each Cell In Maplage
If Cell.Interior.Pattern = xlPatternGray50 Then
Cell.EntireRow.Delete
End If
Next
Else: Alerte = vbNo
Maplage.Select
Selection.Interior.ColorIndex = xlNone
End If
Range("a1").Select
Set Maplage = Nothing
End Sub


Si tu as encore des valeurs non supprimées faut refaire un boucle sur le "If qui cherche des valeurs grisées.... OU alors faut améliorer ce code.....

Bonne nuit
@+Thierry