Bonjour,
J'utilise une fonction pour numéroter les lignes de mon code VBA afin de simplifier le suivi des erreurs.
Une fois numéroté, l'outil de compilation plante sur le 1° CASE dans les SELECT CASE. Pourquoi ?
cdt, NC
Version imprimable
Bonjour,
J'utilise une fonction pour numéroter les lignes de mon code VBA afin de simplifier le suivi des erreurs.
Une fois numéroté, l'outil de compilation plante sur le 1° CASE dans les SELECT CASE. Pourquoi ?
cdt, NC
Bonjour,
probablement parce qu'il y a une erreur sur cette ligne ou sur les conditions préalables au Select Case
ça ne t'avance pas je présume ce que je viens de dire ? C'est normal, tu ne nous montres même pas ton code, ni décrit l'erreur renvoyée
A toi de jouer
Bon je la refais plus simplement avec un petit exemple. La compilation ne plante pas pour :
Je numérote :Code:
1
2
3
4
5
6
7
8
9
10
11
12 Sub test() I = 2 Select Case I Case 1 Debug.Print "1" Case 2 Debug.Print "2" Case Else Debug.Print "Autre" End Select End Sub
La compilation plante avec le message : Instructions et étiquettes incorrectes entre Select Case et le premier CaseCode:
1
2
3
4
5
6
7
8
9
10
11
12 Sub test() 2 I = 2 3 Select Case I 4 Case 1 5 Debug.Print "1" 6 Case 2 7 Debug.Print "2" 8 Case Else 9 Debug.Print "Autre" 10 End Select End Sub
Je modifie la numérotation et la compilation ne plante plus :
Est-ce plus clair ?Code:
1
2
3
4
5
6
7
8
9
10
11
12 Sub test() 2 I = 2 3 Select Case I Case 1 5 Debug.Print "1" 6 Case 2 7 Debug.Print "2" 8 Case Else 9 Debug.Print "Autre" 10 End Select End Sub
Je trouve ça bizarre.
Le message d'erreur est pourtant clair et sans compter l'aide associée ‼
Ce n'est donc pas possible et tout à fait inutile car en cas d'erreur la ligne est déjà surlignée …
Bonjour,
si tu as numéroté tes lignes, sans laisser de "trous" comme tu nous l'as montré ... et comme Marc-L t'as suggéré que ce n'était pas possible ....
Erl() te donnera le numéro de ligne
exemple tout simple :
Code:
1
2
3
4
5
6
7
8
9 Sub toto() 1 Dim t As Integer 2 On Error GoTo errhandler 3 t = 20000000 4 Exit Sub errhandler: MsgBox "Erreur suivante : " & Err.Description & vbCrLf & "A la ligne : " & Erl() End Sub
Après, numéroter ses lignes ou pas ? Un choix perso
moi je ne l'ai jamais fais (peut-être à tort !)