Besoin d'aide pour mot de passe vba

Résolu
Cailloux50 Messages postés 79 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Contributeur Dernière intervention   729
 
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   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   729
 
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   Statut Membre Dernière intervention   59
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   59
 
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