transformer un classeur en lecture seule

Le
Xavier
Bonjour à tous et bon dimanche,
j'ai un programme dans lequel j'ai mis un code VBA afin que dès le début
il demande le nom et le mot de passe de la personne.
Je souhaiterais ensuite suivant la personne, donner un accès total ou en
lecture seule.
Ma question : Est il possible une fois le classeur ouvert en accès
total, de lui imposer un accès en lecture seule ?

merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
PolareBear
Le #20373391
Bonjour,
Pour la lecture seule à attribuer après ouverture... je vois pas trop.
Mais on peut 'simuler' le fonctionnement, solution qui a l'avantage
d'éliminer 'enregistrer sous' aussi :

J'ai imaginé que tu mettais ton niveau d'accès utilisateur dans une
variable nommée user_level (n'oublie pas de la déclarer correctement...)
et que user_level=2 correspondait à une utilisation 'lecture seule

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If user_level = 2 Then Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
If user_level = 2 Then Cancel
End Sub

Ca te convient ?

Bon dimanche.

Rai

Xavier a écrit :
Bonjour à tous et bon dimanche,
j'ai un programme dans lequel j'ai mis un code VBA afin que dès le début
il demande le nom et le mot de passe de la personne.
Je souhaiterais ensuite suivant la personne, donner un accès total ou en
lecture seule.
Ma question : Est il possible une fois le classeur ouvert en accès
total, de lui imposer un accès en lecture seule ?

merci d'avance


Daniel.C
Le #20373631
Bonjour.
Pour donner un accès en lecture seule après ouverture du classeur :
ThisWorkbook.ChangeFileAccess xlReadOnly
Cordialement.
Daniel

Bonjour à tous et bon dimanche,
j'ai un programme dans lequel j'ai mis un code VBA afin que dès le début il
demande le nom et le mot de passe de la personne.
Je souhaiterais ensuite suivant la personne, donner un accès total ou en
lecture seule.
Ma question : Est il possible une fois le classeur ouvert en accès total, de
lui imposer un accès en lecture seule ?

merci d'avance


Xavier
Le #20374551
Merci Daniel, c'est génial
il y a toutefois un petit truc que j'aimerais améliorer mais je sais pas
si c'est possible.
Lorsque le code fait ThisWorkbook.ChangeFileAccess xlReadOnly le
programme me demande si je veux enregistrer le programme.

Moi je veux pas enregistrer et je veux pas de message. Pour enlever le
message je fais un coup de :
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
Application.DisplayAlerts = True

Là c'est mieux , j'ai plus de message mais il m'enregistre mon programme.

Ne peut-on empécher l'enregistrement ?

Merci
Xavier


Daniel.C a écrit :
Bonjour.
Pour donner un accès en lecture seule après ouverture du classeur :
ThisWorkbook.ChangeFileAccess xlReadOnly
Cordialement.
Daniel

Bonjour à tous et bon dimanche,
j'ai un programme dans lequel j'ai mis un code VBA afin que dès le
début il demande le nom et le mot de passe de la personne.
Je souhaiterais ensuite suivant la personne, donner un accès total ou
en lecture seule.
Ma question : Est il possible une fois le classeur ouvert en accès
total, de lui imposer un accès en lecture seule ?

merci d'avance






Xavier
Le #20374541
Merci pour ton idée. La solution de Daniel me convient mieux car je ne
souhaite pas verrouiller le "enregistrer sous".

Merci quand même car c'est une super idée que je garde pour un autre
programe.

Xavier


PolareBear a écrit :
Bonjour,
Pour la lecture seule à attribuer après ouverture... je vois pas trop.
Mais on peut 'simuler' le fonctionnement, solution qui a l'avantage
d'éliminer 'enregistrer sous' aussi :

J'ai imaginé que tu mettais ton niveau d'accès utilisateur dans une
variable nommée user_level (n'oublie pas de la déclarer correctement...)
et que user_level=2 correspondait à une utilisation 'lecture seule

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If user_level = 2 Then Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
If user_level = 2 Then Cancel
End Sub

Ca te convient ?

Bon dimanche.

Rai

Xavier a écrit :
Bonjour à tous et bon dimanche,
j'ai un programme dans lequel j'ai mis un code VBA afin que dès le
début il demande le nom et le mot de passe de la personne.
Je souhaiterais ensuite suivant la personne, donner un accès total ou
en lecture seule.
Ma question : Est il possible une fois le classeur ouvert en accès
total, de lui imposer un accès en lecture seule ?

merci d'avance




Daniel.C
Le #20375091
Essaie :
ThisWorkbook.Saved = True
ThisWorkbook.ChangeFileAccess xlReadOnly
Daniel

Merci Daniel, c'est génial
il y a toutefois un petit truc que j'aimerais améliorer mais je sais pas si
c'est possible.
Lorsque le code fait ThisWorkbook.ChangeFileAccess xlReadOnly le programme me
demande si je veux enregistrer le programme.

Moi je veux pas enregistrer et je veux pas de message. Pour enlever le
message je fais un coup de :
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
Application.DisplayAlerts = True

Là c'est mieux , j'ai plus de message mais il m'enregistre mon programme.

Ne peut-on empécher l'enregistrement ?

Merci
Xavier


Daniel.C a écrit :
Bonjour.
Pour donner un accès en lecture seule après ouverture du classeur :
ThisWorkbook.ChangeFileAccess xlReadOnly
Cordialement.
Daniel

Bonjour à tous et bon dimanche,
j'ai un programme dans lequel j'ai mis un code VBA afin que dès le début
il demande le nom et le mot de passe de la personne.
Je souhaiterais ensuite suivant la personne, donner un accès total ou en
lecture seule.
Ma question : Est il possible une fois le classeur ouvert en accès total,
de lui imposer un accès en lecture seule ?

merci d'avance








PolareBear
Le #20375081
si tu ne veux pas verrouiller le "enregistrer sous",
tu peux le faire ainsi :

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
If user_level = 2 and not SaveAsUI Then Cancel = True
End Sub


Xavier a écrit :
Merci pour ton idée. La solution de Daniel me convient mieux car je ne
souhaite pas verrouiller le "enregistrer sous".

Merci quand même car c'est une super idée que je garde pour un autre
programe.

Xavier


PolareBear a écrit :
Bonjour,
Pour la lecture seule à attribuer après ouverture... je vois pas trop.
Mais on peut 'simuler' le fonctionnement, solution qui a l'avantage
d'éliminer 'enregistrer sous' aussi :

J'ai imaginé que tu mettais ton niveau d'accès utilisateur dans une
variable nommée user_level (n'oublie pas de la déclarer correctement...)
et que user_level=2 correspondait à une utilisation 'lecture seule

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If user_level = 2 Then Saved = True
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
If user_level = 2 Then Cancel
End Sub

Ca te convient ?

Bon dimanche.

Rai

Xavier a écrit :
Bonjour à tous et bon dimanche,
j'ai un programme dans lequel j'ai mis un code VBA afin que dès le
début il demande le nom et le mot de passe de la personne.
Je souhaiterais ensuite suivant la personne, donner un accès total ou
en lecture seule.
Ma question : Est il possible une fois le classeur ouvert en accès
total, de lui imposer un accès en lecture seule ?

merci d'avance






Xavier
Le #20375451
super genial. Ca marche. Merci mille fois

Xavier

Daniel.C a écrit :
Essaie :
ThisWorkbook.Saved = True
ThisWorkbook.ChangeFileAccess xlReadOnly
Daniel

Merci Daniel, c'est génial
il y a toutefois un petit truc que j'aimerais améliorer mais je sais
pas si c'est possible.
Lorsque le code fait ThisWorkbook.ChangeFileAccess xlReadOnly le
programme me demande si je veux enregistrer le programme.

Moi je veux pas enregistrer et je veux pas de message. Pour enlever le
message je fais un coup de :
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
Application.DisplayAlerts = True

Là c'est mieux , j'ai plus de message mais il m'enregistre mon programme.

Ne peut-on empécher l'enregistrement ?

Merci
Xavier


Daniel.C a écrit :
Bonjour.
Pour donner un accès en lecture seule après ouverture du classeur :
ThisWorkbook.ChangeFileAccess xlReadOnly
Cordialement.
Daniel

Bonjour à tous et bon dimanche,
j'ai un programme dans lequel j'ai mis un code VBA afin que dès le
début il demande le nom et le mot de passe de la personne.
Je souhaiterais ensuite suivant la personne, donner un accès total
ou en lecture seule.
Ma question : Est il possible une fois le classeur ouvert en accès
total, de lui imposer un accès en lecture seule ?

merci d'avance












Publicité
Poster une réponse
Anonyme