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

Gestion d'une feuille excel multi-utilisateurs

5 réponses
Avatar
AF86
Bonjour à tous !

Voici mon problème :

Je dois organiser la gestion de bureaux entre plusieurs personnes. Il y a 5
bureaux et 10 personnes doivent se les partager ponctuellement... (voila pour
le fond).

J'ai donc créé un planning annuel avec les bureaux. Chaque utilisateur peut
voir le fichier sur le réseau et le modifier selon ses disponibilités. Ainsi
Mr "A" rentre son nom lundi matin pour le bureau "1" ensuite, Mr "B" rentre
son nom lundi après midi aussi pour le bureau "1"... Jusqu'ici tout va bien !

Sauf que (par un pur hasard !!!) Mr "C" voyant que le bureau "1" est prit le
lundi toute la journée, enlève Mr "A" le matin et se met à sa place... (Vous
voyer un peu la mentalité...)

Donc j'aimerais offrir la possibilité au premier qui se met sur un bureau de
valider la cellule sur laquelle il est placé et d'interdire aux autres de la
modifier ensuite...

Je pousserais le bouchon un peu plus loin en vous demander aussi une option
qui permet au premier inscrit de s'enlever ensuite lui-même si il s'est
arrangé avec un autre sur une autre date... Mais bon la j'en demande peut
être un peu trop... !!! lol

Enfin bref... Merci d'avance pour vos réponses et à bientôt

AF86

5 réponses

Avatar
Patrick BASTARD
Bonjour, *AF86*

Il existe une possibilité de verrouiller par code une cellule après
modification, ce qui empêche ensuite de la re-modifier.
Cette possibilité permet également d'affecter un mot de passe à cette
cellule, et ainsi, seul celui qui l'a verrouillé pourrait la déverrouiller.
(Outils, Protection, Permettre aux utilisateurs de protéger des plages
A tester si ton classeur est partagé sur le réseau.

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

Bonjour à tous !

Voici mon problème :

Je dois organiser la gestion de bureaux entre plusieurs personnes. Il
y a 5 bureaux et 10 personnes doivent se les partager
ponctuellement... (voila pour le fond).

J'ai donc créé un planning annuel avec les bureaux. Chaque
utilisateur peut voir le fichier sur le réseau et le modifier selon
ses disponibilités. Ainsi Mr "A" rentre son nom lundi matin pour le
bureau "1" ensuite, Mr "B" rentre son nom lundi après midi aussi pour
le bureau "1"... Jusqu'ici tout va bien !

Sauf que (par un pur hasard !!!) Mr "C" voyant que le bureau "1" est
prit le lundi toute la journée, enlève Mr "A" le matin et se met à sa
place... (Vous voyer un peu la mentalité...)

Donc j'aimerais offrir la possibilité au premier qui se met sur un
bureau de valider la cellule sur laquelle il est placé et d'interdire
aux autres de la modifier ensuite...

Je pousserais le bouchon un peu plus loin en vous demander aussi une
option qui permet au premier inscrit de s'enlever ensuite lui-même si
il s'est arrangé avec un autre sur une autre date... Mais bon la j'en
demande peut être un peu trop... !!! lol

Enfin bref... Merci d'avance pour vos réponses et à bientôt

AF86


Avatar
Philippe.R
Bonsoir,
Si je comprends bien, les utilisateurs sont en réseau ; ils ont donc un
identifiant qu'il est possible de récupérer et stocker dans une variable à
l'ouverture du fichier :

qUi=environ("username")

Si la convention arrêtée pour réserver un créneau est d'y saisir son
identifiant, le contenu de la cellule qu'on cherche à modifier peut être
comparé à la variable, de manière à interdire à un autre toute modification.

On aura ainsi, dans le module Thisworkbook

Private Sub Workbook_Open()
Public qUi As String
qUi = Environ("username")
End Sub

et dans le module de feuille :

Private Sub Worksheet_SelectionChange _
(ByVal Target As Range)
If Target.Value <> "" And Target.Value _
<> qUi Then Range("a1").Select
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"AF86" a écrit dans le message de
news:
Bonjour à tous !

Voici mon problème :

Je dois organiser la gestion de bureaux entre plusieurs personnes. Il y a
5
bureaux et 10 personnes doivent se les partager ponctuellement... (voila
pour
le fond).

J'ai donc créé un planning annuel avec les bureaux. Chaque utilisateur
peut
voir le fichier sur le réseau et le modifier selon ses disponibilités.
Ainsi
Mr "A" rentre son nom lundi matin pour le bureau "1" ensuite, Mr "B"
rentre
son nom lundi après midi aussi pour le bureau "1"... Jusqu'ici tout va
bien !

Sauf que (par un pur hasard !!!) Mr "C" voyant que le bureau "1" est prit
le
lundi toute la journée, enlève Mr "A" le matin et se met à sa place...
(Vous
voyer un peu la mentalité...)

Donc j'aimerais offrir la possibilité au premier qui se met sur un bureau
de
valider la cellule sur laquelle il est placé et d'interdire aux autres de
la
modifier ensuite...

Je pousserais le bouchon un peu plus loin en vous demander aussi une
option
qui permet au premier inscrit de s'enlever ensuite lui-même si il s'est
arrangé avec un autre sur une autre date... Mais bon la j'en demande peut
être un peu trop... !!! lol

Enfin bref... Merci d'avance pour vos réponses et à bientôt

AF86


Avatar
JB
Bonsoir,

http://cjoint.com/?chtXksKjJe

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target <> "" Then
If Target.Comment Is Nothing Then
ActiveSheet.Unprotect
Target.AddComment
Target.Comment.Text Text:=Environ("username")
Target.Comment.Shape.TextFrame.AutoSize = True
ActiveSheet.Protect
End If
Else
ActiveSheet.Unprotect
Target.Locked = False
Target.ClearComments
ActiveSheet.Protect
End If
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Value <> "" Then
If Not Target.Comment Is Nothing Then
ActiveSheet.Unprotect
If Target.Comment.Text = Environ("username") Then
Target.Locked = False
Else
Target.Locked = True
End If
ActiveSheet.Protect
End If
End If
End If
End Sub

JB
http://boisgontierjacques.free.fr


On 7 fév, 19:12, "Patrick BASTARD"
wrote:
Bonjour, *AF86*

Il existe une possibilité de verrouiller par code une cellule après
modification, ce qui empêche ensuite de la re-modifier.
Cette possibilité permet également d'affecter un mot de passe à cett e
cellule, et ainsi, seul celui qui l'a verrouillé pourrait la déverroui ller.
(Outils, Protection, Permettre aux utilisateurs de protéger des plages
A tester si ton classeur est partagé sur le réseau.

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.



Bonjour à tous !

Voici mon problème :

Je dois organiser la gestion de bureaux entre plusieurs personnes. Il
y a 5 bureaux et 10 personnes doivent se les partager
ponctuellement... (voila pour le fond).

J'ai donc créé un planning annuel avec les bureaux. Chaque
utilisateur peut voir le fichier sur le réseau et le modifier selon
ses disponibilités. Ainsi Mr "A" rentre son nom lundi matin pour le
bureau "1" ensuite, Mr "B" rentre son nom lundi après midi aussi pour
le bureau "1"... Jusqu'ici tout va bien !

Sauf que (par un pur hasard !!!) Mr "C" voyant que le bureau "1" est
prit le lundi toute la journée, enlève Mr "A" le matin et se met à sa
place... (Vous voyer un peu la mentalité...)

Donc j'aimerais offrir la possibilité au premier qui se met sur un
bureau de valider la cellule sur laquelle il est placé et d'interdire
aux autres de la modifier ensuite...

Je pousserais le bouchon un peu plus loin en vous demander aussi une
option qui permet au premier inscrit de s'enlever ensuite lui-même si
il s'est arrangé avec un autre sur une autre date... Mais bon la j'en
demande peut être un peu trop... !!! lol

Enfin bref... Merci d'avance pour vos réponses et à bientôt

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


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



Avatar
AF86
Merci beaucoup JB pour ta réponse, désolé de ne pas avoir pu te répondre
avant mais petite grippe oblige, j'ai patienté quelques jours... Enfin bon
maintenant je suis dispo !
Alors ton code semble être parfait mais il se passe quelques petits souci
lorsque je l'intégre à mon fichier excel...
Je l'ai modifier pour qu'il mache le boulot aux utilisateurs afin qu'ils
aient juste a cliquer sur une macro pour s'inscrire...
Le problème, c'est que ton code empeche l'execution de la macro... Aussi
est-ce que tu peux voir mon code afin de me dire si j'ai fait une erreur
quelque part :

Sub Sylvie()
' Sylvie Macro
ActiveCell.FormulaR1C1 = "Sylvie"
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
Selection.Font.Bold = True
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

Merci d'avance pour ta réponse sur ce sujet...



Bonsoir,

http://cjoint.com/?chtXksKjJe

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target <> "" Then
If Target.Comment Is Nothing Then
ActiveSheet.Unprotect
Target.AddComment
Target.Comment.Text Text:=Environ("username")
Target.Comment.Shape.TextFrame.AutoSize = True
ActiveSheet.Protect
End If
Else
ActiveSheet.Unprotect
Target.Locked = False
Target.ClearComments
ActiveSheet.Protect
End If
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Value <> "" Then
If Not Target.Comment Is Nothing Then
ActiveSheet.Unprotect
If Target.Comment.Text = Environ("username") Then
Target.Locked = False
Else
Target.Locked = True
End If
ActiveSheet.Protect
End If
End If
End If
End Sub

JB
http://boisgontierjacques.free.fr


On 7 fév, 19:12, "Patrick BASTARD"
wrote:
Bonjour, *AF86*

Il existe une possibilité de verrouiller par code une cellule après
modification, ce qui empêche ensuite de la re-modifier.
Cette possibilité permet également d'affecter un mot de passe à cette
cellule, et ainsi, seul celui qui l'a verrouillé pourrait la déverrouiller.
(Outils, Protection, Permettre aux utilisateurs de protéger des plages
A tester si ton classeur est partagé sur le réseau.

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.



Bonjour à tous !

Voici mon problème :

Je dois organiser la gestion de bureaux entre plusieurs personnes. Il
y a 5 bureaux et 10 personnes doivent se les partager
ponctuellement... (voila pour le fond).

J'ai donc créé un planning annuel avec les bureaux. Chaque
utilisateur peut voir le fichier sur le réseau et le modifier selon
ses disponibilités. Ainsi Mr "A" rentre son nom lundi matin pour le
bureau "1" ensuite, Mr "B" rentre son nom lundi après midi aussi pour
le bureau "1"... Jusqu'ici tout va bien !

Sauf que (par un pur hasard !!!) Mr "C" voyant que le bureau "1" est
prit le lundi toute la journée, enlève Mr "A" le matin et se met à sa
place... (Vous voyer un peu la mentalité...)

Donc j'aimerais offrir la possibilité au premier qui se met sur un
bureau de valider la cellule sur laquelle il est placé et d'interdire
aux autres de la modifier ensuite...

Je pousserais le bouchon un peu plus loin en vous demander aussi une
option qui permet au premier inscrit de s'enlever ensuite lui-même si
il s'est arrangé avec un autre sur une autre date... Mais bon la j'en
demande peut être un peu trop... !!! lol

Enfin bref... Merci d'avance pour vos réponses et à bientôt

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


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







Avatar
Philippe.R
C'était bien naturel, et avec plaisir...
;o))
--
Si, si, avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"AF86" a écrit dans le message de
news:
Merci beaucoup JB pour ta réponse, désolé de ne pas avoir pu te répondre
avant mais petite grippe oblige, j'ai patienté quelques jours... Enfin bon
maintenant je suis dispo !
Alors ton code semble être parfait mais il se passe quelques petits souci
lorsque je l'intégre à mon fichier excel...
Je l'ai modifier pour qu'il mache le boulot aux utilisateurs afin qu'ils
aient juste a cliquer sur une macro pour s'inscrire...
Le problème, c'est que ton code empeche l'execution de la macro... Aussi
est-ce que tu peux voir mon code afin de me dire si j'ai fait une erreur
quelque part :

Sub Sylvie()
' Sylvie Macro
ActiveCell.FormulaR1C1 = "Sylvie"
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent5
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
Selection.Font.Bold = True
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
End Sub

Merci d'avance pour ta réponse sur ce sujet...



Bonsoir,

http://cjoint.com/?chtXksKjJe

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Target <> "" Then
If Target.Comment Is Nothing Then
ActiveSheet.Unprotect
Target.AddComment
Target.Comment.Text Text:=Environ("username")
Target.Comment.Shape.TextFrame.AutoSize = True
ActiveSheet.Protect
End If
Else
ActiveSheet.Unprotect
Target.Locked = False
Target.ClearComments
ActiveSheet.Protect
End If
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then
If Target.Value <> "" Then
If Not Target.Comment Is Nothing Then
ActiveSheet.Unprotect
If Target.Comment.Text = Environ("username") Then
Target.Locked = False
Else
Target.Locked = True
End If
ActiveSheet.Protect
End If
End If
End If
End Sub

JB
http://boisgontierjacques.free.fr


On 7 fév, 19:12, "Patrick BASTARD"
wrote:
Bonjour, *AF86*

Il existe une possibilité de verrouiller par code une cellule après
modification, ce qui empêche ensuite de la re-modifier.
Cette possibilité permet également d'affecter un mot de passe à cette
cellule, et ainsi, seul celui qui l'a verrouillé pourrait la
déverrouiller.
(Outils, Protection, Permettre aux utilisateurs de protéger des plages
A tester si ton classeur est partagé sur le réseau.

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.



Bonjour à tous !

Voici mon problème :

Je dois organiser la gestion de bureaux entre plusieurs personnes. Il
y a 5 bureaux et 10 personnes doivent se les partager
ponctuellement... (voila pour le fond).

J'ai donc créé un planning annuel avec les bureaux. Chaque
utilisateur peut voir le fichier sur le réseau et le modifier selon
ses disponibilités. Ainsi Mr "A" rentre son nom lundi matin pour le
bureau "1" ensuite, Mr "B" rentre son nom lundi après midi aussi pour
le bureau "1"... Jusqu'ici tout va bien !

Sauf que (par un pur hasard !!!) Mr "C" voyant que le bureau "1" est
prit le lundi toute la journée, enlève Mr "A" le matin et se met à sa
place... (Vous voyer un peu la mentalité...)

Donc j'aimerais offrir la possibilité au premier qui se met sur un
bureau de valider la cellule sur laquelle il est placé et d'interdire
aux autres de la modifier ensuite...

Je pousserais le bouchon un peu plus loin en vous demander aussi une
option qui permet au premier inscrit de s'enlever ensuite lui-même si
il s'est arrangé avec un autre sur une autre date... Mais bon la j'en
demande peut être un peu trop... !!! lol

Enfin bref... Merci d'avance pour vos réponses et à bientôt

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


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