Erreur dans la gestion des erreurs !!

Philippe

XLDnaute Occasionnel
Bonsoir lr forum,

j'ouvre depuis une appli des classeurs excel situés dans 'Mes documents', afin d'éviter les messages d'erreur lorsque le classeur est déjà ouvert, ou inexistant, j'ai écrit cette petite routine:

Private Sub CommandButton1_Click()
Application.DisplayAlerts = False
Dim nom As String, nom1 As String
nom = [A3] & '.xls'
On Error GoTo paouvert
Workbooks(nom).Activate
Application.DisplayAlerts = True
Exit Sub
paouvert:
On Error GoTo 0
On Error GoTo toujourspas
nom1 = 'C:\\Mes documents\\' & nom
Workbooks.Open (nom1)
Application.DisplayAlerts = True
Exit Sub
toujourspas:
MsgBox 'Le classeur ' & nom & ' n'existe pas !!!'
Application.DisplayAlerts = True
On Error GoTo 0
End Sub


Or ça plante à la seconde gestion d'erreur quand le classeur n'existe pas, je récolte une erreur 1004, comme si le second 'on error goto toujourspas' n'était pas pris en compte...
Je ne vois pas ce qui coince dans mon code...

Merci de vitre aide.

A+
Philippe
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Philippe,

L'aide VBA dit : 'Si une erreur se produit alors qu'un gestionnaire d'erreurs est actif (c'est-à-dire entre la ligne où survient une erreur et une instruction Resume, Exit Sub, Exit Function ou Exit Property), le gestionnaire d'erreurs de la procédure en cours ne peut gérer l'erreur.'.
Autrement dit, on ne peut pas gérer une erreur alors que la gestion de l'erreur précédente n'est pas terminée (entre 'paouvert:' et 'Exit Sub', on ne peut donc pas introduire de 'On Error GoTo toujourspas').

Tu peux peut-être essayer le code ci-dessous à la place de ta procédure :
Private Sub CommandButton1_Click()
Dim nom As String
Dim
Classeur As Workbook
      nom = Range('A3').Value & '.xls'
      On Error Resume Next
      Set Classeur = Workbooks(nom)
      If Not Classeur Is Nothing Then
            Classeur.Activate
      Else
            Workbooks.Open 'C:\Mes documents\' & nom
            If ActiveWorkbook.Name <> nom Then MsgBox 'Le classeur ' & nom & ' n'existe pas !!!'
      End If
      On Error GoTo 0
End Sub
Cordialement,
 

Philippe

XLDnaute Occasionnel
Salut MDF,

merci pour le tuyau, je vais essayer ta proc. demain matin, ce qui me trouble cependant c'est que j'avais introduit un 'on error goto 0' qui aurait du interrompre le traitement d'erreur... il y a qqe chose qui m'échappe là...

Bon je vais dormir....

A demain
philippe
 

Discussions similaires

Réponses
3
Affichages
382

Statistiques des forums

Discussions
312 329
Messages
2 087 334
Membres
103 519
dernier inscrit
Thomas_grc11