Bonjour,


J'ai développé un script VBA qui me permet de charger dans une feuille Excel :
- le nom des fichiers
- la taille

A partir du nom, j'utilise une RegEx pour y extraire plusieurs information dont la date (car fichier horodaté)

le script fonctionnait très bien et tout d'un coup, je me retrouve avec une erreur dont je ne comprends pas l'origine.

L'erreur :
Erreur de compilation
Variable non défini

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Function parseDate ( ...... )
est souligné en jaune
"matches" en bleu correspondant à :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set matches = regex.Execute(str)
En effet matches n'est pas défini. Pas de Dim avec cette variable.


j'ai alors mis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Dim regex As Object , matches As Object
Mais je me retrouve maintenant avec l'erreur :
Erreur d'execution '13'
Incompatibilité de type
Il semblerait que j'ai indiqué en tant que Object ne soit pas correct. Pourtant en regardant à droite et à gauche, la plus part du temps, la variable n'est pas déclarer.

Et si elle est déclaré, elle est de type Objet.

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
 
Function ExtractSDI(ByVal text As String) As String
 
Dim result As String
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
 
RE.pattern = "(sdi \d+)"
RE.Global = True
RE.IgnoreCase = True
Set allMatches = RE.Execute(text)
 
If allMatches.count <> 0 Then
    result = allMatches.Item(0).submatches.Item(0)
End If
 
ExtractSDI = result
 
End Function

Bref je reste sur une impasse pour le moment.
si besoin, je vous enverrais un exemple avec :
- le fichier Excel
- une archive avec une petite arborescence avec qques fichiers de données
si cela est trop compliqué de me dépanner