Besoin d'aide pour mot de passe vba
Résolu
Cailloux50
Messages postés
88
Statut
Membre
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour j'ai réussi a faire des mots de passe et si celui-ci est correct il fait d'autre étape mais mon soucis est que s'il est incorrect je voudrais qu'il ferme le classeur excel.
Voici le code :
Voici le code :
Private Sub Workbook_Open()
' Déclaration des variables
Dim i As Integer
Dim MonPassword As Variant
'On ouvre le classeur sur la feuille 3
Worksheets("Feuil3").Activate
' On récupère le code saisie dans une InputBot
MonPassword = InputBox("Veuillez entre votre password pour accéder à votre feuille:", "Identifation")
' On realise les différents mot de passe
If MonPassword = "1" Then
Sheets("Feuil1").Visible = xlVeryHidden
Sheets("Feuil2").Visible = xlVeryHidden
Worksheets("Feuil3").Select
Range("E2") = "Bassanetti"
Range("B2").Clear
End If
End Sub
3 réponses
-
Bonjour,
Il faut le protéger si les macros sont désactivées et aussi du raccourci clavier Ctrl Pause qui crée un bug et ouvre le classeur.
comme ceci:
Option Explicit Private Sub Workbook_BeforeClose(Cancel As Boolean) 'on rétabli à la fermeture ThisWorkbook.IsAddin = True 'et à la fin de ta macro : remettre raccourci clavier Ctrl Pause Application.EnableCancelKey = xlInterrupt 'Ou xlErrorHandler End Sub Private Sub Workbook_Open() 'empêcher l'affichage d'un classeur s'il est ouvert alors que l'exécution 'des macros est désactivée dans les options de sécurité ThisWorkbook.IsAddin = False 'au début de ta macro Application.EnableCancelKey = xlDisabled 'empeche raccourci clavier Ctrl Pause Dim i As Integer Dim MonPassword As Variant 'On ouvre le classeur sur la feuille 3 Worksheets("Feuil3").Activate ' On récupère le code saisie dans une InputBot MonPassword = InputBox("Veuillez entre votre password pour accéder à votre feuille:", "Identifation") ' On realise les différents mot de passe If MonPassword = "1" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E2") = "Bassanetti" Range("B2").Clear Else ThisWorkbook.Close savechanges:=False End If End Sub
Voilà, il faut protéger tes macros dans l'éditeur aussi
-
Voici le vrai code mais quand je rentre le bon mot de passe ca fonctionne mais si je rentre n'importe quoi on peut quand meme rentre sur les feuille.
Je pense qu''il faut modifier la forme de la macro et rajouter la bonne ligne au bon endroit
Merci d'avance.
Je suis perdu
Private Sub Workbook_Open() ' Déclaration des variables Dim i As Integer Dim MonPassword As Variant 'gestion des erreurs 'On ouvre le classeur sur la feuille 19 Worksheets("Feuil3").Activate ' On récupère le code saisie dans une InputBot MonPassword = InputBox("Veuillez entre votre password pour accéder à votre feuille:", "Identifation") ' On realise les différents mot de passe If MonPassword = "1" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "Bassanetti" Range("B8").Clear End If If MonPassword = "2" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "Beguin" Range("B8").Clear End If If MonPassword = "3" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "Bisognin" Range("B8").Clear End If If MonPassword = "4" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "Chamontin" Range("B8").Clear End If If MonPassword = "5" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "Dodane" Range("B8").Clear End If If MonPassword = "6" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "Dupaquier" Range("B8").Clear End If If MonPassword = "7" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "Forestier" Range("B8").Clear End If If MonPassword = "8" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "Guyot" Range("B8").Clear End If If MonPassword = "9" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "Jolivet" Range("B8").Clear End If If MonPassword = "10" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E8") = "OCCASIONALI ESTERO" Range("B8").Clear End If If MonPassword = "123" Then Sheets("Feuil1").Visible = True Sheets("Feuil3").Visible = True Sheets("Feuil2").Visible = xlVeryHidden Range("E8") = "Bassil" Range("B8").Clear End If If MonPassword = "1234" Then Sheets("Feuil1").Visible = True Sheets("Feuil3").Visible = True Sheets("Feuil1").Visible = True Range("E8") = "Bassil" Range("B8").Clear End If ' ' Macro1 Macro ' ' If Range("E2") = "Chamontin" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$D$2:$D$28" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "Bisognin" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$C$2:$C$22" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "Dodane" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$E$2:$E$23" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "Beguin" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$B$2:$B$18" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "Bassanetti" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$A$2:$A$24" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "Dupaquier" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$F$2:$F$10" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "Forestier" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$G$2:$G$16" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "Guyot" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$H$2:$H$16" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "Jolivet" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$I$2:$I$16" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "OCCASIONALI ESTERO" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$J$2:$J$2" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If If Range("E2") = "Bassil" Then Range("B2").Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Feuil2!$A$39:$A$203" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End If End Sub -
J'avais fait un exemple lors d'une précédente demande:
https://forums.commentcamarche.net/forum/affich-35553634-autoriser-acces-feuillet-excel-uniquement-avec-mdp
Donc voici cet exemple à adapter au besoin:
https://www.cjoint.com/c/HJAjptdhsSQ
Un petit plus, chaque ouverture est enregistrée avec le nom de l'intervenant ainsi que l'heure et la date d'ouverture et de fermeture
Voilà
@+ Le Pivert
-
-
Bonjour Cailloux
If MonPassword = "1" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E2") = "Bassanetti" Range("B2").Clear Else ActiveWorkbook.Close False End If
devrait faire ton affaire
-
j'irai à peine plus loin pour ton mot de passe parce que là, une faute de frappe et ça ne pardonne pas :
dim Essai as Byte Private Sub Workbook_Open() ' Déclaration des variables Dim i As Integer Dim MonPassword As Variant 'On ouvre le classeur sur la feuille 3 Worksheets("Feuil3").Activate ' On récupère le code saisie dans une InputBot NvlChance : MonPassword = InputBox("Veuillez entre votre password pour accéder à votre feuille:", "Identifation") ' On realise les différents mot de passe If MonPassword = "1" Then Sheets("Feuil1").Visible = xlVeryHidden Sheets("Feuil2").Visible = xlVeryHidden Worksheets("Feuil3").Select Range("E2") = "Bassanetti" Range("B2").Clear Else Essai = Essai + 1 If Essai < 3 Then MsgBox "Plus que " & 3 - Essai & " essai !" GoTo NvlChance End If If Essai = 3 Then ActiveWorkbook.Close False End If