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
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
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'en passe et des meilleurs...)
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
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
Partager