SOLVED

Compter le nombre de collaborateur sur un fichier Excel partagé

Copper Contributor

Bonjour,
je cherche à créer une macro qui compte le nombre de collaborateur sur un même fichier Excel.

Cette macro servirait à avertir les utilisateurs si une autre personne utilise ce même classeur pour éviter que plusieurs personne travail sur ce fichier.

Merci par avance de votre réponse.

 

5 Replies

@Baptiste_TOUSSEUL 

You can use VBA to find out whether a file is already in use, but unfortunately not by whom

... as far as I know (even if that doesn't mean much :)).

 

With this code you can see if the file is open or not.

 

Sub test()
   If IsWorkbookOpen("Mappe2.xls") Then
      MsgBox "OPEN"
   Else
      MsgBox "CLOSE"
   End If
End Sub 

 

 

I would be happy to know if I could help.

 

NikolinoDE

I know I don't know anything (Socrates)

* Kindly Mark and Vote this reply if it helps please, as it will be beneficial to more Community members reading here.

@NikolinoDE 

 

Merci pour votre réponse, mais le problème est qu'il faut créé la fonction IsWorkbookOpen.
Sur internet, j'ai trouvé ce code mais sa ne marche pas pour le moment.

Private Function IsWorkbookOpen(wbname) As Boolean

Dim wBook As Workbook
Set wBook = Nothing

On Error Resume Next
Set wBook = Workbooks(wbname)

If wBook Is Nothing Then
IsWorkbookOpen = False
Else: IsWorkbookOpen = True
End If

End Function

 

seriez vous me dire pourquoi cela n'a pas fonctionner ou auriez vous un code qui fonctionne ?

@Baptiste_TOUSSEUL 

Ce texte a été traduit automatiquement, l'utilisateur ne parle pas cette langue.

Vous devez inclure le nom de votre fichier dans votre code. Le fichier que vous voulez voir s'il est ouvert ou non.

 

Non testé sur Internet : Vous pouvez utiliser le code VBA suivant pour vérifier si le classeur actuel est ouvert ou non.

 

 

Sub Informations_utilisateur ()
'Si vous voulez l'avoir automatiquement lorsque vous ouvrez le fichier, ajoutez "Auto_Open ()" comme titre
    Dim Wb As Workbook: Set Wb = Workbooks("Ledossierapprouvé.xlsx")
    MsgBox " Attention : il utilise actuellement " & UBound(Wb.UserStatus) & _
        " Personne(s) ce dossier!", vbInformation
End Sub

 

 

Ce code est appelé à partir d'un autre classeur, vous pouvez donc voir si le classeur partagé est ouvert ou non.

 

Veuillez suivre ces instructions.

  1. Appuyez simultanément sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
  2. Dans Microsoft Visual Basic pour Applications, cliquez sur Insérer> Module dans la fenêtre. Ensuite, copiez et collez le code VBA suivant dans la fenêtre de code.

 

Bouton Insérer dans le classeur :

Ouvrez Excel et sélectionnez l'onglet Développeur en haut. Cliquez sur "Insérer" là-bas.

Pour les champs, cliquez sur le premier symbole pour insérer un bouton.

Sélectionnez la position du bouton dans votre classeur et maintenez le bouton gauche de la souris enfoncé pour déterminer la taille. Cela peut être modifié plus tard.

La fenêtre "Attribuer une macro" s'ouvre maintenant. Cliquez sur une macro préalablement définie.

 

Merci pour votre patience et votre temps.

 

Nikolino

Je sais que je ne sais rien (Socrate)

 

@NikolinoDE 

Merci pour ces informations, elles m’ont été très utiles. Cependant, il se passe quelque chose de très étrange : j'ai mis mon fichier Excel sur un SharePoint, mais la fonction "UBound(Wb.UserStatus)" ne trouve que le profil de la personne qui ouvre le fichier.
Pour faire des essaies, j'ai trouvé des codes sur internet comme celui-ci.

Sub test5()
Dim boucle As Integer
Dim Affiche As String
Users = ActiveWorkbook.UserStatus
    For boucle = 1 To UBound(Users)
        Affiche = Affiche & Users(boucle, 1) & vbTab & CDate(Users(boucle, 2)) & vbCrLf
    Next boucle
MsgBox Affiche, vbInformation, "Utilisateurs connectés :"
End Sub

 

Ce code devrait afficher toutes les personnes actuellement connectées sur le fichier, mais la seule information qu'il me donne est mon nom et l'heure de ma connexion. Il ne montre pas mes collègues connectées au même moment sur ce fichier.

Quand je leur demande d’essayer à leur tour sur leur ordinateur, il se passe la même chose ?

Cela n'est-il pas étrange ?

 

best response confirmed by Baptiste_TOUSSEUL (Copper Contributor)
Solution

@Baptiste_TOUSSEUL 

Autant que je me souvienne, seul le premier peut être affiché sous sharepoint.

Pour autant que je me souvienne, il n'y a aucun moyen de voir tous les utilisateurs, pas seulement sous sharepoint.

Cela signifie que vous pouvez toujours voir le premier des classeurs ouvert.

Mais s'il en affiche toujours un, cela signifie que le fichier est ouvert.

Pour faire court, il n'y a aucun moyen de voir tous les utilisateurs à la fois avec VBA, personnellement je ne connais pas d'autre moyen avec office.

 

Thank you for your understanding and patience

 

Nikolino

I know I don't know anything (Socrates)

1 best response

Accepted Solutions
best response confirmed by Baptiste_TOUSSEUL (Copper Contributor)
Solution

@Baptiste_TOUSSEUL 

Autant que je me souvienne, seul le premier peut être affiché sous sharepoint.

Pour autant que je me souvienne, il n'y a aucun moyen de voir tous les utilisateurs, pas seulement sous sharepoint.

Cela signifie que vous pouvez toujours voir le premier des classeurs ouvert.

Mais s'il en affiche toujours un, cela signifie que le fichier est ouvert.

Pour faire court, il n'y a aucun moyen de voir tous les utilisateurs à la fois avec VBA, personnellement je ne connais pas d'autre moyen avec office.

 

Thank you for your understanding and patience

 

Nikolino

I know I don't know anything (Socrates)

View solution in original post