Savoir qui a "verrouillé pour modification"

srib Messages postés 23 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 22 mars 2011 - 21 mars 2011 à 11:56
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 - 22 mars 2011 à 16:29
Bonjour,

Avec plusieurs collègues on se partage un fichier Excel. Je suis en train de faire une macro qui envoie automatiquement un "net send" à la personne qui a ouvert en 1er le fichier Excel.

Si j'ouvre le fichier et qu'il est déjà ouvert sur un autre poste j'ai le message : "Mon_fichier.xls est verrouillé pour modification par Toto"

Mon problème est de récupérer le nom de l'utilisateur "Toto" qui ouvert le fichier en question avec VBA.

Quelqu'un connaît-il la commande ou le code pour faire cela ?

Merci beaucoup
Bonne journée
Sylvain

4 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
21 mars 2011 à 14:08
le plus simple, surement, c'est d'activer le partage de ce fichier, ainsi vous pourrez le modifier a plusieurs...

Outils > Partage du classeur

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
srib Messages postés 23 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 22 mars 2011
22 mars 2011 à 14:05
Le partage du fichier est une possibilité, par contre ce n'est vraiment pas l'idéal dans mon cas, cela risquerait d'être "dangereux".

C'est pourquoi si je trouve la commande pour savoir qui a la main sur le fichier, ça m'aiderait beaucoup.

Merci quand même
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 mars 2011 à 14:39
dangereux ?

ca permet au contraire de pister et de savoir qui a effectué quelle modification.

possible de mettre une macro qui, a l'ouverture du classeur noterai dans un fichier l'username de la personne ayant ouvert la feuille...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
22 mars 2011 à 16:29
Salut,

le moyen le plus simple que je connaisse sans passer par le partage:

La méthode consiste à enregistrer le nom du premier utilisateur dans une propriété personnalisé. Tout se passe à l'ouverture du fichier:

-Si l'ouverture est normale (pas de lecture seule) on enregistre le nom de l’utilisateur et on sauve directement
-Si l'ouverture se fait en lecture seule (autre utilisateur) on récupère le nom enregistrer par le premier utilisateur

Private Sub Workbook_Open()
    On Error Resume Next
    With ThisWorkbook.CustomDocumentProperties("LastUser")
        If Err = 0 Then
            If ThisWorkbook.ReadOnly = True Then 'si lecture seule
                MsgBox "Fichier utilisé par :" & .Value, vbExclamation
            Else ' lecture normale
                If Not .Value = Application.UserName Then
                    .Value = Application.UserName
                    ThisWorkbook.Save
                End If
            End If
        Else 'si err diffèrent de 0 (normalement err=5) on crée la propriété personalisé. (?)utile que la première fois
            ThisWorkbook.CustomDocumentProperties.Add "LastUser", False, msoPropertyTypeString, Application.UserName
            ThisWorkbook.Save
        End If
    End With
    On Error GoTo 0
End Sub


A+
0
Rejoignez-nous