Bonjour,
au sujet du message : http://www.developpez.net/forums/d93...l/#post5289065


Après une longue interruption, je suis amené à développer sur le produit cité. Il s'agit de traiter les fichiers logs afin d'extraire les lignes utiles; le fichier source contient ';' comme séparateur du champ. J'ouvre le fichier source grâce à une boîte de dialogue; je me suis inspiré du code proposé dans ce Forum. Je l'enregistre au format excel d'où les données sont reparties en colonnes. Je procède à la suppression des lignes inutiles grâce au code ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
29
30
31
32
33
34
35
36
37
38
Sub M_Filters()
'
' M_filters Macro
'
 
'
'Dim scritere As Variant
 
'V1 Exemple de données "(AA123BB,456)"; la chaîne Alphanumérique peut varier en longeur.
Dim strPattern As String: strPattern = "\([A-Z0-9]+,[0-9]+\)" 'V1 Exemple de données "(AA123BB,456)"
 
'V2
'Dim strPattern As String: strPattern = "[\(A-Z0-9*\,0-9*\)]" 
 
'MsgBox ("La plage utilisée est " & Selection)
 
   'Supprimer les alertes de niveau 1
    Selection.AutoFilter Field:=3, Criteria1:="stage1"
    Selection.EntireRow.Delete
   ' ActiveSheet.AutoFilterMode = False
 
 
    'Supprimer les alertes de nature "RWI"
    Selection.AutoFilter Field:=2, Criteria1:="RWI*"
    Selection.EntireRow.Delete
    'ActiveSheet.AutoFilterMode = False
 
 
 'Supprimer les indicatifs de style alpha,number
    Selection.AutoFilter Field:=4, Criteria1:=strPattern
    Selection.EntireRow.Delete
 
    'Supprimer les alertes non contenues dans des parenthèses
     'Selection.AutoFilter Field:=4, Criteria1:="<>(*)"
     'Selection.EntireRow.Delete
    ' ActiveSheet.AutoFilterMode = False
 
 End Sub
J'ai du mal à faire fonctionner "strPattern" ci-dessus; j'ai découvert "RegExp" seulement hier sur les pages Web et je ne sais pas si je peux l'utiliser dans des cas d'Autofilters en tant que critère.


Toute suggestion de votre part serait bienvenue. En vous remerciant d'avance.

Bien cordialement,
Rama