Bonjour FFO,
La macro sera moins longue et aussi efficace. C'est très bien ainsi.
Quand tu dis:" Il est possible de contraindre à cette disposition à la
fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook
évitant ainsi
l'oubli potentiel"
N'est-il pas possible de créer cette action au moment de la sauvegarde
du fichier?
Sinon créer un bouton qui lance une macro de "sauvegarde et quitte"
qui viderait la case et ferait apparaître " Mot de passe" avant de
quitter
Merci encore de ton aide.
JP
On 3 jan, 09:26, FFO wrote:Rebonjour à toi
Aprés avoir analysé ton document je te propose en simplification ce code :
If Target.Row = 4 And Target.Column > 3 And Target.Column < 6 And Target <>
"Mot de passe" Then
ActiveSheet.Unprotect ("ien")
'Colonne 1
If Target.Address = Range("D4").Address And Target = "1923" Then
Range("D5:D24,D28:D30,D32:D36,D38:D43,D45:D46,D48:D53,D55:D62,D64").Locked > > False
Range("S6:V14,S16:V43,S44:T44").Locked = False
Autorisation = 1
End If
'Colonne 2
If Target.Address = Range("E4").Address And Target = "1044" Then
Range("E5:E24,E28:E30,E32:E36,E38:E43,E45:E46,E48:E53,E55:E62,E64").Locked > > False
Range("w6:z14,w16:z43,w44:x44").Locked = False
Autorisation = 1
End If
'Colonne 3
If Target.Address = Range("F4").Address And Target = "2428" Then
Range("F5:F24,F28:F30,F32:F36,F38:F43,F45:F46,F48:F53,F55:F62,F64").Locked > > False
Range("AA6:AD14,AA16:AD43,AA44:AB44").Locked = False
Autorisation = 1
End If
'Colonne 4
If Target.Address = Range("G4").Address And Target = "1607" Then
Range("G5:G24,G28:G30,G32:G36,G38:G43,G45:G46,G48:G53,G55:G62,G64").Locked > > False
Range("AE6:AH14,AE16:AH43,AE44:AF44").Locked = False
Autorisation = 1
End If
'Contrôle de la saisie
If Autorisation <> 1 Then
Target = "Mot de passe"
Cells.Locked = True
Range("D4", "O4").Locked = False
End If
ActiveSheet.Protect ("ien")
a = Target.Value
End If
qui réalise la même chose avec moins de lignes
Sa sécurité est soustendue à la suppression du mot de passe saisie par
l'utilisateur avec enregistrement en suivant de celui-ci pour qu'à la
prochaine réouverture seules les cellules D4 à O4 soient dévérouillées avec
la mention "Mot de passe" à l'interieur de chacune d'elles et non un mot de
passe oublié par le prédécesseur avec toutes les conséquences qui en résultent
Il est possible de contraindre à cette disposition à la fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook évitant ainsi
l'oubli potentiel
A toi de statuer
Dis moi !!!!Oups
Le mot de passe et "ien"
Les mots de passe pour les colonnes sont
colonne 1 1923
colonne 2 1044
colonne 3 2428
colonne 4 1607
Désolé.
JP
On 2 jan, 17:32, FFO wrote:Rebonjour à toi
Attention si tu mets en place une procédure pour débloquer des cellules en
fonction de la saisie d'une autre cellule il faudra bien mettre en place un
2° procédure pour retrouver l'état initial des verroux
Cette dernière à l'instar de la première devra être déclenchée par un signal
un état une action réalisé par l'utilisateur sortant
Il a mis en place une situation en montrant patte blanche dans une cellule
il faudra en faire de même par une action à déterminer de ce même utilisateur
pour retrouver l'état initial
A toi de nous donner comme tu la fait pour enclencher l'état de déblocage
l'indicateur qui doit remettre en place l'état de blocage
Il va de soi que ces indicateurs ou actions s'adresseront de manière
identique à tous les utilisateurs et seront à réaliser autant dans le
déblocage que dans le blocage par leur soin
Ces états donc seront tributaire de leur participation
Dans l'attente de te lireSalut FFO,
Je suis désolé mais le but est de bloquer le prochain utilisateur sur
les cellules A2:A20. J'ai 10 personnes différentes qui vont intervenir
sur le fichier. La première intervient sur les cellules A2:A20, la
deuxième sur les cellules B2:B20 etc. chaque personne devrait avoir un
mot de passe à placer en tête de colonne pour n'intervenir que ses
cellules.
Les risques de modif des cellules n'appartenant pas à la personne sont
ainsi nuls.
Tu me dis si c'est possible de l'améliorer.
Merci d'avance
JP
On 2 jan, 11:56, FFO wrote:Salut à toi
Je te propose aprés avoir protégé ta feuille (Outils/Protection/Protéger la
feuille) en mettant un mot de passe (à ne pas oublier biensure)
de mettre dans le VBA de cette feuille ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
If Target = "Toto" Then
ActiveSheet.Unprotect ("Mot de passe")
Range("A2:A20").Locked = False
ActiveSheet.Protect ("Mot de passe")
End If
End If
End Sub
Les cellules A2 à A20 seront déverrouillées avec le nom "Toto" saisi en A1
Il faudra les reverrouiller éventuellement avant la fermeture du classeur
Celà te convient il ????Bonjour à tous,
Peut-on protéger des cellules d'après le contenu d'une autre cellule..
Exemple: en a1 j'ai le mot de passe. Les cellules autorisées en
écritures seraient de a2 à a20.
Merci de vos lumières
JP- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour FFO,
La macro sera moins longue et aussi efficace. C'est très bien ainsi.
Quand tu dis:" Il est possible de contraindre à cette disposition à la
fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook
évitant ainsi
l'oubli potentiel"
N'est-il pas possible de créer cette action au moment de la sauvegarde
du fichier?
Sinon créer un bouton qui lance une macro de "sauvegarde et quitte"
qui viderait la case et ferait apparaître " Mot de passe" avant de
quitter
Merci encore de ton aide.
JP
On 3 jan, 09:26, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Aprés avoir analysé ton document je te propose en simplification ce code :
If Target.Row = 4 And Target.Column > 3 And Target.Column < 6 And Target <>
"Mot de passe" Then
ActiveSheet.Unprotect ("ien")
'Colonne 1
If Target.Address = Range("D4").Address And Target = "1923" Then
Range("D5:D24,D28:D30,D32:D36,D38:D43,D45:D46,D48:D53,D55:D62,D64").Locked > > False
Range("S6:V14,S16:V43,S44:T44").Locked = False
Autorisation = 1
End If
'Colonne 2
If Target.Address = Range("E4").Address And Target = "1044" Then
Range("E5:E24,E28:E30,E32:E36,E38:E43,E45:E46,E48:E53,E55:E62,E64").Locked > > False
Range("w6:z14,w16:z43,w44:x44").Locked = False
Autorisation = 1
End If
'Colonne 3
If Target.Address = Range("F4").Address And Target = "2428" Then
Range("F5:F24,F28:F30,F32:F36,F38:F43,F45:F46,F48:F53,F55:F62,F64").Locked > > False
Range("AA6:AD14,AA16:AD43,AA44:AB44").Locked = False
Autorisation = 1
End If
'Colonne 4
If Target.Address = Range("G4").Address And Target = "1607" Then
Range("G5:G24,G28:G30,G32:G36,G38:G43,G45:G46,G48:G53,G55:G62,G64").Locked > > False
Range("AE6:AH14,AE16:AH43,AE44:AF44").Locked = False
Autorisation = 1
End If
'Contrôle de la saisie
If Autorisation <> 1 Then
Target = "Mot de passe"
Cells.Locked = True
Range("D4", "O4").Locked = False
End If
ActiveSheet.Protect ("ien")
a = Target.Value
End If
qui réalise la même chose avec moins de lignes
Sa sécurité est soustendue à la suppression du mot de passe saisie par
l'utilisateur avec enregistrement en suivant de celui-ci pour qu'à la
prochaine réouverture seules les cellules D4 à O4 soient dévérouillées avec
la mention "Mot de passe" à l'interieur de chacune d'elles et non un mot de
passe oublié par le prédécesseur avec toutes les conséquences qui en résultent
Il est possible de contraindre à cette disposition à la fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook évitant ainsi
l'oubli potentiel
A toi de statuer
Dis moi !!!!
Oups
Le mot de passe et "ien"
Les mots de passe pour les colonnes sont
colonne 1 1923
colonne 2 1044
colonne 3 2428
colonne 4 1607
Désolé.
JP
On 2 jan, 17:32, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Attention si tu mets en place une procédure pour débloquer des cellules en
fonction de la saisie d'une autre cellule il faudra bien mettre en place un
2° procédure pour retrouver l'état initial des verroux
Cette dernière à l'instar de la première devra être déclenchée par un signal
un état une action réalisé par l'utilisateur sortant
Il a mis en place une situation en montrant patte blanche dans une cellule
il faudra en faire de même par une action à déterminer de ce même utilisateur
pour retrouver l'état initial
A toi de nous donner comme tu la fait pour enclencher l'état de déblocage
l'indicateur qui doit remettre en place l'état de blocage
Il va de soi que ces indicateurs ou actions s'adresseront de manière
identique à tous les utilisateurs et seront à réaliser autant dans le
déblocage que dans le blocage par leur soin
Ces états donc seront tributaire de leur participation
Dans l'attente de te lire
Salut FFO,
Je suis désolé mais le but est de bloquer le prochain utilisateur sur
les cellules A2:A20. J'ai 10 personnes différentes qui vont intervenir
sur le fichier. La première intervient sur les cellules A2:A20, la
deuxième sur les cellules B2:B20 etc. chaque personne devrait avoir un
mot de passe à placer en tête de colonne pour n'intervenir que ses
cellules.
Les risques de modif des cellules n'appartenant pas à la personne sont
ainsi nuls.
Tu me dis si c'est possible de l'améliorer.
Merci d'avance
JP
On 2 jan, 11:56, FFO <F...@discussions.microsoft.com> wrote:
Salut à toi
Je te propose aprés avoir protégé ta feuille (Outils/Protection/Protéger la
feuille) en mettant un mot de passe (à ne pas oublier biensure)
de mettre dans le VBA de cette feuille ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
If Target = "Toto" Then
ActiveSheet.Unprotect ("Mot de passe")
Range("A2:A20").Locked = False
ActiveSheet.Protect ("Mot de passe")
End If
End If
End Sub
Les cellules A2 à A20 seront déverrouillées avec le nom "Toto" saisi en A1
Il faudra les reverrouiller éventuellement avant la fermeture du classeur
Celà te convient il ????
Bonjour à tous,
Peut-on protéger des cellules d'après le contenu d'une autre cellule..
Exemple: en a1 j'ai le mot de passe. Les cellules autorisées en
écritures seraient de a2 à a20.
Merci de vos lumières
JP- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Bonjour FFO,
La macro sera moins longue et aussi efficace. C'est très bien ainsi.
Quand tu dis:" Il est possible de contraindre à cette disposition à la
fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook
évitant ainsi
l'oubli potentiel"
N'est-il pas possible de créer cette action au moment de la sauvegarde
du fichier?
Sinon créer un bouton qui lance une macro de "sauvegarde et quitte"
qui viderait la case et ferait apparaître " Mot de passe" avant de
quitter
Merci encore de ton aide.
JP
On 3 jan, 09:26, FFO wrote:Rebonjour à toi
Aprés avoir analysé ton document je te propose en simplification ce code :
If Target.Row = 4 And Target.Column > 3 And Target.Column < 6 And Target <>
"Mot de passe" Then
ActiveSheet.Unprotect ("ien")
'Colonne 1
If Target.Address = Range("D4").Address And Target = "1923" Then
Range("D5:D24,D28:D30,D32:D36,D38:D43,D45:D46,D48:D53,D55:D62,D64").Locked > > False
Range("S6:V14,S16:V43,S44:T44").Locked = False
Autorisation = 1
End If
'Colonne 2
If Target.Address = Range("E4").Address And Target = "1044" Then
Range("E5:E24,E28:E30,E32:E36,E38:E43,E45:E46,E48:E53,E55:E62,E64").Locked > > False
Range("w6:z14,w16:z43,w44:x44").Locked = False
Autorisation = 1
End If
'Colonne 3
If Target.Address = Range("F4").Address And Target = "2428" Then
Range("F5:F24,F28:F30,F32:F36,F38:F43,F45:F46,F48:F53,F55:F62,F64").Locked > > False
Range("AA6:AD14,AA16:AD43,AA44:AB44").Locked = False
Autorisation = 1
End If
'Colonne 4
If Target.Address = Range("G4").Address And Target = "1607" Then
Range("G5:G24,G28:G30,G32:G36,G38:G43,G45:G46,G48:G53,G55:G62,G64").Locked > > False
Range("AE6:AH14,AE16:AH43,AE44:AF44").Locked = False
Autorisation = 1
End If
'Contrôle de la saisie
If Autorisation <> 1 Then
Target = "Mot de passe"
Cells.Locked = True
Range("D4", "O4").Locked = False
End If
ActiveSheet.Protect ("ien")
a = Target.Value
End If
qui réalise la même chose avec moins de lignes
Sa sécurité est soustendue à la suppression du mot de passe saisie par
l'utilisateur avec enregistrement en suivant de celui-ci pour qu'à la
prochaine réouverture seules les cellules D4 à O4 soient dévérouillées avec
la mention "Mot de passe" à l'interieur de chacune d'elles et non un mot de
passe oublié par le prédécesseur avec toutes les conséquences qui en résultent
Il est possible de contraindre à cette disposition à la fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook évitant ainsi
l'oubli potentiel
A toi de statuer
Dis moi !!!!Oups
Le mot de passe et "ien"
Les mots de passe pour les colonnes sont
colonne 1 1923
colonne 2 1044
colonne 3 2428
colonne 4 1607
Désolé.
JP
On 2 jan, 17:32, FFO wrote:Rebonjour à toi
Attention si tu mets en place une procédure pour débloquer des cellules en
fonction de la saisie d'une autre cellule il faudra bien mettre en place un
2° procédure pour retrouver l'état initial des verroux
Cette dernière à l'instar de la première devra être déclenchée par un signal
un état une action réalisé par l'utilisateur sortant
Il a mis en place une situation en montrant patte blanche dans une cellule
il faudra en faire de même par une action à déterminer de ce même utilisateur
pour retrouver l'état initial
A toi de nous donner comme tu la fait pour enclencher l'état de déblocage
l'indicateur qui doit remettre en place l'état de blocage
Il va de soi que ces indicateurs ou actions s'adresseront de manière
identique à tous les utilisateurs et seront à réaliser autant dans le
déblocage que dans le blocage par leur soin
Ces états donc seront tributaire de leur participation
Dans l'attente de te lireSalut FFO,
Je suis désolé mais le but est de bloquer le prochain utilisateur sur
les cellules A2:A20. J'ai 10 personnes différentes qui vont intervenir
sur le fichier. La première intervient sur les cellules A2:A20, la
deuxième sur les cellules B2:B20 etc. chaque personne devrait avoir un
mot de passe à placer en tête de colonne pour n'intervenir que ses
cellules.
Les risques de modif des cellules n'appartenant pas à la personne sont
ainsi nuls.
Tu me dis si c'est possible de l'améliorer.
Merci d'avance
JP
On 2 jan, 11:56, FFO wrote:Salut à toi
Je te propose aprés avoir protégé ta feuille (Outils/Protection/Protéger la
feuille) en mettant un mot de passe (à ne pas oublier biensure)
de mettre dans le VBA de cette feuille ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
If Target = "Toto" Then
ActiveSheet.Unprotect ("Mot de passe")
Range("A2:A20").Locked = False
ActiveSheet.Protect ("Mot de passe")
End If
End If
End Sub
Les cellules A2 à A20 seront déverrouillées avec le nom "Toto" saisi en A1
Il faudra les reverrouiller éventuellement avant la fermeture du classeur
Celà te convient il ????Bonjour à tous,
Peut-on protéger des cellules d'après le contenu d'une autre cellule..
Exemple: en a1 j'ai le mot de passe. Les cellules autorisées en
écritures seraient de a2 à a20.
Merci de vos lumières
JP- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
Rebonjour à toi
Ce que tu propose est tout à fait jouable mais reste soustendu aussi à
l'action d'enregistrement de l'utilisateur qui est peut être un oubli
potentiel
Ce qui a le moins de chance d'être omis c'est la fermeture du document
Et de toute façon il ne peux être accessible avec un nouvelle état n on
conforme tant qu'il n'a pas été refermé
Je te propose dans le Thisworkbook du classeur de mettre ce code :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Unprotect ("ien")
Cells.Locked = True
Range("D4", "O4").Locked = False
For Each c In Worksheets("CAP MACON").Range("D4", "O4")
If c <> "Mot de passe" Then
c.Value = "Mot de passe"
End If
Next
ActiveSheet.Protect ("ien")
ActiveWorkbook.Save
End Sub
Il faudra pour éviter les regards indiscrets qui seraient tenter de
consulter tous les codes et de trouver les mots de passe protéger tes pr ojets
avec un mot de passe qui peut être identique ou différent ainsi :
Click droit sur ThisWorkbook
Propriétés de VBAProject
Protection
Cocher : Verrouiller le projet pour l'affichage
Saisir le mot de passe dans la fenêtre prévue à cette effet et OK
Je pense qu'avec tout ceci tu devrais être servi
Le seul inconvénient est que le classeur à chacune de ses fermetures s era
systématiquement enregistré que l'utilisateur le souhaite ou non
Bien l'informer de cette disposition afin qu'il ne laisse pas des saisies
qu'il ne souhaiterait pas concerver
Donne moi tes impressions !!!!Bonjour FFO,
La macro sera moins longue et aussi efficace. C'est très bien ainsi.
Quand tu dis:" Il est possible de contraindre à cette disposition à la
fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook
évitant ainsi
l'oubli potentiel"
N'est-il pas possible de créer cette action au moment de la sauvegarde
du fichier?
Sinon créer un bouton qui lance une macro de "sauvegarde et quitte"
qui viderait la case et ferait apparaître " Mot de passe" avant de
quitter
Merci encore de ton aide.
JP
On 3 jan, 09:26, FFO wrote:Rebonjour à toi
Aprés avoir analysé ton document je te propose en simplification c e code :
If Target.Row = 4 And Target.Column > 3 And Target.Column < 6 And Target <>
"Mot de passe" Then
ActiveSheet.Unprotect ("ien")
'Colonne 1
If Target.Address = Range("D4").Address And Target = " 1923" Then
Range("D5:D24,D28:D30,D32:D36,D38:D43,D45:D46,D48:D53,D55:D62,D64").Lo cked =
False
Range("S6:V14,S16:V43,S44:T44").Locked = False
Autorisation = 1
End If
'Colonne 2
If Target.Address = Range("E4").Address And Target = " 1044" Then
Range("E5:E24,E28:E30,E32:E36,E38:E43,E45:E46,E48:E53,E55:E62,E64").Lo cked =
False
Range("w6:z14,w16:z43,w44:x44").Locked = False
Autorisation = 1
End If
'Colonne 3
If Target.Address = Range("F4").Address And Target = " 2428" Then
Range("F5:F24,F28:F30,F32:F36,F38:F43,F45:F46,F48:F53,F55:F62,F64").Lo cked =
False
Range("AA6:AD14,AA16:AD43,AA44:AB44").Locked = False
Autorisation = 1
End If
'Colonne 4
If Target.Address = Range("G4").Address And Target = " 1607" Then
Range("G5:G24,G28:G30,G32:G36,G38:G43,G45:G46,G48:G53,G55:G62,G64").Lo cked =
False
Range("AE6:AH14,AE16:AH43,AE44:AF44").Locked = False
Autorisation = 1
End If
'Contrôle de la saisie
If Autorisation <> 1 Then
Target = "Mot de passe"
Cells.Locked = True
Range("D4", "O4").Locked = False
End If
ActiveSheet.Protect ("ien")
a = Target.Value
End If
qui réalise la même chose avec moins de lignes
Sa sécurité est soustendue à la suppression du mot de passe sais ie par
l'utilisateur avec enregistrement en suivant de celui-ci pour qu'à l a
prochaine réouverture seules les cellules D4 à O4 soient dévér ouillées avec
la mention "Mot de passe" à l'interieur de chacune d'elles et non un mot de
passe oublié par le prédécesseur avec toutes les conséquences qui en résultent
Il est possible de contraindre à cette disposition à la fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook évitant ainsi
l'oubli potentiel
A toi de statuer
Dis moi !!!!Oups
Le mot de passe et "ien"
Les mots de passe pour les colonnes sont
colonne 1 1923
colonne 2 1044
colonne 3 2428
colonne 4 1607
Désolé.
JP
On 2 jan, 17:32, FFO wrote:Rebonjour à toi
Attention si tu mets en place une procédure pour débloquer des cellules en
fonction de la saisie d'une autre cellule il faudra bien mettre en place un
2° procédure pour retrouver l'état initial des verroux
Cette dernière à l'instar de la première devra être décl enchée par un signal
un état une action réalisé par l'utilisateur sortant
Il a mis en place une situation en montrant patte blanche dans une cellule
il faudra en faire de même par une action à déterminer de ce même utilisateur
pour retrouver l'état initial
A toi de nous donner comme tu la fait pour enclencher l'état de déblocage
l'indicateur qui doit remettre en place l'état de blocage
Il va de soi que ces indicateurs ou actions s'adresseront de mani ère
identique à tous les utilisateurs et seront à réaliser autan t dans le
déblocage que dans le blocage par leur soin
Ces états donc seront tributaire de leur participation
Dans l'attente de te lireSalut FFO,
Je suis désolé mais le but est de bloquer le prochain utilis ateur sur
les cellules A2:A20. J'ai 10 personnes différentes qui vont in tervenir
sur le fichier. La première intervient sur les cellules A2:A20 , la
deuxième sur les cellules B2:B20 etc. chaque personne devrait avoir un
mot de passe à placer en tête de colonne pour n'intervenir q ue ses
cellules.
Les risques de modif des cellules n'appartenant pas à la perso nne sont
ainsi nuls.
Tu me dis si c'est possible de l'améliorer.
Merci d'avance
JP
On 2 jan, 11:56, FFO wrote:Salut à toi
Je te propose aprés avoir protégé ta feuille (Outils/Pro tection/Protéger la
feuille) en mettant un mot de passe (à ne pas oublier biensu re)
de mettre dans le VBA de cette feuille ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
If Target = "Toto" Then
ActiveSheet.Unprotect ("Mot de passe")
Range("A2:A20").Locked = False
ActiveSheet.Protect ("Mot de passe")
End If
End If
End Sub
Les cellules A2 à A20 seront déverrouillées avec le nom "Toto" saisi en A1
Il faudra les reverrouiller éventuellement avant la fermetur e du classeur
Celà te convient il ????Bonjour à tous,
Peut-on protéger des cellules d'après le contenu d'une a utre cellule..
Exemple: en a1 j'ai le mot de passe. Les cellules autorisé es en
écritures seraient de a2 à a20.
Merci de vos lumières
JP- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Rebonjour à toi
Ce que tu propose est tout à fait jouable mais reste soustendu aussi à
l'action d'enregistrement de l'utilisateur qui est peut être un oubli
potentiel
Ce qui a le moins de chance d'être omis c'est la fermeture du document
Et de toute façon il ne peux être accessible avec un nouvelle état n on
conforme tant qu'il n'a pas été refermé
Je te propose dans le Thisworkbook du classeur de mettre ce code :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Unprotect ("ien")
Cells.Locked = True
Range("D4", "O4").Locked = False
For Each c In Worksheets("CAP MACON").Range("D4", "O4")
If c <> "Mot de passe" Then
c.Value = "Mot de passe"
End If
Next
ActiveSheet.Protect ("ien")
ActiveWorkbook.Save
End Sub
Il faudra pour éviter les regards indiscrets qui seraient tenter de
consulter tous les codes et de trouver les mots de passe protéger tes pr ojets
avec un mot de passe qui peut être identique ou différent ainsi :
Click droit sur ThisWorkbook
Propriétés de VBAProject
Protection
Cocher : Verrouiller le projet pour l'affichage
Saisir le mot de passe dans la fenêtre prévue à cette effet et OK
Je pense qu'avec tout ceci tu devrais être servi
Le seul inconvénient est que le classeur à chacune de ses fermetures s era
systématiquement enregistré que l'utilisateur le souhaite ou non
Bien l'informer de cette disposition afin qu'il ne laisse pas des saisies
qu'il ne souhaiterait pas concerver
Donne moi tes impressions !!!!
Bonjour FFO,
La macro sera moins longue et aussi efficace. C'est très bien ainsi.
Quand tu dis:" Il est possible de contraindre à cette disposition à la
fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook
évitant ainsi
l'oubli potentiel"
N'est-il pas possible de créer cette action au moment de la sauvegarde
du fichier?
Sinon créer un bouton qui lance une macro de "sauvegarde et quitte"
qui viderait la case et ferait apparaître " Mot de passe" avant de
quitter
Merci encore de ton aide.
JP
On 3 jan, 09:26, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Aprés avoir analysé ton document je te propose en simplification c e code :
If Target.Row = 4 And Target.Column > 3 And Target.Column < 6 And Target <>
"Mot de passe" Then
ActiveSheet.Unprotect ("ien")
'Colonne 1
If Target.Address = Range("D4").Address And Target = " 1923" Then
Range("D5:D24,D28:D30,D32:D36,D38:D43,D45:D46,D48:D53,D55:D62,D64").Lo cked =
False
Range("S6:V14,S16:V43,S44:T44").Locked = False
Autorisation = 1
End If
'Colonne 2
If Target.Address = Range("E4").Address And Target = " 1044" Then
Range("E5:E24,E28:E30,E32:E36,E38:E43,E45:E46,E48:E53,E55:E62,E64").Lo cked =
False
Range("w6:z14,w16:z43,w44:x44").Locked = False
Autorisation = 1
End If
'Colonne 3
If Target.Address = Range("F4").Address And Target = " 2428" Then
Range("F5:F24,F28:F30,F32:F36,F38:F43,F45:F46,F48:F53,F55:F62,F64").Lo cked =
False
Range("AA6:AD14,AA16:AD43,AA44:AB44").Locked = False
Autorisation = 1
End If
'Colonne 4
If Target.Address = Range("G4").Address And Target = " 1607" Then
Range("G5:G24,G28:G30,G32:G36,G38:G43,G45:G46,G48:G53,G55:G62,G64").Lo cked =
False
Range("AE6:AH14,AE16:AH43,AE44:AF44").Locked = False
Autorisation = 1
End If
'Contrôle de la saisie
If Autorisation <> 1 Then
Target = "Mot de passe"
Cells.Locked = True
Range("D4", "O4").Locked = False
End If
ActiveSheet.Protect ("ien")
a = Target.Value
End If
qui réalise la même chose avec moins de lignes
Sa sécurité est soustendue à la suppression du mot de passe sais ie par
l'utilisateur avec enregistrement en suivant de celui-ci pour qu'à l a
prochaine réouverture seules les cellules D4 à O4 soient dévér ouillées avec
la mention "Mot de passe" à l'interieur de chacune d'elles et non un mot de
passe oublié par le prédécesseur avec toutes les conséquences qui en résultent
Il est possible de contraindre à cette disposition à la fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook évitant ainsi
l'oubli potentiel
A toi de statuer
Dis moi !!!!
Oups
Le mot de passe et "ien"
Les mots de passe pour les colonnes sont
colonne 1 1923
colonne 2 1044
colonne 3 2428
colonne 4 1607
Désolé.
JP
On 2 jan, 17:32, FFO <F...@discussions.microsoft.com> wrote:
Rebonjour à toi
Attention si tu mets en place une procédure pour débloquer des cellules en
fonction de la saisie d'une autre cellule il faudra bien mettre en place un
2° procédure pour retrouver l'état initial des verroux
Cette dernière à l'instar de la première devra être décl enchée par un signal
un état une action réalisé par l'utilisateur sortant
Il a mis en place une situation en montrant patte blanche dans une cellule
il faudra en faire de même par une action à déterminer de ce même utilisateur
pour retrouver l'état initial
A toi de nous donner comme tu la fait pour enclencher l'état de déblocage
l'indicateur qui doit remettre en place l'état de blocage
Il va de soi que ces indicateurs ou actions s'adresseront de mani ère
identique à tous les utilisateurs et seront à réaliser autan t dans le
déblocage que dans le blocage par leur soin
Ces états donc seront tributaire de leur participation
Dans l'attente de te lire
Salut FFO,
Je suis désolé mais le but est de bloquer le prochain utilis ateur sur
les cellules A2:A20. J'ai 10 personnes différentes qui vont in tervenir
sur le fichier. La première intervient sur les cellules A2:A20 , la
deuxième sur les cellules B2:B20 etc. chaque personne devrait avoir un
mot de passe à placer en tête de colonne pour n'intervenir q ue ses
cellules.
Les risques de modif des cellules n'appartenant pas à la perso nne sont
ainsi nuls.
Tu me dis si c'est possible de l'améliorer.
Merci d'avance
JP
On 2 jan, 11:56, FFO <F...@discussions.microsoft.com> wrote:
Salut à toi
Je te propose aprés avoir protégé ta feuille (Outils/Pro tection/Protéger la
feuille) en mettant un mot de passe (à ne pas oublier biensu re)
de mettre dans le VBA de cette feuille ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
If Target = "Toto" Then
ActiveSheet.Unprotect ("Mot de passe")
Range("A2:A20").Locked = False
ActiveSheet.Protect ("Mot de passe")
End If
End If
End Sub
Les cellules A2 à A20 seront déverrouillées avec le nom "Toto" saisi en A1
Il faudra les reverrouiller éventuellement avant la fermetur e du classeur
Celà te convient il ????
Bonjour à tous,
Peut-on protéger des cellules d'après le contenu d'une a utre cellule..
Exemple: en a1 j'ai le mot de passe. Les cellules autorisé es en
écritures seraient de a2 à a20.
Merci de vos lumières
JP- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -
Rebonjour à toi
Ce que tu propose est tout à fait jouable mais reste soustendu aussi à
l'action d'enregistrement de l'utilisateur qui est peut être un oubli
potentiel
Ce qui a le moins de chance d'être omis c'est la fermeture du document
Et de toute façon il ne peux être accessible avec un nouvelle état n on
conforme tant qu'il n'a pas été refermé
Je te propose dans le Thisworkbook du classeur de mettre ce code :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveSheet.Unprotect ("ien")
Cells.Locked = True
Range("D4", "O4").Locked = False
For Each c In Worksheets("CAP MACON").Range("D4", "O4")
If c <> "Mot de passe" Then
c.Value = "Mot de passe"
End If
Next
ActiveSheet.Protect ("ien")
ActiveWorkbook.Save
End Sub
Il faudra pour éviter les regards indiscrets qui seraient tenter de
consulter tous les codes et de trouver les mots de passe protéger tes pr ojets
avec un mot de passe qui peut être identique ou différent ainsi :
Click droit sur ThisWorkbook
Propriétés de VBAProject
Protection
Cocher : Verrouiller le projet pour l'affichage
Saisir le mot de passe dans la fenêtre prévue à cette effet et OK
Je pense qu'avec tout ceci tu devrais être servi
Le seul inconvénient est que le classeur à chacune de ses fermetures s era
systématiquement enregistré que l'utilisateur le souhaite ou non
Bien l'informer de cette disposition afin qu'il ne laisse pas des saisies
qu'il ne souhaiterait pas concerver
Donne moi tes impressions !!!!Bonjour FFO,
La macro sera moins longue et aussi efficace. C'est très bien ainsi.
Quand tu dis:" Il est possible de contraindre à cette disposition à la
fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook
évitant ainsi
l'oubli potentiel"
N'est-il pas possible de créer cette action au moment de la sauvegarde
du fichier?
Sinon créer un bouton qui lance une macro de "sauvegarde et quitte"
qui viderait la case et ferait apparaître " Mot de passe" avant de
quitter
Merci encore de ton aide.
JP
On 3 jan, 09:26, FFO wrote:Rebonjour à toi
Aprés avoir analysé ton document je te propose en simplification c e code :
If Target.Row = 4 And Target.Column > 3 And Target.Column < 6 And Target <>
"Mot de passe" Then
ActiveSheet.Unprotect ("ien")
'Colonne 1
If Target.Address = Range("D4").Address And Target = " 1923" Then
Range("D5:D24,D28:D30,D32:D36,D38:D43,D45:D46,D48:D53,D55:D62,D64").Lo cked =
False
Range("S6:V14,S16:V43,S44:T44").Locked = False
Autorisation = 1
End If
'Colonne 2
If Target.Address = Range("E4").Address And Target = " 1044" Then
Range("E5:E24,E28:E30,E32:E36,E38:E43,E45:E46,E48:E53,E55:E62,E64").Lo cked =
False
Range("w6:z14,w16:z43,w44:x44").Locked = False
Autorisation = 1
End If
'Colonne 3
If Target.Address = Range("F4").Address And Target = " 2428" Then
Range("F5:F24,F28:F30,F32:F36,F38:F43,F45:F46,F48:F53,F55:F62,F64").Lo cked =
False
Range("AA6:AD14,AA16:AD43,AA44:AB44").Locked = False
Autorisation = 1
End If
'Colonne 4
If Target.Address = Range("G4").Address And Target = " 1607" Then
Range("G5:G24,G28:G30,G32:G36,G38:G43,G45:G46,G48:G53,G55:G62,G64").Lo cked =
False
Range("AE6:AH14,AE16:AH43,AE44:AF44").Locked = False
Autorisation = 1
End If
'Contrôle de la saisie
If Autorisation <> 1 Then
Target = "Mot de passe"
Cells.Locked = True
Range("D4", "O4").Locked = False
End If
ActiveSheet.Protect ("ien")
a = Target.Value
End If
qui réalise la même chose avec moins de lignes
Sa sécurité est soustendue à la suppression du mot de passe sais ie par
l'utilisateur avec enregistrement en suivant de celui-ci pour qu'à l a
prochaine réouverture seules les cellules D4 à O4 soient dévér ouillées avec
la mention "Mot de passe" à l'interieur de chacune d'elles et non un mot de
passe oublié par le prédécesseur avec toutes les conséquences qui en résultent
Il est possible de contraindre à cette disposition à la fermeture du
document au moyen d'un code adapté intégré dans le ThisWorkbook évitant ainsi
l'oubli potentiel
A toi de statuer
Dis moi !!!!Oups
Le mot de passe et "ien"
Les mots de passe pour les colonnes sont
colonne 1 1923
colonne 2 1044
colonne 3 2428
colonne 4 1607
Désolé.
JP
On 2 jan, 17:32, FFO wrote:Rebonjour à toi
Attention si tu mets en place une procédure pour débloquer des cellules en
fonction de la saisie d'une autre cellule il faudra bien mettre en place un
2° procédure pour retrouver l'état initial des verroux
Cette dernière à l'instar de la première devra être décl enchée par un signal
un état une action réalisé par l'utilisateur sortant
Il a mis en place une situation en montrant patte blanche dans une cellule
il faudra en faire de même par une action à déterminer de ce même utilisateur
pour retrouver l'état initial
A toi de nous donner comme tu la fait pour enclencher l'état de déblocage
l'indicateur qui doit remettre en place l'état de blocage
Il va de soi que ces indicateurs ou actions s'adresseront de mani ère
identique à tous les utilisateurs et seront à réaliser autan t dans le
déblocage que dans le blocage par leur soin
Ces états donc seront tributaire de leur participation
Dans l'attente de te lireSalut FFO,
Je suis désolé mais le but est de bloquer le prochain utilis ateur sur
les cellules A2:A20. J'ai 10 personnes différentes qui vont in tervenir
sur le fichier. La première intervient sur les cellules A2:A20 , la
deuxième sur les cellules B2:B20 etc. chaque personne devrait avoir un
mot de passe à placer en tête de colonne pour n'intervenir q ue ses
cellules.
Les risques de modif des cellules n'appartenant pas à la perso nne sont
ainsi nuls.
Tu me dis si c'est possible de l'améliorer.
Merci d'avance
JP
On 2 jan, 11:56, FFO wrote:Salut à toi
Je te propose aprés avoir protégé ta feuille (Outils/Pro tection/Protéger la
feuille) en mettant un mot de passe (à ne pas oublier biensu re)
de mettre dans le VBA de cette feuille ce code
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = Range("A1").Address Then
If Target = "Toto" Then
ActiveSheet.Unprotect ("Mot de passe")
Range("A2:A20").Locked = False
ActiveSheet.Protect ("Mot de passe")
End If
End If
End Sub
Les cellules A2 à A20 seront déverrouillées avec le nom "Toto" saisi en A1
Il faudra les reverrouiller éventuellement avant la fermetur e du classeur
Celà te convient il ????Bonjour à tous,
Peut-on protéger des cellules d'après le contenu d'une a utre cellule..
Exemple: en a1 j'ai le mot de passe. Les cellules autorisé es en
écritures seraient de a2 à a20.
Merci de vos lumières
JP- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -- Masquer le text e des messages précédents -
- Afficher le texte des messages précédents -- Masquer le texte de s messages précédents -
- Afficher le texte des messages précédents -