Supprimer ligne SI un mot est présent
Résolu
Ikarytos
Messages postés
38
Statut
Membre
-
Ikarytos Messages postés 38 Statut Membre -
Ikarytos Messages postés 38 Statut Membre -
Bonjour,
Voilà quelque jours que j'essaie de faire un fichier m'aidant à démasquer des infractions parmi des log's d'action bref.
Chaque ligne est analysée avec des fonctions SI par apport à d'autre ligne, le problème est qu'il y a des lignes parasites qui font échouer le résultat.
Est-il possible de supprimer ces lignes avec une condition par exemple que le mot « domicile » s'y trouve parmi d'autre dans la ligne ?
Espérant avoir été assez précis, je vous remercie d'avance
Voilà quelque jours que j'essaie de faire un fichier m'aidant à démasquer des infractions parmi des log's d'action bref.
Chaque ligne est analysée avec des fonctions SI par apport à d'autre ligne, le problème est qu'il y a des lignes parasites qui font échouer le résultat.
Est-il possible de supprimer ces lignes avec une condition par exemple que le mot « domicile » s'y trouve parmi d'autre dans la ligne ?
Espérant avoir été assez précis, je vous remercie d'avance
A voir également:
- Supprimer ligne SI un mot est présent
- Supprimer rond bleu whatsapp - Guide
- Partager photos en ligne - Guide
- Trousseau mot de passe iphone - Guide
- Supprimer page word - Guide
- Supprimer mot de passe windows 10 - Guide
5 réponses
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
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
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.
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
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question