Bonjour le forum,

J'utilise une macro avec laquelle j'ouvre plusieurs fichiers via les fonctions Applications.GetOpenFilename et Application.Workbooks.Open.

J'utilise la fonction GetOpen avec la multisélection. La macro fonctionne bien, mais j'aimerai à présent mettre une condition sur le GetOpen, à savoir que si aucun fichier n'est sélectionné, je sors de la boucle.
Et bien, c'est justement cette condition que je n'arrive pas à "écrire" .

Voici mon code de base
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
 
Sub Sheet_resistance()
 
Dim WB As Workbook
Dim TreatedFile As Workbook
Dim Counter() As Variant
Dim a As Integer 
Dim run as string
 
run = InputBox("Run Number?")
If run = "" Then Exit Sub
 
Set WB = ThisWorkbook  
 
Counter = Application.GetOpenFilename(",*.map", , , , True) 
 
For a = 1 To UBound(Counter)
 
    Set TreatedFile = Application.Workbooks.Open(Counter(a), xlMSDOS)
    ...puis traitement...
Next a
End sub
J'avoue avoir essayé pas mal de code rencontré sur le net (que je plaçais toujours juste après le GetOpenFilename), genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
If VarType(Counter) = vbBoolean Then Exit Sub
If IsArray(Counter) Then Exit Sub
(j'en passe et des meilleurs...)

mais pas moyen de sortir de la boucle, j'ai automatiquement une erreur si je fais echap lors de la sélection des fichiers à traiter. L'erreur est de type erreur 13 et semble concernée la ligne GetOpenFilename justement. J'ai tenté de changer le type de varaible de "counter", mais rien n'y fait ...

Quelqu'un aurait-il une idée SVP?

Johann