L
Ludo
Guest
Re Bonjour
Je voudrais savoir comment je pourrais ajouter une
fonction "On erreur" dans ma macro.
Je m'explique ! J'ai deux feuilles et une que je protége
(feuille 2) avec la macro ci-dessous. Malheureusement
quand je saisi par erreur le mot de passe et au lieu de
revenir dans la feuille (1) il me ferme les deux feuilles
comme s'il fermait entièrement le classeur, mais en
réalité le classeur est toujours actif mais plus aucun
contrôle pour revenir en arrière. La seule solution est
de fermer sans sauvegarder le classeur.
Qui aurait une idée pour que lorsque je saisi par erreur
le mot de passe, qu'il revienne automatiquement sur la
feuille 1 avec un message box qui dit que le password est
faux.
Merci pour votre aide
Ludo
Option Explicit
Private Const MOTPASSE As String = "advance"
Private OldSheet As String
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim reponse$
If Sh.CodeName = "Feuil2" Then
ActiveWindow.Visible = False
reponse$ = Application.InputBox _
(prompt:="Veuillez entrer votre mot de passe.", _
Type:=2)
If reponse$ <> MOTPASSE Then
Application.EnableEvents = False
Sheets(OldSheet).Activate
Application.EnableEvents = True
End If
Else
OldSheet = ActiveSheet.CodeName
End If
Windows(1).Visible = True
End Sub
.
Je voudrais savoir comment je pourrais ajouter une
fonction "On erreur" dans ma macro.
Je m'explique ! J'ai deux feuilles et une que je protége
(feuille 2) avec la macro ci-dessous. Malheureusement
quand je saisi par erreur le mot de passe et au lieu de
revenir dans la feuille (1) il me ferme les deux feuilles
comme s'il fermait entièrement le classeur, mais en
réalité le classeur est toujours actif mais plus aucun
contrôle pour revenir en arrière. La seule solution est
de fermer sans sauvegarder le classeur.
Qui aurait une idée pour que lorsque je saisi par erreur
le mot de passe, qu'il revienne automatiquement sur la
feuille 1 avec un message box qui dit que le password est
faux.
Merci pour votre aide
Ludo
Option Explicit
Private Const MOTPASSE As String = "advance"
Private OldSheet As String
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim reponse$
If Sh.CodeName = "Feuil2" Then
ActiveWindow.Visible = False
reponse$ = Application.InputBox _
(prompt:="Veuillez entrer votre mot de passe.", _
Type:=2)
If reponse$ <> MOTPASSE Then
Application.EnableEvents = False
Sheets(OldSheet).Activate
Application.EnableEvents = True
End If
Else
OldSheet = ActiveSheet.CodeName
End If
Windows(1).Visible = True
End Sub
.