[Résolu][Calc] verrouillage et masquage de feuille

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
alex2957
Fraîchement OOthentifié
Messages : 4
Inscription : 28 juin 2025 17:18

[Résolu][Calc] verrouillage et masquage de feuille

Message par alex2957 »


La modération vous a écrit: calc par VBA a été enlevé du titre de votre question < verrouillage et masquage de feuille calc par VBA > et la balise [Calc] a été ajoutée conformément aux règles de cette section (accessibles dans le bandeau rose en haut de la page)

Bonjour,
Peut on masquer et verrouiller des feuilles calc et les ouvrir avec un nom d'utilisateur et un mot de passe pour chaque utilisateur.
Je voudrai que les feuilles ne soient pas visible en bas ( la ou il y a marqué feuil1 etc etc )
je m explique mieux j ai un fichier calc avec 2 feuilles ( pour l instant):
-page de connection
-mot de passe

Je voudrai que lorsque un utilisateur rentre son nom de connexion et son mot de passe sur la page connexion (identifiant enregister au prealable sur la page admin) il ai accés au seul page matérialiser par un cadenas vert, les pages étant matérialiser par un cadenas rouge sont verouiller et invisible

j ai mis mon fichier en piéce jointe
je suis sous windows 11 et libre office 25.2
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
libre office 25.2 windows 11
alex2957
Fraîchement OOthentifié
Messages : 4
Inscription : 28 juin 2025 17:18

Re: [Calc] verrouillage et masquage de feuille

Message par alex2957 »

j ai oublié de préciser lorsque j ouvre la feuille calc je dois arriver sur la page connexion les autre etant invisible et inaccessible tant que j ai pas rentrer mon nom d utilisateur et mot de passe
libre office 25.2 windows 11
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1189
Inscription : 19 août 2018 05:20

Re: [Calc] verrouillage et masquage de feuille

Message par Dolev »

Bonjour,

Il n'y a aucune macro dans votre document, c'est normal ?
Pour (dé)protéger, il faut utiliser les méthodes .protect et .unprotect
Pour (dé)masquer les feuilles, il faut agir sur isVisible en attribuant un booléen.
Exemple pour masquer toutes les feuilles sauf celle de connexion :

Code : Tout sélectionner

oDoc = ThisComponent
oFeuilles = oDoc.Sheets
For i = 0 to UBound(oFeuilles.ElementNames)
      sNom = oFeuilles.ElementNames(i) 
      if sNom <> "page de connection" then oFeuilles.getByName(sNom).isVisible = true
Next i
Open Office 4.1.16 sous Windows 11
alex2957
Fraîchement OOthentifié
Messages : 4
Inscription : 28 juin 2025 17:18

Re: [Calc] verrouillage et masquage de feuille

Message par alex2957 »

désolé je débute lol
oui c est normal je veux créer une macro ou tout autre chose du début à la fin pour mieux comprendre ;;;;
pour la ligne:
if snom faut que je mette le nom de ma feuille a chaque fois ex:
if sNom <> "page de connection" then oFeuilles.getByName(sNom).isVisible = true
if sNom <> "feuille 1" then oFeuilles.getByName(sNom).isVisible = true
if sNom <> "feuille 2 " then oFeuilles.getByName(sNom).isVisible = true
libre office 25.2 windows 11
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1189
Inscription : 19 août 2018 05:20

Re: [Calc] verrouillage et masquage de feuille

Message par Dolev »

alex2957 a écrit : 29 juin 2025 14:08 if snom faut que je mette le nom de ma feuille a chaque fois ex:
Oui, il faut récupérer le nom de la feuille auquel à droit l'utilisateur.

alex2957 a écrit : 29 juin 2025 14:08 désolé je débute lol
Je vous invite à lire ceci : viewtopic.php?t=820
Open Office 4.1.16 sous Windows 11
alex2957
Fraîchement OOthentifié
Messages : 4
Inscription : 28 juin 2025 17:18

Re: [Calc] verrouillage et masquage de feuille

Message par alex2957 »

j ai ce code qui viens d exel...;Peut on l adapter pour libre office ??

Code : Tout sélectionner

Option Explicit

this woorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean) 'masque toutes les feuilles avant de fermer
Dim i As Integer
    Sheets("Accueil").Visible = True
    Sheets("Accueil").Select
    For i = 1 To Sheets.Count
        If Sheets(i).Name <> "Accueil" Then Sheets(i).Visible = xlVeryHidden
    Next
End Sub

Private Sub Workbook_Open() 'démasque les feuilles suivant liste de la feuille user
    ouvrir
End Sub

Module  1

Sub ouvrir()
Dim Reponse As String, Cel As Range
Dim utilisateur As String, codeacces As String

    utilisateur = InputBox("Saisie de votre NOM : ", "NOM", Environ("username"))
    If Len(utilisateur) = 0 Then Exit Sub
    codeacces = InputBox("Saisie de votre code d'accès : ", "CODE")
    If Len(codeacces) = 0 Then Exit Sub
    
    With Sheets("Admin")
        Set Cel = .Columns("A").Find(utilisateur, .Range("A1").End(xlDown), xlValues, xlWhole)
        If Not Cel Is Nothing Then
            If Cel.Offset(0, 1).Value = codeacces Then
            
                For iFeuille = 2 To .[E1].End(xlDown).Row
                    If .Cells(iFeuille, "D").Value = utilisateur Then
                        If .Cells(iFeuille, "E").Value = "*" Then
                            ToutVisible True
                        Else
                            Sheets(.Cells(iFeuille, "E").Value).Visible = True
                        End If
                    End If
                Next
            
            End If
            Sheets("Accueil").Visible = False
        Else
            MsgBox "Désolé, Nom ou Code inconnu !"
        End If
    End With
End Sub

Sub ToutVisible(ok As Boolean)
Dim sh As Worksheet
    For Each sh In Sheets
        sh.Visible = True
    Next
End Sub
Dernière modification par alex2957 le 30 juin 2025 20:54, modifié 1 fois.
libre office 25.2 windows 11
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26177
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Calc] verrouillage et masquage de feuille

Message par Dude »

Salut,
alex2957 a écrit : 30 juin 2025 10:57 j ai ce code qui viens d exel...;Peut on l adapter pour libre office ??
Tu viens de poser la question qui tue :)
Tu peux déjà faire une recherche dans ce forum sur les équivalences entre fonction VisualBasic et StarBasic.
Si tu es débutant, regarde ce suprême de code de Philippe BRONCHART.
Il te permettra de comprendre certains mécanismes comme l'adressage des cellules et les dialogues.

Pour revenir à tes routines, si je prends la 1ere :

Code : Tout sélectionner

Private Sub Workbook_BeforeClose(Cancel As Boolean) 'masque toutes les feuilles avant de fermer
Dolev t'a déjà répondu il me semble.
Il faut ensuite brancher la macro sur l'événement qui va bien depuis le menu Outils > Personnaliser...
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.