XL 2019 Masquer et déverrouiller des feuilles

kouami40

XLDnaute Nouveau
bonjour la famille,
j'explique je veux masquer toutes les feuilles et les déverrouiller a l'aide d'un compte valide que je dois crée mais c'est juste base de donne seulement que j’arrive à masquer ci-joint fichier test . merci d'avance
VB:
Option Explicit

Sub vérouiller()
Sheets("BASE DE DONNEES").Visible = xlSheetVeryHidden
End Sub
Sub création()
UserForm1.Show
End Sub
Sub connexion()
UserForm2.Show
End Sub

Option Explicit

Private Sub CommandButton1_Click()
Dim lr As Integer
Dim ws As Worksheet
Dim user As String
Dim mdp As String
Dim txtuser As String
Dim txtmdp As String
Dim i As Integer
Dim verification As Boolean

Set ws = Sheets("connexions")
lr = ws.Cells(Rows.Count, 1).End(xlUp).Row
txtuser = Me.TextBox1
txtmdp = Me.TextBox2
verification = False

If txtuser = "" Or txtmdp = "" Then
MsgBox "veuillez remplir tous les champs"
Else
With ws
For i = 2 To lr
user = .Cells(i, 1)
mdp = .Cells(i, 2)
If txtuser = user And txtmdp = mdp Then
verification = True
End If
Next i
End With

If verification = True Then
MsgBox "Bienvenue à ISROD MOYENNE 2020/2021"
Sheets("BASE DE DONNEES").Visible = True
Else
MsgBox "identifients incorrects"
Me.TextBox1 = ""
Me.TextBox2 = ""
End If
End If
End Sub

Private Sub TextBox1_Change()

End Sub

Private Sub UserForm_Click()

End Sub
 

Fichiers joints

Dernière édition:

job75

XLDnaute Barbatruc
Bonjour kouami40,

Il faut prendre de bonnes habitudes : commencer par dire bonjour et expliciter clairement la demande.

A+
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Kouami,Job,
Si le problème n'est que celui ci :
j'explique je veux masquer toutes les feuilles
alors vous pouvez faire :
VB:
Sub Masque()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name <> "Acceuil" Then
         Sheets(Sh.Name).Visible = False
    End If
Next Sh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub


Sub Démasque()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name <> "Acceuil" Then
         Sheets(Sh.Name).Visible = True
    End If
Next Sh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
 

Fichiers joints

kouami40

XLDnaute Nouveau
bonjour
sylvanu,
pas vraiment car je voudrais que les feuilles apparait a la suite d'un compte comme vous avez crée le compte vous avez constater que c'est lorsque tu clic sur connexions que base de donnée s'affiche une fois que tu clic sur verrouiller base de donner se masque. merci encore d'avance
 

kouami40

XLDnaute Nouveau
Bonjour Kouami,Job,
Si le problème n'est que celui ci :

alors vous pouvez faire :
VB:
Sub Masque()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name <> "Acceuil" Then
         Sheets(Sh.Name).Visible = False
    End If
Next Sh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub


Sub Démasque()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name <> "Acceuil" Then
         Sheets(Sh.Name).Visible = True
    End If
Next Sh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
bonjour
sylvanu,
pas vraiment car je voudrais que les feuilles apparait a la suite d'un compte comme vous avez crée le compte vous avez constater que c'est lorsque tu clic sur connexions que base de donnée s'affiche une fois que tu clic sur verrouiller base de donner se masque. merci encore d'avance
VB:
Option Explicit

Sub Masque()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name <> "Acceuil" Then
         Sheets(Sh.Name).Visible = False
    End If
Next Sh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Sub Démasque()
Dim Sh As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name <> "Acceuil" Then
         Sheets(Sh.Name).Visible = True
    End If
Next Sh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub

Sub création()
UserForm1.Show
End Sub
Sub connexion()
UserForm2.Show
End Sub
Private Sub CommandButton1_Click()
Dim lr As Integer
Dim ws As Worksheet
Dim user As String
Dim mdp As Variant
Dim cnf As Variant

Set ws = Sheets("connexions")
lr = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1

user = Me.TextBox1
mdp = Me.TextBox2
cnf = Me.TextBox3


If user = "" Or mdp = "" Or cnf = "" Then
    MsgBox "veillez remplir tous les champs"
    Else
    If MsgBox("voulez vous créer ce compte?", vbYesNo, "creation du compte") = vbYes Then
       If mdp <> cnf Then
          MsgBox "les mots de passe sont incohérents"
          Me.TextBox2 = ""
          Me.TextBox3 = ""
          Else
          With ws
            .Cells(lr, 1) = user
            .Cells(lr, 2) = mdp
            MsgBox "votre compte a été crée avec succès"
          End With
        End If
      End If
    End If
    



      
    
End Sub


Private Sub UserForm_Click()

End Sub
Private Sub UserForm_Click()
Private Sub CommandButton1_Click()
Dim lr As Integer
Dim ws As Worksheet
Dim user As String
Dim mdp As String
Dim txtuser As String
Dim txtmdp As String
Dim i As Integer
Dim verification As Boolean

Set ws = Sheets("connexions")
lr = ws.Cells(Rows.Count, 1).End(xlUp).Row
txtuser = Me.TextBox1
txtmdp = Me.TextBox2
verification = False

If txtuser = "" Or txtmdp = "" Then
    MsgBox "veuillez remplir tous les champs"
    Else
    With ws
      For i = 2 To lr
         user = .Cells(i, 1)
         mdp = .Cells(i, 2)
         If txtuser = user And txtmdp = mdp Then
             verification = True
           End If
        Next i
      End With
      
      If verification = True Then
          MsgBox "Bienvenue à ISROD MOYENNE 2020/2021"
Dim Sh As Worksheet
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For Each Sh In ActiveWorkbook.Sheets
    If Sh.Name <> "Acceuil" Then
         Sheets(Sh.Name).Visible = True
    End If
Next Sh
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
          Else
          MsgBox "identifients incorrects"
          Me.TextBox1 = ""
          Me.TextBox2 = ""
        End If
      End If
    End Sub
 

Fichiers joints

soan

XLDnaute Accro
Bonjour @kouami40, le fil,

je te retourne le fichier de ton post #1 modifié ; tu peux voir qu'à l'ouverture,
seule la feuille "Accueil" est visible ; clique sur le bouton « CONNEXION » ;
COMPTE : kouami40 ; MOT DE PASSE : oasis ➯ feuilles visibles

j'ai fait plein d'modifs, alors pour le code VBA, regarde : ThisWorkbook ;
Module1 ; UF_CréationCompte ; UF_Connexion

j'ai aussi supprimé ton Module de classe inutile ; un seul module suffit :
il reste seulement Module1 ; j'ai supprimé tes autres modules.


soan
 

Fichiers joints

soan

XLDnaute Accro
non, c'est David Aubert qui est l'Administrateur, ce n'est pas moi !!!

moi, je suis seulement un membre, depuis le 18 Août 2020.


soan
 

soan

XLDnaute Accro
ajout : si tu as essayé mon fichier, tu as pu voir que dès l'ouverture du classeur,
toutes les feuilles sont masquées, sauf la feuille « Accueil » ; ensuite, quand tu
te connectes avec le bon compte et le bon mot de passe, ça affiche toutes les
feuilles cachées ; même sans cacher de nouveau les feuilles, elles seront de
nouveau masquées lors de la prochaine ouverture du classeur
.

cependant, mauvaise nouvelle : cette protection est illusoire, car tu peux
ouvrir le classeur en désactivant les macros ; pour faire ça, il te suffit
d'appuyer sur la touche Maj et de la maintenir enfoncée pendant que
tu cliques sur le bouton « Ouvrir ».

il n'existe aucune méthode de protection sûre et fiable à 100 % avec Excel ;
il y a toujours un moyen de contourner ; y compris en téléchargeant sur
le net un des nombreux logiciels de « craquage ».

au mieux, la protection actuelle du fichier sert juste pour contrer des
utilisateurs d'Excel débutants ; ça sera déjà un petit peu plus sûr si
tu mets un mot de passe pour le projet VBA ; mais dans ce cas, fais
très attention de ne pas l'oublier !
car sinon, tu ne pourras plus
modifier ton propre projet VBA !


soan
 

kouami40

XLDnaute Nouveau
non, c'est David Aubert qui est l'Administrateur, ce n'est pas moi !!!

moi, je suis seulement un membre, depuis le 18 Août 2020.


soan
ajout : si tu as essayé mon fichier, tu as pu voir que dès l'ouverture du classeur,
toutes les feuilles sont masquées, sauf la feuille « Accueil » ; ensuite, quand tu
te connectes avec le bon compte et le bon mot de passe, ça affiche toutes les
feuilles cachées ; même sans cacher de nouveau les feuilles, elles seront de
nouveau masquées lors de la prochaine ouverture du classeur
.

cependant, mauvaise nouvelle : cette protection est illusoire, car tu peux
ouvrir le classeur en désactivant les macros ; pour faire ça, il te suffit
d'appuyer sur la touche Maj et de la maintenir enfoncée pendant que
tu cliques sur le bouton « Ouvrir ».

il n'existe aucune méthode de protection sûre et fiable à 100 % avec Excel ;
il y a toujours un moyen de contourner ; y compris en téléchargeant sur
le net un des nombreux logiciels de « craquage ».

au mieux, la protection actuelle du fichier sert juste pour contrer des
utilisateurs d'Excel débutants ; ça sera déjà un petit peu plus sûr si
tu mets un mot de passe pour le projet VBA ; mais dans ce cas, fais
très attention de ne pas l'oublier !
car sinon, tu ne pourras plus
modifier ton propre projet VBA !


soan
oui oui c'est ce que je voulais vraiment merci infiniment, ok compris pour les conseils
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas