Macro + mot de passe feuilles excel

nabland81

XLDnaute Nouveau
J'ai créeé un Macro qui me permet d'ouvrir plusieur feuilles excel avec un mot de passe et de les cacher en appuyant sur une bouton.
Mon probleme se réside sur le fait que je ne peux pas ouvrir toutes les feuilles en mm temps et en tapant le mot de passe une seule fois, alors je suis obligé de le taper plusieurs fois, afin d'ouvrir toutes les feuilles.
Je vouderai savoir est ce qu'il y a un moyen afin de regrouper l'ouverture des feuilles excel sur un seul tape du mot de passe? Merci d'avance.

Voici le code Macro:

Option Explicit



Sub TestPW()
Dim Message$, Titre$, Def$, WS1$, WS2$, WS3$, PassW$
WS1 = "Feuil1"
WS2 = "Feuil2"
WS3 = "Feuil3"
WS3 = "Feuil3"

PassW = "blabla"
Message = "Entrez un mot de passe :"
Titre = "Accès réservé"
Def = "*****"

If Sheets(WS1).Visible = True Then
Sheets(WS1).Visible = False
Else
If InputBox(Message, Titre, Def) = PassW Then _
Sheets(WS1).Visible = Not Sheets(WS1).Visible
Sheets(WS1).Activate
End If



If Sheets(WS2).Visible = True Then
Sheets(WS2).Visible = False
Else
If InputBox(Message, Titre, Def) = PassW Then _
Sheets(WS2).Visible = Not Sheets(WS2).Visible
Sheets(WS2).Activate
End If



If Sheets(WS3).Visible = True Then
Sheets(WS3).Visible = False
Else
If InputBox(Message, Titre, Def) = PassW Then _
Sheets(WS3).Visible = Not Sheets(WS3).Visible
Sheets(WS3).Activate
End If


End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Macro + mot de passe feuilles excel

Bonjour,

essaye peut être ainsi :

Code:
Sub test()
Dim Message$, Titre$, Def$, PassW$, WS() As Variant
Dim i As Integer
WS = Array("Feuil1", "Feuil2", "Feuil3")
PassW = "blabla"
Message = "Entrez un mot de passe :"
Titre = "Accès réservé"
Def = "*****"
For i = LBound(WS) To UBound(WS)
    If Sheets(WS(i)).Visible = True Then
        Sheets(WS(i)).Visible = False
    Else
        If InputBox(Message, Titre, Def) = PassW Then _
            Sheets(WS(i)).Visible = Not Sheets(WS(i)).Visible
            Sheets(WS(i)).Activate
        End If
Next i
End Sub

bon après midi
@+
 

SubEndSub

XLDnaute Occasionnel
Re : Macro + mot de passe feuilles excel

Bonjour chez vous

Code:
Sub Macro1()
Dim Message$, Titre$, Def$, WS1$, WS2$, WS3$, PassW$
Dim f As Worksheet
Titre = "Accès réservé"
Def = "*****"
PassW = "blabla"
Message = "Entrez un mot de passe :"
For Each f In Sheets(Array("Feuil2", "Feuil3"))
If f.Visible = xlSheetVisible Then
f.Visible = xlSheetHidden
Else
If InputBox(Message, Titre, Def) = PassW Then _
f.Visible = Not f.Visible
End If
Next
 

nabland81

XLDnaute Nouveau
Re : Macro + mot de passe feuilles excel

Mon objectif est de cacher 40 feuilles et laisser ouvert just une, je veux savoir est ce qu'il est possible de créer une macro qui cache les 40 feuilles deriere un mot de passe, et qui laissent juste une ouverte.

Merci d'avance.
 

Pierrot93

XLDnaute Barbatruc
Re : Macro + mot de passe feuilles excel

Re

regarde le code ci-dessous, suppose que la 1ère feuille reste toujours visible :

Code:
Option Explicit
Sub test()
Dim Message$, Titre$, Def$, PassW$, WS() As Variant
Dim i As Integer
PassW = "blabla"
Message = "Entrez un mot de passe :"
Titre = "Accès réservé"
Def = "*****"
If InputBox(Message, Titre, Def) <> PassW Then Exit Sub
For i = 2 To Sheets.Count
    Sheets(i).Visible = Not Sheets(i).Visible
Next i
End Sub

@+
 

SubEndSub

XLDnaute Occasionnel
Re : Macro + mot de passe feuilles excel

Voici une autre macro

Il faut une feuille avec le nom test pour tester.
Code:
Dim f   As Worksheet, PASSW$
PASSW = "t"
If Not InputBox("message") = PASSW Then
For Each f In Worksheets
If Not f.Name Like "test" Then
f.Visible = xlSheetHidden
End If
Next
Else
For Each f In Worksheets
f.Visible = True
Next
End If
 

Discussions similaires

Réponses
5
Affichages
454
Compte Supprimé 979
C
Réponses
6
Affichages
258

Statistiques des forums

Discussions
312 472
Messages
2 088 712
Membres
103 930
dernier inscrit
Jibo