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 -
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

3 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
    1. Cailloux50 Messages postés 88 Statut Membre
       
      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
  2. fabien25000 Messages postés 697 Statut Membre 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
    1. Cailloux50 Messages postés 88 Statut Membre
       
      Donc ça ça suffit pour fermer le classeur si le mot de passe est pas bon?
      0
  3. fabien25000 Messages postés 697 Statut Membre 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