Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Demander le mot de passe protection feuille en vba

8 réponses
Avatar
géjoun
Bonjour,

Sur une feuille, j'ai inséré une macro affectée à un bouton pour afficher /
masquer des colonnes; et tout ça est protégé par un mot de passe.

Avec l'enregisteur de macro et des recherches sur le forum, je suis arrivé à
ça :

Private Sub CommandButton1_Click()
Range("H:I,L:M").EntireColumn.Hidden = True
ActiveSheet.Protect Password:="soe", DrawingObjects:=False,
Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingRows:=True, _
AllowInsertingColumns:=True, AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
End Sub

seulement, j'aimerai que lors de l'exécution de la macro, on me demande de
renseigner le mot de passe, comme on me le demande lorsque j'exécute la 2ème
macro pour déprotéger.

Est-ce possible?

Et est-ce aussi possible d'affecter cette macro à un bouton ET aussi qu'elle
s'exécute automatquement à la fermeture du fichier?

Merci d'avance!

--
géjoun
dam-mail2007@ifrance.com
/Enlever l''année pour m''écrire.../

8 réponses

Avatar
Daniel
Bonjour.
Quelque chose du genre :

Sub test()
Dim Bon As Boolean
On Error Resume Next
Do While Bon = False
mdp = InputBox("Entrez le mot de passe")
ActiveSheet.Unprotect mdp
If Err.Number = 0 Then
Bon = True
Else
Err.Clear
End If
Loop
End Sub

Cordialement.
Daniel
"géjoun" a écrit dans le message de news:

Bonjour,

Sur une feuille, j'ai inséré une macro affectée à un bouton pour afficher
/
masquer des colonnes; et tout ça est protégé par un mot de passe.

Avec l'enregisteur de macro et des recherches sur le forum, je suis arrivé
à
ça :

Private Sub CommandButton1_Click()
Range("H:I,L:M").EntireColumn.Hidden = True
ActiveSheet.Protect Password:="soe", DrawingObjects:úlse,
Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingRows:=True, _
AllowInsertingColumns:=True, AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True,
_
AllowUsingPivotTables:=True
End Sub

seulement, j'aimerai que lors de l'exécution de la macro, on me demande de
renseigner le mot de passe, comme on me le demande lorsque j'exécute la
2ème
macro pour déprotéger.

Est-ce possible?

Et est-ce aussi possible d'affecter cette macro à un bouton ET aussi
qu'elle
s'exécute automatquement à la fermeture du fichier?

Merci d'avance!

--
géjoun

/Enlever l''année pour m''écrire.../


Avatar
JB
Bonjour,


Créer un nom de champ avec Insertion/Nom/Définir:
(le nom de champ est le mot de passe)
toto: H:I;L:M

Private Sub Workbook_Open()
UserForm1.Show
End Sub

Private Sub B_ok_Click()
Sheets(1).Unprotect Password:=""
On Error Resume Next
Columns(Range(Me.motpasse).Address).EntireColumn.Hidden = False
Sheets(1).Protect Password:=""
Unload Me
End Sub

On masque les colonnes à la fermeture:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Sheets(1).Unprotect Password:=""
Columns("h:z").EntireColumn.Hidden = True
Sheets(1).Protect Password:=""
End Sub

http://boisgontierj.free.fr/fichiers/Protection/ProtectionOngletColonnesMP. xls

JB

On 2 mar, 12:23, géjoun wrote:
Bonjour,

Sur une feuille, j'ai inséré une macro affectée à un bouton pour afficher /
masquer des colonnes; et tout ça est protégé par un mot de passe.

Avec l'enregisteur de macro et des recherches sur le forum, je suis arriv é à
ça :

Private Sub CommandButton1_Click()
Range("H:I,L:M").EntireColumn.Hidden = True
ActiveSheet.Protect Password:="soe", DrawingObjects:lse,
Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingRows:=True, _
AllowInsertingColumns:=True, AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering: =True, _
AllowUsingPivotTables:=True
End Sub

seulement, j'aimerai que lors de l'exécution de la macro, on me demande de
renseigner le mot de passe, comme on me le demande lorsque j'exécute la 2ème
macro pour déprotéger.

Est-ce possible?

Et est-ce aussi possible d'affecter cette macro à un bouton ET aussi qu 'elle
s'exécute automatquement à la fermeture du fichier?

Merci d'avance!

--
géjoun

/Enlever l''année pour m''écrire.../


Avatar
géjoun
Bonjour,

Effectivement, ça m'affiche une boite de dialogue "mot de passe"; mais
aprés, j'en fait quoi de ça?

Je comprends pas trop comment l'intégrer à mon code.

A la base, je cherche juste le code qui correspond à la commande :

Outils / Protection / Protéger la feuille / Mot de passe pour oter la
protection de la feuille

de façon à ce que quand je lance ma macro pour masquer les colonnes et
vérouiller la feuille; ça me demande quel mot de passe je souhaite définir,
comme si je le faisait par l'interface d'excel.

--
géjoun

/Enlever l''année pour m''écrire.../



Bonjour.
Quelque chose du genre :

Sub test()
Dim Bon As Boolean
On Error Resume Next
Do While Bon = False
mdp = InputBox("Entrez le mot de passe")
ActiveSheet.Unprotect mdp
If Err.Number = 0 Then
Bon = True
Else
Err.Clear
End If
Loop
End Sub

Cordialement.
Daniel


Avatar
géjoun
Bonjour,

Cette macro se rapproche de ce que je souhaite faire, sauf qu'elle demande
un mot de passe pour faire afficher les colonnes, et n'empêche en rien
d'aller oter la protection de la feuille puis toutes les faire afficher ou
masquer.

Moi, je cherche à définir le mot de passe sans l'inscrire dans la macro,
mais que celle-ci fasse apparaitre la boite de dialogue de définition du mot
de passe de la commence "Protéger la feuille" au moment de l'exécution de ma
macro.

Et j'arrive pas à trouver ça sur le forum.

Est-ce possible?

Merci!
--
géjoun

/Enlever l''année pour m''écrire.../



Bonjour,


Créer un nom de champ avec Insertion/Nom/Définir:
(le nom de champ est le mot de passe)
toto: H:I;L:M

Private Sub Workbook_Open()
UserForm1.Show
End Sub

Private Sub B_ok_Click()
Sheets(1).Unprotect Password:=""
On Error Resume Next
Columns(Range(Me.motpasse).Address).EntireColumn.Hidden = False
Sheets(1).Protect Password:=""
Unload Me
End Sub

On masque les colonnes à la fermeture:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Sheets(1).Unprotect Password:=""
Columns("h:z").EntireColumn.Hidden = True
Sheets(1).Protect Password:=""
End Sub

http://boisgontierj.free.fr/fichiers/Protection/ProtectionOngletColonnesMP.xls

JB


Avatar
Daniel
Exécute la macro :

Sub test2()
Dim Bon As Boolean
On Error Resume Next
Do While Bon = False
mdp = InputBox("Entrez le mot de passe")
ActiveSheet.Unprotect mdp
If Err.Number = 0 Then
Bon = True
Else
Err.Clear
End If
Loop
End Sub

Quand tu entres le mot de passe, elle déprotège la feuille active. Si le mot
de passe est incorrect elle boucle pour redemander le mot de passe.
Daniel
"géjoun" a écrit dans le message de news:

Bonjour,

Effectivement, ça m'affiche une boite de dialogue "mot de passe"; mais
aprés, j'en fait quoi de ça?

Je comprends pas trop comment l'intégrer à mon code.

A la base, je cherche juste le code qui correspond à la commande :

Outils / Protection / Protéger la feuille / Mot de passe pour oter la
protection de la feuille

de façon à ce que quand je lance ma macro pour masquer les colonnes et
vérouiller la feuille; ça me demande quel mot de passe je souhaite
définir,
comme si je le faisait par l'interface d'excel.

--
géjoun

/Enlever l''année pour m''écrire.../



Bonjour.
Quelque chose du genre :

Sub test()
Dim Bon As Boolean
On Error Resume Next
Do While Bon = False
mdp = InputBox("Entrez le mot de passe")
ActiveSheet.Unprotect mdp
If Err.Number = 0 Then
Bon = True
Else
Err.Clear
End If
Loop
End Sub

Cordialement.
Daniel




Avatar
JB
Il faut bien sûr protéger le code et la feuille

http://cjoint.com/?dcqlBkoUfT

Private Sub Workbook_Open()
UserForm1.Show
End Sub

Private Sub B_ok_Click()
If Me.motpasse = "xxxxxx" Then
Sheets(1).Unprotect Password:="xxx"
Columns("h:j").Hidden = False
Sheets(1).Protect Password:="xxx"
Unload Me
End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Sheets(1).Unprotect Password:="xxx"
Columns("h:j").EntireColumn.Hidden = True
Sheets(1).Protect Password:="xxx"
End Sub

JB

On 2 mar, 15:01, géjoun wrote:
Bonjour,

Cette macro se rapproche de ce que je souhaite faire, sauf qu'elle demande
un mot de passe pour faire afficher les colonnes, et n'empêche en rien
d'aller oter la protection de la feuille puis toutes les faire afficher ou
masquer.

Moi, je cherche à définir le mot de passe sans l'inscrire dans la mac ro,
mais que celle-ci fasse apparaitre la boite de dialogue de définition d u mot
de passe de la commence "Protéger la feuille" au moment de l'exécutio n de ma
macro.

Et j'arrive pas à trouver ça sur le forum.

Est-ce possible?

Merci!
--
géjoun

/Enlever l''année pour m''écrire.../




Bonjour,

Créer un nom de champ avec Insertion/Nom/Définir:
(le nom de champ est le mot de passe)
toto: H:I;L:M

Private Sub Workbook_Open()
UserForm1.Show
End Sub

Private Sub B_ok_Click()
Sheets(1).Unprotect Password:=""
On Error Resume Next
Columns(Range(Me.motpasse).Address).EntireColumn.Hidden = False
Sheets(1).Protect Password:=""
Unload Me
End Sub

On masque les colonnes à la fermeture:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Sheets(1).Unprotect Password:=""
Columns("h:z").EntireColumn.Hidden = True
Sheets(1).Protect Password:=""
End Sub

http://boisgontierj.free.fr/fichiers/Protection/ProtectionOngletColon...

JB- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
DC
Bonjour, géjoun

Je pense avoir une réponse à ton problème, qui me vient de Daniel, il y à un
certain temps,
'-------------------------------------------------------------
Sub Annulle_Mise_à_Jour()
'
' Macro enregistrée le 10/04/2006 par Daniel

Range("PUH").Select

mdp = InputBox("Mot de passe", "Entrez le Mot de passe, sans masjuscule")
If mdp <> "daniel" Then Exit Sub

Range("PAH:PAB").Select
Selection.Copy
Range("PUH").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Range("A1").Select
End Sub
'---------------------------------------------------------
Mon prénom, étant également "daniel", je l'ai donc choisi comme mot de passe
et je peut te garantir que cette macro venant de Daniel fonctionne à
merveille, je te l'est mise au complet, mais seule la première partie te
concerne,

Salutations ! DC

"géjoun" a écrit dans le message de news:

Bonjour,

Sur une feuille, j'ai inséré une macro affectée à un bouton pour afficher
/
masquer des colonnes; et tout ça est protégé par un mot de passe.

Avec l'enregisteur de macro et des recherches sur le forum, je suis arrivé
à
ça :

Private Sub CommandButton1_Click()
Range("H:I,L:M").EntireColumn.Hidden = True
ActiveSheet.Protect Password:="soe", DrawingObjects:úlse,
Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingRows:=True, _
AllowInsertingColumns:=True, AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True,
_
AllowUsingPivotTables:=True
End Sub

seulement, j'aimerai que lors de l'exécution de la macro, on me demande de
renseigner le mot de passe, comme on me le demande lorsque j'exécute la
2ème
macro pour déprotéger.

Est-ce possible?

Et est-ce aussi possible d'affecter cette macro à un bouton ET aussi
qu'elle
s'exécute automatquement à la fermeture du fichier?

Merci d'avance!

--
géjoun

/Enlever l''année pour m''écrire.../


Avatar
géjoun
Bonjour,

J'ai essayé vos macros, et au final, vu que je souhaitais définir le mot de
passe à chaque fois pour pas qu'il apparaisse dans le vba, j'ai changé de
méthode.

J'ai bien défini un mot de passe dans le vba, mais j'en ai vérouillé l'accés
à mon code par un autre, et vu l'utilité de la macro, ça me suffit largement.

Merci à vous tous!

--
géjoun

/Enlever l''année pour m''écrire.../



Bonjour, géjoun

Je pense avoir une réponse à ton problème, qui me vient de Daniel, il y à un
certain temps,
'-------------------------------------------------------------
Sub Annulle_Mise_à_Jour()
'
' Macro enregistrée le 10/04/2006 par Daniel

Range("PUH").Select

mdp = InputBox("Mot de passe", "Entrez le Mot de passe, sans masjuscule")
If mdp <> "daniel" Then Exit Sub

Range("PAH:PAB").Select
Selection.Copy
Range("PUH").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveCell.Range("A1").Select
End Sub
'---------------------------------------------------------
Mon prénom, étant également "daniel", je l'ai donc choisi comme mot de passe
et je peut te garantir que cette macro venant de Daniel fonctionne à
merveille, je te l'est mise au complet, mais seule la première partie te
concerne,

Salutations ! DC

"géjoun" a écrit dans le message de news:

Bonjour,

Sur une feuille, j'ai inséré une macro affectée à un bouton pour afficher
/
masquer des colonnes; et tout ça est protégé par un mot de passe.

Avec l'enregisteur de macro et des recherches sur le forum, je suis arrivé
à
ça :

Private Sub CommandButton1_Click()
Range("H:I,L:M").EntireColumn.Hidden = True
ActiveSheet.Protect Password:="soe", DrawingObjects:úlse,
Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingRows:=True, _
AllowInsertingColumns:=True, AllowInsertingRows:=True, _
AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True,
_
AllowUsingPivotTables:=True
End Sub

seulement, j'aimerai que lors de l'exécution de la macro, on me demande de
renseigner le mot de passe, comme on me le demande lorsque j'exécute la
2ème
macro pour déprotéger.

Est-ce possible?

Et est-ce aussi possible d'affecter cette macro à un bouton ET aussi
qu'elle
s'exécute automatquement à la fermeture du fichier?

Merci d'avance!

--
géjoun

/Enlever l''année pour m''écrire.../