Besoin d'aide pour mot de passe vba

Résolu/Fermé
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020 - Modifié le 26 oct. 2018 à 10:45
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 26 oct. 2018 à 11:19
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 :

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
A voir également:

3 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
25 oct. 2018 à 16:40
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

1
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
Modifié le 26 oct. 2018 à 10:45
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
0
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 729
Modifié le 26 oct. 2018 à 11:20
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
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
Modifié le 25 oct. 2018 à 16:44
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

0
Cailloux50 Messages postés 79 Date d'inscription jeudi 13 septembre 2018 Statut Membre Dernière intervention 10 août 2020
26 oct. 2018 à 08:48
Donc ça ça suffit pour fermer le classeur si le mot de passe est pas bon?
0
fabien25000 Messages postés 673 Date d'inscription mercredi 5 octobre 2016 Statut Membre Dernière intervention 28 juillet 2022 59
Modifié le 25 oct. 2018 à 17:08
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


0