• Initiateur de la discussion Initiateur de la discussion Deleted member 211067
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

Deleted member 211067

Guest
Bonjour à tous,

je rencontre une difficulté :
j'ai pu créer deux formules VBA me permettant de gérer la protection des feuilles excel

1) dans un premier fichier : à partir d'une feuille de synthèse, j'accède aux feuilles qui possèdent chacune un mot de passe :

la rédaction de la formule VBA est :
dans le workbook :

Option Explicit
Public Feuille_quittée As String
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim DerLig As Integer

Application.ScreenUpdating = False

If Feuille_quittée <> "" And Feuille_quittée <> "Ensemble Personnel" Then
DerLig = Sheets(Feuille_quittée).Cells.SpecialCells(xlCellTypeLastCell).Row
Sheets(Feuille_quittée).Rows("1:" & DerLig).EntireRow.Hidden = True
End If

If ActiveSheet.Name <> "Ensemble Personnel" Then
UserForm1.Show
Feuille_quittée = ActiveSheet.Name
End If
End Sub

Dans le code de la boite de dialogue du mot de passe :
Option Explicit
Private Sub CommandButton1_Click()
Dim Mot_de_passe As String

Application.ScreenUpdating = False

If ActiveSheet.Name = "JF" Then
Mot_de_passe = "x"
Else
If ActiveSheet.Name = "Ensemble Personnel" Then
Mot_de_passe = "x"

End If
End If


If TextBox1 <> Mot_de_passe Then
MsgBox "Le mot de passe n'est pas valable"
TextBox1 = ""
TextBox1.SetFocus
Exit Sub
End If

Unload Me

Rows("1:" & Rows.Count).EntireRow.Hidden = False

End Sub
Private Sub CommandButton2_Click()
Unload Me
Sheets("Ensemble Personnel").Activate
Exit Sub
End Sub

2) dans un second fichier, on accède aux feuilles excel par un clic droit sur le nom de chaque feuille inscrit sur une feuille de synthèse :

les formules dans le VBA sont :

dans la feuille de synthèse

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("a1:a30")) Is Nothing Then
Cancel = True
Sheets(CStr(Target.Value)).Visible = -1
Sheets(CStr(Target.Value)).Select
End If
End Sub

dans le workbook :

Private Sub Workbook_Open()

ActiveWorkbook.Worksheets("ensemble de l'équipe").Activate
End Sub
' copie de la fonction de masquage
'
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

If Sh.Name <> "Ensemble de l'équipe" Then Sh.Visible = 2
End Sub
'

Ma question est la suivante : comment peut on combiner les deux fichiers de manières à accéder aux feuilles en faisant un clic droit sur le nom de chacune et de protéger chaque feuille ?

Merci à tous pour votre aide.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
201
Réponses
41
Affichages
698
Réponses
10
Affichages
281
Réponses
9
Affichages
201
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
163
Réponses
7
Affichages
212
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Retour