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 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èmevient 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
Partager