VBA : "On Error goto ..." Validité permanente ?

Besnard68

XLDnaute Occasionnel
Bonjour à tous,

Je fais appel à vos compétences que je sais prodigieuses.

J'ai inclus en début de procédure l'instruction On Error Goto Gestion_Erreurs (où Gestion_Erreurs va me permettre d'agir en fonction du type d'erreur rencontré, qui sont dans mon exemple de 2 types).

Or, autant la 1ère détection d'erreur renvoie bien à Gestion_Erreurs , autant à la 2ème, le renvoi ne se fait pas.

D'où la question suivante : Doit-on réactiver d'une façon ou d'une autre (???) l'instruction On Error Goto ... après qu'elle ait été utilisée une 1ère fois ?

Voici mon cas :
- Je constitue la liste de choix d'une ComboBox avec les ss-répertoires d'un répertoire donné ( ici K:\\Archives)/ où K est une clé USB)
- Or, ce répertoire n'est pas plus actif car j'ai (volontairement) débranché la clé)
- Il détecte l'erreur 76 (la 1ère erreur) , modifie le répertoire en K:\\ (qui est le CurDir : C'est mon choix), et renvoie à l'embranchement Recommence: ;

- LE PROBLEME EST ICI : K:\\ ne fonctionnant pas plus que K:\\Archives (et pour cause) la procédure détecte l'erreur 440 (la 2ème erreur) mais ne renvoie plus au gestionnaire d'erreur Gestion_Erreurs : Pourquoi selon vous ?


.../...

On Error GoTo Gestion_erreur 'Au cas ou le répertoire serait inexistant

TxtBx_chem_Sauv = IIf([B109] = "", CurDir, [B109])
Recommence:
racine = TxtBx_chem_Sauv ' Répertoire courant
Set fs = CreateObject("Scripting.FileSystemObject")
Set dossier = fs.getfolder(racine)
For Each d In dossier.SubFolders
Me.CmbBx_Chem_Sauv.AddItem d.Name
Next

TxtBx_Nouv_chem_Sauv = TxtBx_chem_Sauv 'Le répertoire de sauvegarde
TxtBx_Unité_Dsk = Left(TxtBx_chem_Sauv, 1) 'L'unité de disque de sauvegarde



Exit Sub


Gestion_erreur:
'Répertoire erroné : On affecte le répertoire courant par défaut.
If Err.Number = 76 Then TxtBx_chem_Sauv = CurDir: GoTo Recommence
If Err.Number = 440 Then MsgBox (" L ' UNITE DE DISQUE ACTIVE NE SEMBLE PLUS ACCESSIBLE ! ! ! "): Exit Sub

End Sub​




Je vous remercie par avance pour votre aide.
 

Besnard68

XLDnaute Occasionnel
Re : VBA : "On Error goto ..." Validité permanente ?

Merci beaucoup TotoTiti,

Tu as parfaitement raison et le renvoi fonctionne effectivement bien en utilisant Resume.

Je te remercie vraiment pour ton aide.


Par contre dans mon exemple, je boucle ... à l'infini ; mais le problème majeur ayant été solutionné grace à toi, je vais trouver la parade rapidement.


Cordialement
 

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 974
dernier inscrit
chmikha