Bonjour,
Il reste également la solution du filtre avancé d'excel avec une zone de critère simple contenant les deux textes les uns en dessous des autres ou avec un critère nommé (calculé) dont la formule sera
=OU(GAUCHE(B2;NBCAR("Test identification : "))="Test identification : ";GAUCHE(B2;NBCAR("Result "))="Result ")
Cette formule permet de filtrer les lignes commençant pas 'Test identification : ' ou 'Result '
S'il faut sélectionner celles qui ne commence pas par ces chaînes de caractères, il faut inverser le résultat booléen par la fonction NON
Soit
=NON(OU(GAUCHE(B2;NBCAR("Test identification : "))="Test identification : ";GAUCHE(B2;NBCAR("Result "))="Result "))
en VBA
=OR(LEFT(B2,LEN("Test identification : "))="Test identification : ",LEFT(B2,LEN("Result "))="Result ")
Dans cet exemple, les données commencent en A1 (ligne 1, les étiquettes de colonnes et en colonne B les textes à chercher)
Procédure de suppression des données
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Sub DeleteRowsByAdvancedFilter(ByVal areaData As Range, ByVal FormulaCriteria As String)
' Author : Philippe Tulliez (Http://philippe.tulliez.be)
' Date : 21/11/2015 (v 1.0)
' Arguments
' areaData (Objet) - Plage des données (Etiquettes de colonnes + données
' FormulaCriteria (String) - Formule à placer dans la zone des critères
' Déclaration variable
Dim areaCriteria As Range
' Zone des critères 2 colonnes à droite de la zone des données
With areaData
Set areaCriteria = areaData.Offset(columnoffset:=.Columns.Count + 1).Resize(2, 1)
End With
' Placement des critères (Etiquettes de colonne + critères calculés)
areaCriteria(1) = "_fn_": areaCriteria(2).Formula = FormulaCriteria
'
With areaData
' Filtre les données
On Error GoTo ExitSub
.AdvancedFilter xlFilterInPlace, areaCriteria
' Suppression des lignes filtrées sans la première ligne (Etiquettes de colonnes)
.Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
ExitSub:
areaData.Worksheet.ShowAllData ' Efface le filtre
On Error GoTo 0
areaCriteria.Clear ' Suppression de la zone des critères
Set areaData = Nothing: Set areaCriteria = Nothing
End Sub |
Partager