Supprimer une ligne lorsque toute la ligne ne contient pas un mo
Candice
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
J'aimerai supprimer les lignes d'un tableau EXcel lorsque les lignes ne contiennent pas un mot. Le mot en question ne se trouve pas dans une colonne précise, il faut donc regarder toutes les cellules de la ligne pour voir si on supprime cette ligne ou non.
Un grand merci d'avance pour votre aide,
Candice
J'aimerai supprimer les lignes d'un tableau EXcel lorsque les lignes ne contiennent pas un mot. Le mot en question ne se trouve pas dans une colonne précise, il faut donc regarder toutes les cellules de la ligne pour voir si on supprime cette ligne ou non.
Un grand merci d'avance pour votre aide,
Candice
A voir également:
- Supprimer une ligne lorsque toute la ligne ne contient pas un mo
- Supprimer rond bleu whatsapp - Guide
- Partager photos en ligne - Guide
- Aller à la ligne excel - Guide
- Mètre en ligne - Guide
- Supprimer une page word - Guide
1 réponse
Bonjour,
Macros à adapter :
Pour masquer les lignes ou apparait le mot Pingouin :
1- si le mot est seul dans la cellule :
2- si le mot est dans une cellule à l'intérieur d'une phrase :
par exemple : "Le pingouin est sur la banquise"
Pour supprimer, il faut faire la boucle à l'envers et remplacer .Hidden = True par .Delete, comme ceci :
1- si le mot est seul dans la cellule :
2- si le mot est dans une cellule à l'intérieur d'une phrase :
par exemple : "Le pingouin nage dans l'eau"
A noter : l'écriture :
Cordialement,
Franck
Macros à adapter :
Pour masquer les lignes ou apparait le mot Pingouin :
1- si le mot est seul dans la cellule :
Sub MasqueLignes1() Dim Lig As Long, DrLig As Long, monMot As String monMot = "Pingouin" With Sheets("Feuil1") ' A Adapter le nom de la feuille DrLig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For Lig = 2 To DrLig If WorksheetFunction.CountIf(.Rows(Lig), monMot) > 0 Then .Rows(Lig).Hidden = True Next Lig End With End Sub
2- si le mot est dans une cellule à l'intérieur d'une phrase :
par exemple : "Le pingouin est sur la banquise"
Sub MasqueLignes2() Dim Lig As Long, DrLig As Long, monMot As String monMot = "Pingouin" With Sheets("Feuil1") ' A Adapter le nom de la feuille DrLig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For Lig = 2 To DrLig If WorksheetFunction.CountIf(.Rows(Lig), "*" & monMot & "*") > 0 Then .Rows(Lig).Hidden = True Next Lig End With End Sub
Pour supprimer, il faut faire la boucle à l'envers et remplacer .Hidden = True par .Delete, comme ceci :
1- si le mot est seul dans la cellule :
Sub MasqueLignes1() Dim Lig As Long, DrLig As Long, monMot As String monMot = "Pingouin" With Sheets("Feuil1") ' A Adapter le nom de la feuille DrLig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For Lig = DrLig To 2 Step - 1 If WorksheetFunction.CountIf(.Rows(Lig), monMot) > 0 Then .Rows(Lig).Delete Next Lig End With End Sub
2- si le mot est dans une cellule à l'intérieur d'une phrase :
par exemple : "Le pingouin nage dans l'eau"
Sub MasqueLignes2() Dim Lig As Long, DrLig As Long, monMot As String monMot = "Pingouin" With Sheets("Feuil1") ' A Adapter le nom de la feuille DrLig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For Lig = DrLig To 2 Step - 1 If WorksheetFunction.CountIf(.Rows(Lig), "*" & monMot & "*") > 0 Then .Rows(Lig).Delete Next Lig End With End Sub
A noter : l'écriture :
DrLig = .Columns(1).Find("*", , , , xlByColumns, xlPrevious).Rowsuppose que la colonne A (Columns(1)) est, au moins, la plus remplie...
Cordialement,
Franck