Macro affectation d'une ligne à un utilisateur

Bonjour à tous

Alors voila je vous expose mon problème. Je tente de créer une macro pour un fichier Excel qui est utilisé par plusieurs utilisateur.

Chaque utilisateur a des lignes qui lui appartient. On connais l'appartenance de la ligne grâce à la colonne A où est inscrite pour chaque ligne sont utilisateur.

La macro a pour but que lorsque qu'une autre personne que l'utilisateur de la ligne modifie cette ligne un message d'alerte apparaît pour le prévenir et lui laisser 2 choix : soit il est au courant que la ligne est pas à lui et il veut quand même modifier

soit c'était une erreur de sa part est la modification qu'il a faite sur cette ligne s'annule

Mon code est le suivant :

Mais il ne fonctionne pas. J'ai deux soucis. Le premier est qu'il récupère bien et reconnaît bien qui est l'utilisateur de la ligne mais qu'il n'empêche pas la modification par quelqu'un d'autre utilisateur.

L'annulation de la modification ne fonctionne pas non plus mais je pourrais le traiter qu'après avoir traiter le premier problème.

Quelqu'un serait pourquoi mon keycells ne prend pas la valeur de la ligne de l'username qui n'est pas propriétaire de la ligne ou si le problème vient d'ailleurs ou si je suis complétement à la masse ? lol

Private Sub Worksheet_Change(ByVal Target As Range)

Dim KeyCells As Range

Dim i As Integer

'La variable KeyCells contient les cellules qui déclencheront une alerte si elles sont modifiées.

For i = 0 To 12000

If Cells(i + 1, 1).Value = Environ("username") Then Else Set KeyCells = Columns("B:L").Rows(i + 1)

Next

If Not Application.Intersect(KeyCells, Range(Target.Address)) _

Is Nothing Then

' Affichage d'un message lorsque l'une des cellules désignées a été modifiée

If MsgBox("Ces lignes ne t'appartiennent pas, es-tu sur(-e) de vouloir les modifier?", vbYesNo, "Demande de confirmation") = vbYes Then MsgBox ("Modification sauvegardée") Else Sub Workbook_BeforeSave(vbyes, vbno)

End If

End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Cancel = True

MsgBox ("Modification(-s) annulé(-es)")

'Annule les demandes d'enregistrement

End Sub

Bonjour,

Ton code n'a aucune chance de faire ce que tu veux... Mais pourquoi, ne procèdes-tu pas à l'ouverture à :

1) verrouillage des cellules tous utilisateurs,

2) déverrouillage des cellules utilisateur actif,

3) éventuellement, masquage lignes autres utilisateurs,

4) protection feuille (seules les cellules déverrouillées seront accessibles.

Cordialement.

Comment fait on pour deverouiller a seulement certain utilisateurs ?

Propriété Locked des cellules à mettre à True (verrouillé) ou False (déverrouillé). Et le verrouillage prend effet lorsque tu protèges la feuille. Seule les cellules déverrouillées peuvent être modifiées.

Merci, je vais essayer ça !

Rechercher des sujets similaires à "macro affectation ligne utilisateur"