Bonjour Creepy, Pierref, le Forum
Je trouve la même solution que Pierref, mais je préfère souvent créer un réel "ErrorHandler" car dans l'exemple que Pierref donne toutes les erreurs seront ignorées, ce qui, selon la nature du reste du code peut occasionner des désagrément...
Sub TestWorkbook_Open()
Dim Debut As Integer, Lignes As Integer
Dim msg As String
With ThisWorkbook.VBProject.VBComponents("ThisWorkbook").codemodule
On Error GoTo ErrorHandler
Debut = .ProcStartLine("Workbook_Open", 0)
Lignes = .ProcCountLines("Workbook_Open", 0)
.DeleteLines Debut, Lignes
End With
'blah blah blah suite du code (if any)
Exit Sub
ErrorHandler:
If Err = 35 Then
MsgBox "Macro WorkBook_Open non existante", vbInformation, "Erreur Gérée"
Else
MsgBox "Une erreur # " & Str(Err.Number) & " a été générée par " _
& Err.Source & vbCrLf & Err.Description, vbCritical, "DANGER Erreur Non-Gérée"
End If
End Sub
Bien entendu, si dans ce cas de Figure, Creepy ne veut pas être "embêté" par le message pour le WorkBook_Open, le ErrorHandler peut se présenter ainsi :
If Err <> 35 Then
MsgBox "Une erreur # " & Str(Err.Number) & " a été générée par " _
& Err.Source & vbCrLf & Err.Description, vbCritical, "DANGER Erreur Non-Gérée"
End If
End Sub
Bon Aprèm
@+Thierry