Forum Discussion

Baptiste_TOUSSEUL's avatar
Baptiste_TOUSSEUL
Copper Contributor
Aug 17, 2021
Solved

Compter le nombre de collaborateur sur un fichier Excel partagé

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.

 

  • NikolinoDE's avatar
    NikolinoDE
    Aug 18, 2021

    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)

5 Replies

  • NikolinoDE's avatar
    NikolinoDE
    Platinum Contributor

    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.

    • Baptiste_TOUSSEUL's avatar
      Baptiste_TOUSSEUL
      Copper Contributor

      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 ?

      • NikolinoDE's avatar
        NikolinoDE
        Platinum Contributor

        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)