Supprimer ligne SI un mot est présent
Résolu/Fermé
Ikarytos
Messages postés
35
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
1 décembre 2019
-
21 août 2013 à 19:27
Ikarytos Messages postés 35 Date d'inscription mercredi 18 janvier 2012 Statut Membre Dernière intervention 1 décembre 2019 - 23 août 2013 à 20:58
Ikarytos Messages postés 35 Date d'inscription mercredi 18 janvier 2012 Statut Membre Dernière intervention 1 décembre 2019 - 23 août 2013 à 20:58
A voir également:
- Supprimer ligne SI un mot est présent
- Supprimer une page word - Guide
- Supprimer mot de passe windows 10 - Guide
- Supprimer compte instagram - Guide
- Aller à la ligne excel - Guide
- Impossible de supprimer un fichier - Guide
5 réponses
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
22 août 2013 à 18:57
22 août 2013 à 18:57
Bonsoir
il manque des précisions, le mot recherché se trouve t-il toujours dans la même colonne?
Dans quelle colonne doit s'applique le contrôle?
En attendant voici un petit bout de code, j'effectue le contrôle sur la colonne 2, changez le N° si ce n'est pas ça "Col=?"
Sub SupprimerLigneParasite()
Application.ScreenUpdating = False
DerLig = Range("A100000").End(xlUp).Row
Col = 2
For Lig = 2 To DerLig
Deb:
Parasite = InStr(1, Cells(Lig, Col), "Domicile", 1)
If Parasite <> 0 Then GoTo LigneSuivante
Cells(Lig, Col).EntireRow.Delete
DerLig = DerLig - 1
If DerLig = 0 Or DerLig < Lig Then Exit Sub
GoTo Deb
LigneSuivante:
Next Lig
End Sub
bonne soirée
cdlt
il manque des précisions, le mot recherché se trouve t-il toujours dans la même colonne?
Dans quelle colonne doit s'applique le contrôle?
En attendant voici un petit bout de code, j'effectue le contrôle sur la colonne 2, changez le N° si ce n'est pas ça "Col=?"
Sub SupprimerLigneParasite()
Application.ScreenUpdating = False
DerLig = Range("A100000").End(xlUp).Row
Col = 2
For Lig = 2 To DerLig
Deb:
Parasite = InStr(1, Cells(Lig, Col), "Domicile", 1)
If Parasite <> 0 Then GoTo LigneSuivante
Cells(Lig, Col).EntireRow.Delete
DerLig = DerLig - 1
If DerLig = 0 Or DerLig < Lig Then Exit Sub
GoTo Deb
LigneSuivante:
Next Lig
End Sub
bonne soirée
cdlt
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
23 août 2013 à 20:36
23 août 2013 à 20:36
bonsoir
Voici, j'ai laissé la boîte de dialogue, car très pratique.
Vous saisissez tous les mots à éliminer séparés par une virgule sans espaces et terminez par une virgule
bonne soirée
cdlt
Voici, j'ai laissé la boîte de dialogue, car très pratique.
Vous saisissez tous les mots à éliminer séparés par une virgule sans espaces et terminez par une virgule
Sub SupprimerLigneParasite3() Application.ScreenUpdating = False Dim Message, Title, MotRecherche Message = "Quel mot ?" Titre = "Supprimer toutes les lignes contenant " MotsRecherches = InputBox(Message, Titre) NbVirgule = UBound(Split(MotsRecherches, ",", , 1)) ReDim Mot(NbVirgule + 1) As String ReDim Virgule(NbVirgule) As String For i = 1 To NbVirgule Mot(i) = Mid(MotsRecherches, 1, InStr(1, MotsRecherches, ",", 1) - 1) MotsRecherches = Right(MotsRecherches, Len(MotsRecherches) - InStr(1, MotsRecherches, ",", 1)) Next i DerLig = Range("A100000").End(xlUp).Row Col = 1 For Lig = 2 To DerLig For i = 1 To NbVirgule Deb: Parasite = InStr(1, Cells(Lig, Col), Mot(i), 1) If Parasite = 0 Then GoTo TesterParasiteSuivant Cells(Lig, Col).EntireRow.Delete DerLig = DerLig - 1 If DerLig = 0 Or DerLig < Lig Then Exit Sub GoTo Deb TesterParasiteSuivant: Next i LigneSuivante: Next Lig End Subça devrait aller
bonne soirée
cdlt
Ikarytos
Messages postés
35
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
1 décembre 2019
12
22 août 2013 à 21:24
22 août 2013 à 21:24
Merci à vous pour votre aide.
C'est toujours dans la première colonne que le contrôle à besoin d'être fait. Et est-il possible d'avoir plusieurs mots clef dans la recherche ?
Par contre j'ai testé le code donné, mais c'est l'inverse qui se toutes les cellules n'ayant pas le mot clef ont été effacé.
En fait c'est toute la ligne en entier contenant le mot clef qui devrait être supprimée.
Désoler si mon explication n'était pas assez compréhensible.
C'est toujours dans la première colonne que le contrôle à besoin d'être fait. Et est-il possible d'avoir plusieurs mots clef dans la recherche ?
Par contre j'ai testé le code donné, mais c'est l'inverse qui se toutes les cellules n'ayant pas le mot clef ont été effacé.
En fait c'est toute la ligne en entier contenant le mot clef qui devrait être supprimée.
Désoler si mon explication n'était pas assez compréhensible.
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
22 août 2013 à 22:03
22 août 2013 à 22:03
Bonsoir
Effectivement, j'ai fait l'inverse, voilà, c'est corrigé.
A chaque lancement du programme, il vous sera demandé de saisir le mot dont la ligne sera supprimée.
bonne soirée
cdlt
Effectivement, j'ai fait l'inverse, voilà, c'est corrigé.
A chaque lancement du programme, il vous sera demandé de saisir le mot dont la ligne sera supprimée.
Sub SupprimerLigneParasite() Application.ScreenUpdating = False Dim Message, Title, MotRecherche Message = "Quel mot ?" Titre = "Supprimer toutes les lignes contenant " MotRecherche = InputBox(Message, Titre) DerLig = Range("A100000").End(xlUp).Row Col = 1 For Lig = 2 To DerLig Deb: Parasite = InStr(1, Cells(Lig, Col), MotRecherche, 1) If Parasite = 0 Then GoTo LigneSuivante Cells(Lig, Col).EntireRow.Delete DerLig = DerLig - 1 If DerLig = 0 Or DerLig < Lig Then Exit Sub GoTo Deb LigneSuivante: Next Lig End Sub
bonne soirée
cdlt
Ikarytos
Messages postés
35
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
1 décembre 2019
12
23 août 2013 à 15:39
23 août 2013 à 15:39
Je vous en remercie infiniment. Le code fonction parfaitement.
Sans vouloir abuser, pour une utilisation optimum, est-il possible de mettre comme dans le premier exemple (sans la boite de dialogue) les mots clef en même temps ?
J'ai essayé plusieurs choses mais rien ne va :
Parasite = InStr(1, Cells(Lig, Col), "Domicile" & "NPA" & "ASSmG", 1)
ou
Parasite = InStr(1, Cells(Lig, Col), "Domicile,NPA,ASSmG", 1)
Parasite = InStr(1, Cells(Lig, Col), "Domicile ;NPA ;ASSmG", 1)
mais rien ne va.
Sans vouloir abuser, pour une utilisation optimum, est-il possible de mettre comme dans le premier exemple (sans la boite de dialogue) les mots clef en même temps ?
J'ai essayé plusieurs choses mais rien ne va :
Parasite = InStr(1, Cells(Lig, Col), "Domicile" & "NPA" & "ASSmG", 1)
ou
Parasite = InStr(1, Cells(Lig, Col), "Domicile,NPA,ASSmG", 1)
Parasite = InStr(1, Cells(Lig, Col), "Domicile ;NPA ;ASSmG", 1)
mais rien ne va.
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
23 août 2013 à 20:03
23 août 2013 à 20:03
Bonsoir
Etant absent de la journée, Je viens de voir votre post, j'essaie de vous faire ça pour ce soir
A+
Etant absent de la journée, Je viens de voir votre post, j'essaie de vous faire ça pour ce soir
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ikarytos
Messages postés
35
Date d'inscription
mercredi 18 janvier 2012
Statut
Membre
Dernière intervention
1 décembre 2019
12
23 août 2013 à 20:58
23 août 2013 à 20:58
Vraiment super, un très grand merci. Je vais pouvoir économiser beaucoup de temps dans mon travail. Encore milles merci.