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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
Public Sub SuppLigne()
'declaration de variables
'------------------------
Dim i As Integer ' num ligne
Dim j As Integer ' num colonne
Dim code As String
Dim moncode As String
Dim reg As New VBScript_RegExp_55.RegExp ' declaration d un object vbscript regex
'assignation des valeurs
'-----------------------
j = colonB ' j = colonB je fais appel a ma constante ( voir dans module constante )
'expression reguliere
'--------------------
Set reg = New VBScript_RegExp_55.RegExp ' instance de vbscript regex
reg.Pattern = "^J[A-G]\d{5}" ' expression reguliere format code
'=============================================================================='
'= explication de l'expression reguliere : ='
'= 1ere lettre : J => ^J ='
'= 2eme lettre : lettre entre A et G => [A-G] ='
'= 5 chiffres : => \d{5} ='
'=============================================================================='
Debug.Print reg.Pattern ' affiche dans la fenetre de debuggage
For i = debut To fin ' de ligne 1 a ligne 553 parcours la sheet
' ( debut et fin constante voir module constante )
Debug.Print i
moncode = Cells(i, j).Value 'code=la valeur de cette cellule
code = Replace(moncode, " ", "") 'si moncode dans la string a un espace alors il remplace " " par ""
Debug.Print code ' affiche dans la fenetre de debuggage
If Cells(i, j).Value = "" Then
Debug.Print reg.Test(code) ' affiche dans la fenetre de debuggage
Rows(i).Delete ' si different du code alors je supprime la ligne
Else
If (reg.Test(code) = False) Then ' si le code n'est pas du format de la regex alors sinon passe au suivant
Debug.Print reg.Test(code) ' affiche dans la fenetre de debuggage
Rows(i).Delete ' si different du code alors je supprime la ligne
Else
End If
End If
Next i
MsgBox ("lignes vides ou sans code ( JA10110 ) supprimées ( empty rows or without codes deleted ) ")
End Sub |
Partager