2 votes

Suivi du nom des utilisateurs de Share-drive et de l'heure d'ouverture dans Excel ?

J'ai trouvé un article similaire à ma question, comme indiqué ci-dessous ;

Comment savoir qui utilise ma feuille de calcul Excel ?

Cependant, j'aime bien la dernière colonne du commentaire >>. "Vous pourriez aussi mettre un horodatage dans la colonne suivante pour montrer quand la feuille de calcul a été utilisée.

Ma question est la suivante : quelqu'un peut-il me guider sur les étapes possibles ou me laisser copier le code pour faire cela s'il vous plaît ? et comment cacher la feuille de travail sans que personne ne s'en aperçoive ? La clé est, très important, tout doit être fait silencieusement que personne d'autre (d'autres utilisateurs dans sharedrive) pourrait découvrir que je suis en train de le suivre. La raison est que j'ai fait beaucoup de feuilles de travail de recherche, et je n'ai pas le temps/impossible de rendre chaque feuille de travail excel parfaite, j'ai besoin de les prioriser afin d'être efficace avec mon temps en sachant ce qui est le plus important pour les gens.

Merci beaucoup !

0voto

ryguy7272 Points 2017

Dans Excel, sous l'onglet Révision, vous disposez de la fonction "Suivi des modifications". Cela devrait faire tout ce que vous voulez.

Si vous voulez un script VBA pour faire cela, essayez l'un des exemples de code suivants.

Private Sub Worksheet_Change(ByVal Target As Range)
Set t = Target
Set a = Range("A:A")
If Intersect(t, a) Is Nothing Then Exit Sub
Application.EnableEvents = False
t.Offset(0, 7).Value = Environ("username")
Application.EnableEvents = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim V As Long
Application.EnableEvents = False

Set rng1 = Application.Union(Range("a1:g1"), Range("H:iv"))
Set rng = Application.Intersect(Target, rng1)
If Not rng Is Nothing Then Exit Sub

V = Target.Offset(0, 12).Value
If Target.Offset(0, 12) = "" Then
    With Range("H" & Target.Row)
       .Value = Target.Address & ": first entry by " & Application.UserName & " at " & Now()
       .ColumnWidth = 60
       .Interior.ColorIndex = 33
    End With
    Target.Offset(0, 12).Value = Target.Value
    Application.EnableEvents = True
    Exit Sub
End If
Target.Offset(0, 12).Value = Target.Value
With Range("H" & Target.Row)
  .Value = Target.Address & " changed from " & V & " to " & Target.Value & " by " & Application.UserName & " at " & Now()
   .ColumnWidth = 60
  .Interior.Color = vbYellow
End With
Application.EnableEvents = True
End Sub

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
        With Target
            If .Count > 1 Then Exit Sub
            If Not Intersect(Range("A2:A10"), .Cells) Is Nothing Then
                Application.EnableEvents = False
                Sheets("Sheet2").Select
                If IsEmpty(.Value) Then
                    .Offset(0, 1).ClearContents
                Else
                    With .Offset(0, 1)
                        .NumberFormat = "dd mmm yyyy hh:mm:ss"
                        .Value = Now
                    End With
                End If
                Sheets("Sheet1").Select
                Application.EnableEvents = True
            End If
        End With
End Sub

Tous ces scripts 'Worksheet_Change' sont des événements de feuille de travail. Vous devez faire un clic droit sur votre feuille et cliquer sur "Voir le code", puis coller le scripts dans la fenêtre qui s'ouvre. Essayez d'en utiliser un à la fois, pas les trois en même temps.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X