Bonjour à tous,
Après bien des recherches et ne trouvant pas la réponse à un problème je me résous à éditer ce message.
J'ai reproduit le problème dans ce petit code.
Le but est de créer une première erreur gérée par le "Select Case" Case 13 qui renvoie à l'étiquette Suite :
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Sub TestErreurs() On Error GoTo GestionErreurs Dim i As Integer i = "Toto" 'i = 12 Debug.Print "Ici on a d'autres instructions" Debug.Print "-------------------------" Debug.Print "-------------------------" Debug.Print "-------------------------" Debug.Print "-------------------------" Suite: Windows("test.xlsx").Activate MsgBox "Suite de la procédure" On Error GoTo 0 Exit Sub GestionErreurs: Select Case Err.Number Case 13 'MsgBox "Il s'agit d'une incompatibilité de type" i = 3 GoTo Suite Case 9 MsgBox "Ce classeur n'est pas ouvert !" Resume Next Case Else MsgBox Err.Number & " " & Err.Description End Select End Sub
(une variable de type "Integer" ne peut recevoir une valeur de type "String")
Cette partie de la gestion d'erreurs fonctionne
Puis de créer une seconde erreur en appelant un fichier qui n'existe pas (normalement Case 9 du "Select Case")
Et là, la gestion des erreurs ne fonctionne pas
Si par contre on attribue une valeur cohérente d'entier à "i", l'erreur due au fichier qui n'existe pas est prise en compte.
étonnant non ?
Cordialement
GG
Partager