Rechercher texte dans cellule et suppression
Résolu
Morbonnat
Messages postés
19
Statut
Membre
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je viens vous demander de l'aide car cela fait 2 jours que je suis dessus et je suis sur le point d'exploser !!!
Sous Excel, je voudrais faire une macro pour supprimer les lignes qui contienne un certain texte. Il me faut donc recherche ce texte dans la colonne A, et s'il est présent supprimé la ligne entière. Cela pour 2 mots différent.
J'ai créer cette macro : (Dans ce cas, il faut supprimer les ligne dont la cellule A contient le mot "president" ou le mont "directeur". Si la cellule contient "président d'honneur" ou "directeur général" je veux que les lignes soient supprimée aussi...)
Do
If Cells.Find(What:="president").Activate Then
selection.EntireRow.Delete
Else: Do
Cells.Find(What:="directeur").Activate
selection.EntireRow.Delete
Loop
End If
Loop
End Sub
Le probleme est que une fois que le mot "president" n'est plus trouvé, il ne cherche pas s'il il reste des cellules avec "directeur". Il m'affiche "erreur d'execution '91'...
HELP !!!
Je viens vous demander de l'aide car cela fait 2 jours que je suis dessus et je suis sur le point d'exploser !!!
Sous Excel, je voudrais faire une macro pour supprimer les lignes qui contienne un certain texte. Il me faut donc recherche ce texte dans la colonne A, et s'il est présent supprimé la ligne entière. Cela pour 2 mots différent.
J'ai créer cette macro : (Dans ce cas, il faut supprimer les ligne dont la cellule A contient le mot "president" ou le mont "directeur". Si la cellule contient "président d'honneur" ou "directeur général" je veux que les lignes soient supprimée aussi...)
Do
If Cells.Find(What:="president").Activate Then
selection.EntireRow.Delete
Else: Do
Cells.Find(What:="directeur").Activate
selection.EntireRow.Delete
Loop
End If
Loop
End Sub
Le probleme est que une fois que le mot "president" n'est plus trouvé, il ne cherche pas s'il il reste des cellules avec "directeur". Il m'affiche "erreur d'execution '91'...
HELP !!!
A voir également:
- Rechercher texte dans cellule et suppression
- Forcer suppression fichier - Guide
- Excel cellule couleur si condition texte - Guide
- Rechercher ou entrer l'adresse - Guide
- Rechercher et remplacer word - Guide
- Rechercher image - Guide
2 réponses
Bonjour,
ci dessous proposition qui supprime les mots voulus (autant que tu veux) et ceux qui suivent les mots choisis
par exemple: "président" mais aussi "président parachute doré" ou "camarade syndiqué" (pour faire contre poids) ;-)
Sub virerleschefs()
Dim tablo()
Dim cptr1 As Long, cptr2 As Long, nbre as long, lig As Long
Dim mot As String
tablo = Array("président", "directeur", "mon général", "camarade", "tonton")
Application.ScreenUpdating = False
While cptr1 <= UBound(tablo)
mot = tablo(cptr1) & "*"
nbre = Application.CountIf(Range("A1:A50000"), mot)
For cptr2 = 1 To nbre
lig = Application.Match(mot, Range("A1:A50000"), 0)
Rows(lig).Delete
Next
cptr1 = cptr1 + 1
Wend
End Sub
si tu veux enlever aussi avant le mot. Par exemple "mon cher tonton"
mot="*" & tablo(cptr1) & "*"
(ton système Find et gestion d'erreur est super-casse-g...)
bonne fin de WE
Michel
ci dessous proposition qui supprime les mots voulus (autant que tu veux) et ceux qui suivent les mots choisis
par exemple: "président" mais aussi "président parachute doré" ou "camarade syndiqué" (pour faire contre poids) ;-)
Sub virerleschefs()
Dim tablo()
Dim cptr1 As Long, cptr2 As Long, nbre as long, lig As Long
Dim mot As String
tablo = Array("président", "directeur", "mon général", "camarade", "tonton")
Application.ScreenUpdating = False
While cptr1 <= UBound(tablo)
mot = tablo(cptr1) & "*"
nbre = Application.CountIf(Range("A1:A50000"), mot)
For cptr2 = 1 To nbre
lig = Application.Match(mot, Range("A1:A50000"), 0)
Rows(lig).Delete
Next
cptr1 = cptr1 + 1
Wend
End Sub
si tu veux enlever aussi avant le mot. Par exemple "mon cher tonton"
mot="*" & tablo(cptr1) & "*"
(ton système Find et gestion d'erreur est super-casse-g...)
bonne fin de WE
Michel
J'ai avancé depuis le dernier message. Le code suivant me permet de supprimé les lignes que je veux cependant la macro se termine par un message d'erreur ?!? Ceci m'enpéche d'ajouter un troisième mot a cherche.
Je ne comprend pas l'érreur étant donné que les 2 lignes sont identique !!!
Je vous laisse ici mon code pour que vous puissiez le critquer...:
Sub select_supr()
Do
On Error GoTo A1
Cells.Find(What:="directeur").Activate
selection.EntireRow.Delete
Loop
A1:
Do
On Error GoTo B1
Cells.Find(What:="président").Activate
selection.EntireRow.Delete
Loop
B1:
End Su
Je ne comprend pas l'érreur étant donné que les 2 lignes sont identique !!!
Je vous laisse ici mon code pour que vous puissiez le critquer...:
Sub select_supr()
Do
On Error GoTo A1
Cells.Find(What:="directeur").Activate
selection.EntireRow.Delete
Loop
A1:
Do
On Error GoTo B1
Cells.Find(What:="président").Activate
selection.EntireRow.Delete
Loop
B1:
End Su