Option Base 1
Sub Laurent1()
' initianlisation des variables
Dim Chaine As String
'Pitaluga a plusieurs Nº de téléphone : 06 66 99 55 76 & 094 54 20 44 & 099 925 301 & 06 300 200 11
Chaine = "Pitaluga a plusieurs Nº de téléphone : 06 66 99 55 76 & 094 54 20 44 & 099 925 301 & 06 300 200 11"
' C'est la propriété qui définit le motif sur lequel se fait la recherche.
'strPattern = "\d{2}\s" '2 chiffres & espace(s)
'strPattern = "\d{2,3}\s" '2 ou 3 chiffres & espace(s)
'strPattern = "\d{3}\s" '3 chiffres & espace(s)
'TabRch = Array("(\d{2}\s{1,6}){5}", "(\d{2,3}\s\*{4})", "(\d{3}\s\*{3})")
'TabRch = Array("(\d{2}\s{1,6}){5}", "(\d{2,3}\s){4}", "(\d{3}\s{1,4}){3}")
TabRch = Array("(\d{2}\s*){5}", "(\d{2,3}\s*){4}", "(\d{3}\s*){3}")
'*** ------------------------------------------------------------------------------
' Tableau d'objet
Dim Tabreg() As Object
ReDim Tabreg(LBound(TabRch) To UBound(TabRch))
Dim TabMatch() As Object
ReDim TabMatch(LBound(TabRch) To UBound(TabRch))
Dim TabMatches() As Object
ReDim TabMatches(LBound(TabRch) To UBound(TabRch))
'*** ------------------------------------------------------------------------------
For i = LBound(Tabreg) To UBound(Tabreg)
Set Tabreg(i) = CreateObject("vbscript.regexp")
' ici laissé pour l'ordre !
'Chaine = "Pitaluga a plusieurs Nº de téléphone : 06 66 99 55 76 & 094 54 20 44 & 099 925 301 & 06 300 200 11"
'Le Pattern est le motif que l'on recherche
Tabreg(i).Pattern = TabRch(i)
' Active ou non la recherche sur plusieurs lignes à la fois / La propriété est mise sur False par défaut.
Tabreg(i).MultiLine = False
' Précise si la recherche est sensible ou non à la casse (majuscules/minuscules) / La propriété est mise sur False par défaut.
Tabreg(i).IgnoreCase = True
' Précise si la recherche porte sur la première occurence ou sur toutes / La propriété est mise sur False par défaut.
Tabreg(i).Global = True
'le test renvoie un Boolean (parfait pour notre fonction Booléenne!!!)
MsgBox Tabreg(i).test(Chaine)
' Cette méthode permet d'explorer les occurences qui vérifient le Pattern.
Set TabMatches(i) = Tabreg(i).Execute(Chaine)
For Each TabMatch(i) In TabMatches(i)
Debug.Print "source >>", TabMatch(i).Value
For j = 0 To TabMatch(i).SubMatches.Count - 1
' Debug.Print "[$" & j + 1 & "]", TabMatch(i).SubMatches(j)
'Debug.Print TabRch(i), TabMatch(i).SubMatches(j)
Next j
Next TabMatch(i)
Next i
'*** ------------------------------------------------------------------------------
End Sub