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

Mot de passe

24 réponses
Avatar
Thierry
Bonjour,

j'ai un fichier excel a qui j'ai donné lors de l'enregistrement deux mots de
passes :

- un pour la lecture
- un pour la mise à jour

Ma question est la suivante lors de l'ouverture de ce classeur je voudrais
qu'automatiquement dans le cas d'une ouverture avec le mot de passe en
lecture :

- verrouiller tout le classeur (aucun accés aux
cellules, aucun accés au macro et code des modules, rendre invisible une
feuille qui s'appelle Paramètres)

Dans le cas d'une ouverture en mise à jour pouvoir automatiquement accéder à
tout.

Est ce possible ?

Merci.

--
Ne pas répondre à l'adresse anti-spam.





---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000740-1, 15/05/2007
Analyse le : 15/05/2007 15:57:55
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com

4 réponses

1 2 3
Avatar
FFO
Re bonjours
En toute logique un fichier ouvert doit obligatoirement être fermé avant
réouverture ou il ne reste accessible qu'en lecture seule donc ne peux
modifier l'original

Il peut toute fois effectivement suite à un plantage de l'ordinateur être
libéré sans fermeture normale

Mais beaucoup de conditions doivent être requises pour se retrouver dans la
situation d'un classeur accessible librement sans mot de passe
Le blocage doit s'effectuer pendant l'utilisation du document avec la
configuration suivante :
1° L'utilisateur du document l'a ouvert en acces libre
2° L'utlisateur avait réalisé un enregistrement
3° l'utilisateur suivant ouvre le document en desactivant les macros

Autant dire situation tordu qui si possible présente un risque trés faible
de voir le jour

Enfin les utilisateurs libres premiers concernés par l'ingrités des données
victime de ce malheureux concours de circonstance ont tout loisir de réouvrir
le document pour le fermer normalement et ainsi le protéger

De plus avec des consignes appropriées on peut inviter ces utilisateur à ne
pas enregistrer sachant que la fermeture le fera pour eux

Le but du document protégé est de se prémunir des lecteurs seuls et non des
utlisateurs libres qui feront le nécessaire pour le plus grand bien de leur
données
Face à des fonctionnements anormaux quel moyen mettre en place pour une
parade efficace


Je ne vois pas dans le cas qui nous préoccupe une telle parade car si le
document était en accés libre au moment du blocage et qu'une telle
configuration est été enregistrée il le restera à sa prochaine réouverture

Une situation infaillible n'existe pas les déplombages fourmillent sur net

Toutefois si tu as un solution simple d'une efficacité à toute épreuve
Je prends !!!


Si la personne qui a les autorisations maxi sauvegarde sans fermer et
que la fermeture normale n'a pas lieu, le fichier sera sauvegardé sans
protection.
Il suffit ensuite de l'ouvrir en désavtivant les macros.

JB

n'a On 18 mai, 13:25, FFO wrote:
Salut JB
Je comprends pas ta remarque
Peux tu me préciser
Merci




Bonjour,

A la sauvagarde aussi (fin de tâche anormale).

JB

On 18 mai, 10:12, FFO wrote:
ReBonjours Thierry
En droite ligne de la remarque de JB
Un dernier cas n'est pas pris en compte, celui de l'ouverture du fichier en
desactivant les macros
Dans cette Hypothèse il est impératif lors de sa dernier fermeture de
l'avoir mis dans l'état Lecture seule ce qui le rendra dans le même état quoi
qu'il arrive à son ouverture suivante (Avec ou sans l'activation des Macros)
Pour celà il faut que tu rajoutes dans ThisWorkbook le code suivant :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets("Feuil1").Visible = True Then
Sheets("Feuil1").Select
ActiveWindow.SelectedSheets.Visible = False
End If
For I = 1 To Sheets.Count
Sheets(I).Protect "A", DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets(I).EnableSelection = xlNoSelection
Next
ActiveWorkbook.Protect "A", Structure:=True, Windows:úlse
ActiveWorkbook.Save
End Sub

Opération à réaliser avec la configuration Mise à jour pour pouvoir
l'enregistrer

Attention cette Macro supplémentaire pour pouvoir avant fermeture du
document établir la configuration lecture seule activera automatiquement son
enregistrement par la commande
ActiveWorkbook.Save
Si l'état lecture seul sera enregistré il en sera de même pour toutes
modifications réalisée par un utilisateur habilité quelque soit son bon
vouloir
En d'autre terme il ne pourras pas fermer ce document sans enregistrement
Peut être ne voudrait il pas voir ses modifications prises en compte
Un message l'en informant serait peut être utile pour l'inviter à les
supprimer manuellement avec l'adaptation du code comme ceci :
If Identité = "A" Then
For J = 1 To Sheets.Count
Sheets(J).Unprotect Identité
Next
VariableBooleanSave = False
ActiveWorkbook.Protect Identité, Structure:úlse, Windows:úlse
Sheets("Feuil1").Visible = True
MsgBox ("Attention Toutes les modifications seront automatiquement
enregistrées à la fermeture de ce document")

Voilà mes dernières suggestions
J'espère qu'elles t'apporteront un plus




Je vous poste tout ce que j'ai fait après tous les conseils donnés et
trouvés ici et la. Merci à vous tous.

à mettre dans ThisWorkBook :

Private VariableBooleanSave As Boolean 'variable postionnée pour
l'enregistrement du classeur
'
Private Sub Workbook_Open()
'
VariableBooleanSave = True 'Positionner la variable à True
'
' Récupération du mot de passe
'
Identité = InputBox("veuillez saisir le mot de passe", "Mot de passe", "")
'
' Première Identité testée = Lecture
'
If Identité = "Lecture" Then
If Sheets("Paramètres").Visible = True Then
Sheets("Paramètres").Select
ActiveWindow.SelectedSheets.Visible = False
End If
For i = 1 To Sheets.Count
Sheets(i).Protect "Mise à jour", DrawingObjects:=True,
Contents:=True, Scenarios:=True
Sheets(i).EnableSelection = xlNoSelection
Next
ActiveWorkbook.Protect "Mise à jour", Structure:=True,
Windows:úlse
Else
'
' Deuxième Identité testée = Mise à jour
'
If Identité = "Mise à jour" Then
For J = 1 To Sheets.Count
Sheets(J).Unprotect Identité
Next
VariableBooleanSave = False
ActiveWorkbook.Protect Identité, Structure:úlse, Windows:úlse
Sheets("Paramètres").Visible = True
Else
ThisWorkbook.Close
Application.Quit
End If
End If
'
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
'
' Test pour savoir si on a le droit d'enregistrer
'
If VariableBooleanSave = True Then
Cancel = VariableBooleanSave
MsgBox "Vous n'êtes pas logé en Mise à jour, fichier Non Sauvé..."
End If
'
End Sub

Pour interdire l'execution des macros (a placer au debut de chaque macro à
interdire) :

If InputBox("veuillez saisir le mot de passe", "mot de passe") <> "Mise à
jour" Then Exit Sub

Puis interdire l'accès a VBA ce que m'a dit FFO :

manuellement :
Click droit sur ThisWorkbook/Proprièté de VBAProject icone Protection
Cocher Verrouiller le projet pour l'affichage
Saisir un mot de passe
le confirmer
enregistrer
A l'ouverture suivante le VBA sera inaccessible sauf en le déverrouillant
avec le mot de passe

"ffo" a écrit dans le message de news:

Rebonjours
Quelques questions avant de me lancer dans l'avanture
J'ai consulté ton lien concernant les classeurs qui me semble interressant
Qu'entends tu par page d'accueil pour exposer ma démarche ????
lorque j'ouvre un fichier excel je n'ai qu'un certain nombre de feuilles
mais rien ne ressemblant de prés ou de loin à une page d'accueil
Il doit certainement faloir la réaliser
Merci de me donner des indications dans ce but

Dois je décortiquer le code et d'expliquer le pourquoi du comment de
chaque
instruction ???
ou
resterais je purement généraliste avec un préambule d'objet et quelques
explications sur le résultat obtenu ???

Ayant décortiqué je suppose tout le fil de la problématique penses tu
qu'il
est plus interressant de prendre l'option Classeur ou celui des bouts de
code
J'en appel à ton expérience et tes connaissances éprouvés de ton site

Merci pour ton concours






bonjour FFO
Tu peux l'intégrer dans un classeur exemple (n'importe lequel, tu fais
juste deux feuilles, une visible par un administrateur et l'autre par un
utilisateur lambda). En revanche écris en clair sur une page d'accueil
ce que fais ce classeur (problème posé, solution retenue) et surtout
indique en clair le mot de passe !
le but c'est que celui qui veut réutiliser l'exemple dans un de ses
classeurs puisse accéder au code et le modifier à sa sauce ensuite.

toutes les "instructions" pour faire un classeur utile à d'autres sont
sur cette page d'excelabo.
http://www.excelabo.net/moteurs/contribuer.php
Cette même page te permet une fois ton classeur fini de me l'envoyer.

Si tu préfères, tu peux aussi remettre ensemble tous les bouts du code
et le soumettre comme une astuce sans classeur exemple associé, dans ce
cas, utilise plutot cette page :
http://www.excelabo.net/moteurs/contribuer2.php
et merci !

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Salut Misange
Je découvre avec plaisir cette option
Que faut il faire à cette fin ???
Remettre tel quel le code je suis preneur
Mais toi le récupérer et ce afin d'éviter des manipulations
supplèmentaires
que je ne connais pas ne serait ce pas plus simple ???
L'intégrer dans un classeur exemple encore mieux mais n'importe quel
classeur peut convenir dans la mesure où celà ne concerne que son
verouillage
en fonction d'un mot de passe saisi, un classeur spéciphique n'est donc
pas
nécessaire
Je pense que quelques lignes d'introduction quant à son objet à
l'instar de
ce qui existe sur ce site seront à élaborer

Qui fait quoi ???

Merci de m'aider dans cette tâche
Je suis prêts à suivre tes indications
Dans l'attente de te lire








La ficelle a été longue et productive, si vous voulez remettre in
extenso le code, voire en faire un classeur exemple et me l'envoyer
sur
excelabo, je le mettrai avec plaisir à la disposition de tous, c'est
une
demande susceptible d'intéresser pas mal d'excelliens ;-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Rebonjour
Trés heureux que celà te convienne !!!!
Pour interdir l'enregistrement on atteint là les possibilité d'excel
Mais si aucune modification n'a pu être réalisée du fait des
conditions
instaurées par le profile lecture un enregistrement éventuel ne
serait pas
dommageable et ne porterait à aucune conséquence
Est ce donc bien utile
Toute fois tu as la possibilité de mettre le fichier concerné en
lecture
seule :
click droit sur le document puis Propriétés et cocher Lecture seule
Cette option malheureusement touchera tous les utlisateurs y compris
ceux
habilités à des modifications
Ils pourront toutefois l'enregistrer sous un









...

plus de détails »- Masquer le texte des messages précédents -

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















Avatar
JB
J'avais oublié un cas. Lorsque l'utilisateur qui a les droits maxi
sauvegarde et qu'un autre utilisateur ouvre au même moment en
désactivant les macros, il a un accès au mode non protégé.
Il ne faut donc pas que le fichier soit sauvegardé en mode non
protégé.

JB
On 18 mai, 14:33, FFO wrote:
Re bonjours
En toute logique un fichier ouvert doit obligatoirement être fermé av ant
réouverture ou il ne reste accessible qu'en lecture seule donc ne peux
modifier l'original

Il peut toute fois effectivement suite à un plantage de l'ordinateur être
libéré sans fermeture normale

Mais beaucoup de conditions doivent être requises pour se retrouver dan s la
situation d'un classeur accessible librement sans mot de passe
Le blocage doit s'effectuer pendant l'utilisation du document avec la
configuration suivante :
1° L'utilisateur du document l'a ouvert en acces libre
2° L'utlisateur avait réalisé un enregistrement
3° l'utilisateur suivant ouvre le document en desactivant les macros

Autant dire situation tordu qui si possible présente un risque trés f aible
de voir le jour

Enfin les utilisateurs libres premiers concernés par l'ingrités des d onnées
victime de ce malheureux concours de circonstance ont tout loisir de ré ouvrir
le document pour le fermer normalement et ainsi le protéger

De plus avec des consignes appropriées on peut inviter ces utilisateur à ne
pas enregistrer sachant que la fermeture le fera pour eux

Le but du document protégé est de se prémunir des lecteurs seuls et non des
utlisateurs libres qui feront le nécessaire pour le plus grand bien de leur
données
Face à des fonctionnements anormaux quel moyen mettre en place pour une
parade efficace

Je ne vois pas dans le cas qui nous préoccupe une telle parade car si le
document était en accés libre au moment du blocage et qu'une telle
configuration est été enregistrée il le restera à sa prochaine r éouverture

Une situation infaillible n'existe pas les déplombages fourmillent sur net

Toutefois si tu as un solution simple d'une efficacité à toute épre uve
Je prends !!!




Si la personne qui a les autorisations maxi sauvegarde sans fermer et
que la fermeture normale n'a pas lieu, le fichier sera sauvegardé sans
protection.
Il suffit ensuite de l'ouvrir en désavtivant les macros.

JB

n'a On 18 mai, 13:25, FFO wrote:
Salut JB
Je comprends pas ta remarque
Peux tu me préciser
Merci




Bonjour,

A la sauvagarde aussi (fin de tâche anormale).

JB

On 18 mai, 10:12, FFO wrote:
ReBonjours Thierry
En droite ligne de la remarque de JB
Un dernier cas n'est pas pris en compte, celui de l'ouverture du fichier en
desactivant les macros
Dans cette Hypothèse il est impératif lors de sa dernier ferm eture de
l'avoir mis dans l'état Lecture seule ce qui le rendra dans le même état quoi
qu'il arrive à son ouverture suivante (Avec ou sans l'activatio n des Macros)
Pour celà il faut que tu rajoutes dans ThisWorkbook le code sui vant :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets("Feuil1").Visible = True Then
Sheets("Feuil1").Select
ActiveWindow.SelectedSheets.Visible = False
End If
For I = 1 To Sheets.Count
Sheets(I).Protect "A", DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets(I).EnableSelection = xlNoSelection
Next
ActiveWorkbook.Protect "A", Structure:=True, Windows:úlse
ActiveWorkbook.Save
End Sub

Opération à réaliser avec la configuration Mise à jour po ur pouvoir
l'enregistrer

Attention cette Macro supplémentaire pour pouvoir avant fermetu re du
document établir la configuration lecture seule activera automa tiquement son
enregistrement par la commande
ActiveWorkbook.Save
Si l'état lecture seul sera enregistré il en sera de même p our toutes
modifications réalisée par un utilisateur habilité quelque soit son bon
vouloir
En d'autre terme il ne pourras pas fermer ce document sans enregi strement
Peut être ne voudrait il pas voir ses modifications prises en c ompte
Un message l'en informant serait peut être utile pour l'inviter à les
supprimer manuellement avec l'adaptation du code comme ceci :
If Identité = "A" Then
For J = 1 To Sheets.Count
Sheets(J).Unprotect Identité
Next
VariableBooleanSave = False
ActiveWorkbook.Protect Identité, Structure:úlse, Windows: úlse
Sheets("Feuil1").Visible = True
MsgBox ("Attention Toutes les modifications seront automatiquement
enregistrées à la fermeture de ce document")

Voilà mes dernières suggestions
J'espère qu'elles t'apporteront un plus






Je vous poste tout ce que j'ai fait après tous les conseils d onnés et
trouvés ici et la. Merci à vous tous.

à mettre dans ThisWorkBook :

Private VariableBooleanSave As Boolean 'variable postionnée p our
l'enregistrement du classeur
'
Private Sub Workbook_Open()
'
VariableBooleanSave = True 'Positionner la variable à True
'
' Récupération du mot de passe
'
Identité = InputBox("veuillez saisir le mot de passe", "Mot de passe", "")
'
' Première Identité testée = Lecture
'
If Identité = "Lecture" Then
If Sheets("Paramètres").Visible = True Then
Sheets("Paramètres").Select
ActiveWindow.SelectedSheets.Visible = False
End If
For i = 1 To Sheets.Count
Sheets(i).Protect "Mise à jour", DrawingObjects:=T rue,
Contents:=True, Scenarios:=True
Sheets(i).EnableSelection = xlNoSelection
Next
ActiveWorkbook.Protect "Mise à jour", Structure:=T rue,
Windows:úlse
Else
'
' Deuxième Identité testée = Mise à jour
'
If Identité = "Mise à jour" Then
For J = 1 To Sheets.Count
Sheets(J).Unprotect Identité
Next
VariableBooleanSave = False
ActiveWorkbook.Protect Identité, Structure:úlse, Wi ndows:úlse
Sheets("Paramètres").Visible = True
Else
ThisWorkbook.Close
Application.Quit
End If
End If
'
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Canc el As
Boolean)
'
' Test pour savoir si on a le droit d'enregistrer
'
If VariableBooleanSave = True Then
Cancel = VariableBooleanSave
MsgBox "Vous n'êtes pas logé en Mise à jour, fichier N on Sauvé..."
End If
'
End Sub

Pour interdire l'execution des macros (a placer au debut de cha que macro à
interdire) :

If InputBox("veuillez saisir le mot de passe", "mot de passe") <> "Mise à
jour" Then Exit Sub

Puis interdire l'accès a VBA ce que m'a dit FFO :

manuellement :
Click droit sur ThisWorkbook/Proprièté de VBAProject icone Protection
Cocher Verrouiller le projet pour l'affichage
Saisir un mot de passe
le confirmer
enregistrer
A l'ouverture suivante le VBA sera inaccessible sauf en le dé verrouillant
avec le mot de passe

"ffo" a écrit dans le messag e de news:

Rebonjours
Quelques questions avant de me lancer dans l'avanture
J'ai consulté ton lien concernant les classeurs qui me semb le interressant
Qu'entends tu par page d'accueil pour exposer ma démarche ? ???
lorque j'ouvre un fichier excel je n'ai qu'un certain nombre de feuilles
mais rien ne ressemblant de prés ou de loin à une page d' accueil
Il doit certainement faloir la réaliser
Merci de me donner des indications dans ce but

Dois je décortiquer le code et d'expliquer le pourquoi du c omment de
chaque
instruction ???
ou
resterais je purement généraliste avec un préambule d'o bjet et quelques
explications sur le résultat obtenu ???

Ayant décortiqué je suppose tout le fil de la problémat ique penses tu
qu'il
est plus interressant de prendre l'option Classeur ou celui d es bouts de
code
J'en appel à ton expérience et tes connaissances éprouv és de ton site

Merci pour ton concours








bonjour FFO
Tu peux l'intégrer dans un classeur exemple (n'importe leq uel, tu fais
juste deux feuilles, une visible par un administrateur et l' autre par un
utilisateur lambda). En revanche écris en clair sur une page d'accueil
ce que fais ce classeur (problème posé, solution retenue ) et surtout
indique en clair le mot de passe !
le but c'est que celui qui veut réutiliser l'exemple dans un de ses
classeurs puisse accéder au code et le modifier à sa sau ce ensuite.

toutes les "instructions" pour faire un classeur utile à d 'autres sont
sur cette page d'excelabo.
http://www.excelabo.net/moteurs/contribuer.php
Cette même page te permet une fois ton classeur fini de me l'envoyer.

Si tu préfères, tu peux aussi remettre ensemble tous les bouts du code
et le soumettre comme une astuce sans classeur








...

plus de détails »- Masquer le texte des messages précédents -

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









Avatar
FFO
Cou cou !!!
Encore moi
Si tel cas se présente l'utilisateur ouvrant le document que celui qui à les
droits libres est entrain de sauvegarder il ne peut l'avoir qu'en lecture
seule donc ne pourra corrompre l'original

N'est il pas ou je n'ai rien compris à la philosophie de Windows !!!



J'avais oublié un cas. Lorsque l'utilisateur qui a les droits maxi
sauvegarde et qu'un autre utilisateur ouvre au même moment en
désactivant les macros, il a un accès au mode non protégé.
Il ne faut donc pas que le fichier soit sauvegardé en mode non
protégé.

JB
On 18 mai, 14:33, FFO wrote:
Re bonjours
En toute logique un fichier ouvert doit obligatoirement être fermé avant
réouverture ou il ne reste accessible qu'en lecture seule donc ne peux
modifier l'original

Il peut toute fois effectivement suite à un plantage de l'ordinateur être
libéré sans fermeture normale

Mais beaucoup de conditions doivent être requises pour se retrouver dans la
situation d'un classeur accessible librement sans mot de passe
Le blocage doit s'effectuer pendant l'utilisation du document avec la
configuration suivante :
1° L'utilisateur du document l'a ouvert en acces libre
2° L'utlisateur avait réalisé un enregistrement
3° l'utilisateur suivant ouvre le document en desactivant les macros

Autant dire situation tordu qui si possible présente un risque trés faible
de voir le jour

Enfin les utilisateurs libres premiers concernés par l'ingrités des données
victime de ce malheureux concours de circonstance ont tout loisir de réouvrir
le document pour le fermer normalement et ainsi le protéger

De plus avec des consignes appropriées on peut inviter ces utilisateur à ne
pas enregistrer sachant que la fermeture le fera pour eux

Le but du document protégé est de se prémunir des lecteurs seuls et non des
utlisateurs libres qui feront le nécessaire pour le plus grand bien de leur
données
Face à des fonctionnements anormaux quel moyen mettre en place pour une
parade efficace

Je ne vois pas dans le cas qui nous préoccupe une telle parade car si le
document était en accés libre au moment du blocage et qu'une telle
configuration est été enregistrée il le restera à sa prochaine réouverture

Une situation infaillible n'existe pas les déplombages fourmillent sur net

Toutefois si tu as un solution simple d'une efficacité à toute épreuve
Je prends !!!




Si la personne qui a les autorisations maxi sauvegarde sans fermer et
que la fermeture normale n'a pas lieu, le fichier sera sauvegardé sans
protection.
Il suffit ensuite de l'ouvrir en désavtivant les macros.

JB

n'a On 18 mai, 13:25, FFO wrote:
Salut JB
Je comprends pas ta remarque
Peux tu me préciser
Merci




Bonjour,

A la sauvagarde aussi (fin de tâche anormale).

JB

On 18 mai, 10:12, FFO wrote:
ReBonjours Thierry
En droite ligne de la remarque de JB
Un dernier cas n'est pas pris en compte, celui de l'ouverture du fichier en
desactivant les macros
Dans cette Hypothèse il est impératif lors de sa dernier fermeture de
l'avoir mis dans l'état Lecture seule ce qui le rendra dans le même état quoi
qu'il arrive à son ouverture suivante (Avec ou sans l'activation des Macros)
Pour celà il faut que tu rajoutes dans ThisWorkbook le code suivant :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets("Feuil1").Visible = True Then
Sheets("Feuil1").Select
ActiveWindow.SelectedSheets.Visible = False
End If
For I = 1 To Sheets.Count
Sheets(I).Protect "A", DrawingObjects:=True, Contents:=True, Scenarios:=True
Sheets(I).EnableSelection = xlNoSelection
Next
ActiveWorkbook.Protect "A", Structure:=True, Windows:úlse
ActiveWorkbook.Save
End Sub

Opération à réaliser avec la configuration Mise à jour pour pouvoir
l'enregistrer

Attention cette Macro supplémentaire pour pouvoir avant fermeture du
document établir la configuration lecture seule activera automatiquement son
enregistrement par la commande
ActiveWorkbook.Save
Si l'état lecture seul sera enregistré il en sera de même pour toutes
modifications réalisée par un utilisateur habilité quelque soit son bon
vouloir
En d'autre terme il ne pourras pas fermer ce document sans enregistrement
Peut être ne voudrait il pas voir ses modifications prises en compte
Un message l'en informant serait peut être utile pour l'inviter à les
supprimer manuellement avec l'adaptation du code comme ceci :
If Identité = "A" Then
For J = 1 To Sheets.Count
Sheets(J).Unprotect Identité
Next
VariableBooleanSave = False
ActiveWorkbook.Protect Identité, Structure:úlse, Windows:úlse
Sheets("Feuil1").Visible = True
MsgBox ("Attention Toutes les modifications seront automatiquement
enregistrées à la fermeture de ce document")

Voilà mes dernières suggestions
J'espère qu'elles t'apporteront un plus






Je vous poste tout ce que j'ai fait après tous les conseils donnés et
trouvés ici et la. Merci à vous tous.

à mettre dans ThisWorkBook :

Private VariableBooleanSave As Boolean 'variable postionnée pour
l'enregistrement du classeur
'
Private Sub Workbook_Open()
'
VariableBooleanSave = True 'Positionner la variable à True
'
' Récupération du mot de passe
'
Identité = InputBox("veuillez saisir le mot de passe", "Mot de passe", "")
'
' Première Identité testée = Lecture
'
If Identité = "Lecture" Then
If Sheets("Paramètres").Visible = True Then
Sheets("Paramètres").Select
ActiveWindow.SelectedSheets.Visible = False
End If
For i = 1 To Sheets.Count
Sheets(i).Protect "Mise à jour", DrawingObjects:=True,
Contents:=True, Scenarios:=True
Sheets(i).EnableSelection = xlNoSelection
Next
ActiveWorkbook.Protect "Mise à jour", Structure:=True,
Windows:úlse
Else
'
' Deuxième Identité testée = Mise à jour
'
If Identité = "Mise à jour" Then
For J = 1 To Sheets.Count
Sheets(J).Unprotect Identité
Next
VariableBooleanSave = False
ActiveWorkbook.Protect Identité, Structure:úlse, Windows:úlse
Sheets("Paramètres").Visible = True
Else
ThisWorkbook.Close
Application.Quit
End If
End If
'
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
'
' Test pour savoir si on a le droit d'enregistrer
'
If VariableBooleanSave = True Then
Cancel = VariableBooleanSave
MsgBox "Vous n'êtes pas logé en Mise à jour, fichier Non Sauvé..."
End If
'
End Sub

Pour interdire l'execution des macros (a placer au debut de chaque macro à
interdire) :

If InputBox("veuillez saisir le mot de passe", "mot de passe") <> "Mise à
jour" Then Exit Sub

Puis interdire l'accès a VBA ce que m'a dit FFO :

manuellement :
Click droit sur ThisWorkbook/Proprièté de VBAProject icone Protection
Cocher Verrouiller le projet pour l'affichage
Saisir un mot de passe
le confirmer
enregistrer
A l'ouverture suivante le VBA sera inaccessible sauf en le déverrouillant
avec le mot de passe

"ffo" a écrit dans le message de news:

Rebonjours
Quelques questions avant de me lancer dans l'avanture
J'ai consulté ton lien concernant les classeurs qui me semble interressant
Qu'entends tu par page d'accueil pour exposer ma démarche ????
lorque j'ouvre un fichier excel je n'ai qu'un certain nombre de feuilles
mais rien ne ressemblant de prés ou de loin à une page d'accueil
Il doit certainement faloir la réaliser
Merci de me donner des indications dans ce but

Dois je décortiquer le code et d'expliquer le pourquoi du comment de
chaque
instruction ???
ou
resterais je purement généraliste avec un préambule d'objet et quelques
explications sur le résultat obtenu ???

Ayant décortiqué je suppose tout le fil de la problématique penses tu
qu'il
est plus interressant de prendre l'option Classeur ou celui des bouts de
code
J'en appel à ton expérience et tes connaissances éprouvés de ton site

Merci pour ton concours








bonjour FFO
Tu peux l'intégrer dans un classeur exemple (n'importe lequel, tu fais
juste deux feuilles, une visible par un administrateur et l'autre par un
utilisateur lambda). En revanche écris en clair sur une page d'accueil
ce que fais ce classeur (problème posé, solution retenue) et surtout
indique en clair le mot de passe !
le but c'est que celui qui veut réutiliser l'exemple dans un de ses
classeurs puisse accéder au code et le modifier à sa sauce ensuite.

toutes les "instructions" pour faire un classeur utile à d'autres sont
sur cette page d'excelabo.
http://www.excelabo.net/moteurs/contribuer.php
Cette même page te permet une fois ton classeur fini de me l'envoyer.

Si tu préfères, tu peux aussi remettre ensemble tous les bouts du code
et le soumettre comme une astuce sans classeur








...

plus de détails »- Masquer le texte des messages précédents -

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














Avatar
Thierry
Merci pour toute votre aide

"FFO" a écrit dans le message de news:

Cou cou !!!
Encore moi
Si tel cas se présente l'utilisateur ouvrant le document que celui qui à
les
droits libres est entrain de sauvegarder il ne peut l'avoir qu'en lecture
seule donc ne pourra corrompre l'original

N'est il pas ou je n'ai rien compris à la philosophie de Windows !!!



J'avais oublié un cas. Lorsque l'utilisateur qui a les droits maxi
sauvegarde et qu'un autre utilisateur ouvre au même moment en
désactivant les macros, il a un accès au mode non protégé.
Il ne faut donc pas que le fichier soit sauvegardé en mode non
protégé.

JB
On 18 mai, 14:33, FFO wrote:
Re bonjours
En toute logique un fichier ouvert doit obligatoirement être fermé
avant
réouverture ou il ne reste accessible qu'en lecture seule donc ne peux
modifier l'original

Il peut toute fois effectivement suite à un plantage de l'ordinateur
être
libéré sans fermeture normale

Mais beaucoup de conditions doivent être requises pour se retrouver
dans la
situation d'un classeur accessible librement sans mot de passe
Le blocage doit s'effectuer pendant l'utilisation du document avec la
configuration suivante :
1° L'utilisateur du document l'a ouvert en acces libre
2° L'utlisateur avait réalisé un enregistrement
3° l'utilisateur suivant ouvre le document en desactivant les macros

Autant dire situation tordu qui si possible présente un risque trés
faible
de voir le jour

Enfin les utilisateurs libres premiers concernés par l'ingrités des
données
victime de ce malheureux concours de circonstance ont tout loisir de
réouvrir
le document pour le fermer normalement et ainsi le protéger

De plus avec des consignes appropriées on peut inviter ces utilisateur
à ne
pas enregistrer sachant que la fermeture le fera pour eux

Le but du document protégé est de se prémunir des lecteurs seuls et non
des
utlisateurs libres qui feront le nécessaire pour le plus grand bien de
leur
données
Face à des fonctionnements anormaux quel moyen mettre en place pour une
parade efficace

Je ne vois pas dans le cas qui nous préoccupe une telle parade car si
le
document était en accés libre au moment du blocage et qu'une telle
configuration est été enregistrée il le restera à sa prochaine
réouverture

Une situation infaillible n'existe pas les déplombages fourmillent sur
net

Toutefois si tu as un solution simple d'une efficacité à toute épreuve
Je prends !!!




Si la personne qui a les autorisations maxi sauvegarde sans fermer et
que la fermeture normale n'a pas lieu, le fichier sera sauvegardé
sans
protection.
Il suffit ensuite de l'ouvrir en désavtivant les macros.

JB

n'a On 18 mai, 13:25, FFO wrote:
Salut JB
Je comprends pas ta remarque
Peux tu me préciser
Merci




Bonjour,

A la sauvagarde aussi (fin de tâche anormale).

JB

On 18 mai, 10:12, FFO wrote:
ReBonjours Thierry
En droite ligne de la remarque de JB
Un dernier cas n'est pas pris en compte, celui de l'ouverture
du fichier en
desactivant les macros
Dans cette Hypothèse il est impératif lors de sa dernier
fermeture de
l'avoir mis dans l'état Lecture seule ce qui le rendra dans le
même état quoi
qu'il arrive à son ouverture suivante (Avec ou sans
l'activation des Macros)
Pour celà il faut que tu rajoutes dans ThisWorkbook le code
suivant :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Sheets("Feuil1").Visible = True Then
Sheets("Feuil1").Select
ActiveWindow.SelectedSheets.Visible = False
End If
For I = 1 To Sheets.Count
Sheets(I).Protect "A", DrawingObjects:=True, Contents:=True,
Scenarios:=True
Sheets(I).EnableSelection = xlNoSelection
Next
ActiveWorkbook.Protect "A", Structure:=True, Windows:úlse
ActiveWorkbook.Save
End Sub

Opération à réaliser avec la configuration Mise à jour pour
pouvoir
l'enregistrer

Attention cette Macro supplémentaire pour pouvoir avant
fermeture du
document établir la configuration lecture seule activera
automatiquement son
enregistrement par la commande
ActiveWorkbook.Save
Si l'état lecture seul sera enregistré il en sera de même pour
toutes
modifications réalisée par un utilisateur habilité quelque soit
son bon
vouloir
En d'autre terme il ne pourras pas fermer ce document sans
enregistrement
Peut être ne voudrait il pas voir ses modifications prises en
compte
Un message l'en informant serait peut être utile pour l'inviter
à les
supprimer manuellement avec l'adaptation du code comme ceci :
If Identité = "A" Then
For J = 1 To Sheets.Count
Sheets(J).Unprotect Identité
Next
VariableBooleanSave = False
ActiveWorkbook.Protect Identité, Structure:úlse,
Windows:úlse
Sheets("Feuil1").Visible = True
MsgBox ("Attention Toutes les modifications seront
automatiquement
enregistrées à la fermeture de ce document")

Voilà mes dernières suggestions
J'espère qu'elles t'apporteront un plus






Je vous poste tout ce que j'ai fait après tous les conseils
donnés et
trouvés ici et la. Merci à vous tous.

à mettre dans ThisWorkBook :

Private VariableBooleanSave As Boolean 'variable postionnée
pour
l'enregistrement du classeur
'
Private Sub Workbook_Open()
'
VariableBooleanSave = True 'Positionner la variable à True
'
' Récupération du mot de passe
'
Identité = InputBox("veuillez saisir le mot de passe", "Mot
de passe", "")
'
' Première Identité testée = Lecture
'
If Identité = "Lecture" Then
If Sheets("Paramètres").Visible = True Then
Sheets("Paramètres").Select
ActiveWindow.SelectedSheets.Visible = False
End If
For i = 1 To Sheets.Count
Sheets(i).Protect "Mise à jour",
DrawingObjects:=True,
Contents:=True, Scenarios:=True
Sheets(i).EnableSelection = xlNoSelection
Next
ActiveWorkbook.Protect "Mise à jour",
Structure:=True,
Windows:úlse
Else
'
' Deuxième Identité testée = Mise à jour
'
If Identité = "Mise à jour" Then
For J = 1 To Sheets.Count
Sheets(J).Unprotect Identité
Next
VariableBooleanSave = False
ActiveWorkbook.Protect Identité, Structure:úlse,
Windows:úlse
Sheets("Paramètres").Visible = True
Else
ThisWorkbook.Close
Application.Quit
End If
End If
'
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean,
Cancel As
Boolean)
'
' Test pour savoir si on a le droit d'enregistrer
'
If VariableBooleanSave = True Then
Cancel = VariableBooleanSave
MsgBox "Vous n'êtes pas logé en Mise à jour, fichier Non
Sauvé..."
End If
'
End Sub

Pour interdire l'execution des macros (a placer au debut de
chaque macro à
interdire) :

If InputBox("veuillez saisir le mot de passe", "mot de
passe") <> "Mise à
jour" Then Exit Sub

Puis interdire l'accès a VBA ce que m'a dit FFO :

manuellement :
Click droit sur ThisWorkbook/Proprièté de VBAProject icone
Protection
Cocher Verrouiller le projet pour l'affichage
Saisir un mot de passe
le confirmer
enregistrer
A l'ouverture suivante le VBA sera inaccessible sauf en le
déverrouillant
avec le mot de passe

"ffo" a écrit dans le
message de news:

Rebonjours
Quelques questions avant de me lancer dans l'avanture
J'ai consulté ton lien concernant les classeurs qui me
semble interressant
Qu'entends tu par page d'accueil pour exposer ma démarche
????
lorque j'ouvre un fichier excel je n'ai qu'un certain
nombre de feuilles
mais rien ne ressemblant de prés ou de loin à une page
d'accueil
Il doit certainement faloir la réaliser
Merci de me donner des indications dans ce but

Dois je décortiquer le code et d'expliquer le pourquoi du
comment de
chaque
instruction ???
ou
resterais je purement généraliste avec un préambule d'objet
et quelques
explications sur le résultat obtenu ???

Ayant décortiqué je suppose tout le fil de la problématique
penses tu
qu'il
est plus interressant de prendre l'option Classeur ou celui
des bouts de
code
J'en appel à ton expérience et tes connaissances éprouvés
de ton site

Merci pour ton concours








bonjour FFO
Tu peux l'intégrer dans un classeur exemple (n'importe
lequel, tu fais
juste deux feuilles, une visible par un administrateur et
l'autre par un
utilisateur lambda). En revanche écris en clair sur une
page d'accueil
ce que fais ce classeur (problème posé, solution retenue)
et surtout
indique en clair le mot de passe !
le but c'est que celui qui veut réutiliser l'exemple dans
un de ses
classeurs puisse accéder au code et le modifier à sa sauce
ensuite.

toutes les "instructions" pour faire un classeur utile à
d'autres sont
sur cette page d'excelabo.
http://www.excelabo.net/moteurs/contribuer.php
Cette même page te permet une fois ton classeur fini de me
l'envoyer.

Si tu préfères, tu peux aussi remettre ensemble tous les
bouts du code
et le soumettre comme une astuce sans classeur








...

plus de détails »- Masquer le texte des messages précédents -

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







---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000741-4, 18/05/2007
Analyse le : 19/05/2007 07:50:53
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com








---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000741-4, 18/05/2007
Analyse le : 19/05/2007 07:57:48
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com










1 2 3