Problème "fichier partager" / "fichier exclusif"

Résolu
STFj Messages postés 6 Date d'inscription vendredi 6 janvier 2012 Statut Membre Dernière intervention 23 janvier 2012 - 23 janv. 2012 à 11:14
STFj Messages postés 6 Date d'inscription vendredi 6 janvier 2012 Statut Membre Dernière intervention 23 janvier 2012 - 23 janv. 2012 à 14:14
Bonjour à tous,
Ce matin, je suis confronté à un nouveau problème sur mon fichier excel qui est partager...

Situation : Le fichier est partager sur le réseau, et utilise des macros VBA... En règle général général, il est impossible d'exécuter certaine macros sur un classeur partager. Or j'ai troucver une astuce un peu barbare pour executer quand même ces macro : Au lancement de la macro, je rend le fichier partager en mode exclusif, et a la fin de la macro je le remet en mode partager => Voici le code qui le permet :

'''''''''''''''''''''''''''''''''''''''''''''''''Procédure pour rendre
If ActiveWorkbook.MultiUserEditing Then
Application.DisplayAlerts = False ' Pas de message d'erreur
ActiveWorkbook.ExclusiveAccess ' Accès exclusif activé !
Application.DisplayAlerts = False
End If
'''''''''''''''''''''''''''''''''''''''''''''''''exclusif le classeur
Ma Macro
'''''''''''''''''''''''''''''''''''''''''''''''''''''''Procédure pour
If Not ActiveWorkbook.MultiUserEditing Then
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared
Application.DisplayAlerts = False
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''Partager le classeur

Problème rencontrer : Le fait de rendre exclusif le classeur, déconnecte tout les utilisateurs du fichiers sans le fermé (en gros il ne se doute même pas que le fichier n'est plus partager), et lorsque la macro réactive le mode partage, tout les utilisateurs qui n'ont pas lancé la macro se retrouve sur un "fichier bis" et perde les modifs si ils enregistre pas sur un nouveau nom.(chose que je veut éviter)

Ainsi , je me demande si il est possible avant de rendre exclusif le classeur, de récupérer le nom des utilisateur connecté au fichier, le stocké sous forme de liste par exemple, pour que lorsque la macro réactive le mode partager, je charge le nom des utilisateurs qui était connectés auparavant...

Est ce que quelqu'un voit un solution a se problème ou faut il que j'annule le partage du fichier sur le réseau = chose primordiale dans ce cas ???

Merci par avance pour votre aide...
CDT

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 janv. 2012 à 13:53
Je ne peux essayer sur ma machine unique.
Mais il semble qu'il y ait une erreur de frappe (dans le lien).
Essaye de supprimer le \ dans ID:\=2040


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 janv. 2012 à 11:30
Bonjour,

N'ai pas testé, mais il me semble que le code que tu trouveras dans cet article devrait assez largement répondre à ta problématique.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
STFj Messages postés 6 Date d'inscription vendredi 6 janvier 2012 Statut Membre Dernière intervention 23 janvier 2012
23 janv. 2012 à 13:19
salut et merci d'avoir pris le temps pour m'aider,
J'ai regarder le lien que tu as mis, ca a l'air d'etre se que je cherche,merci, cependant quand je copie le colle sur mon projet, J'ai un erreur de paramétrage au niveau de l'ID :

Sub Startup()
'Paul, mpep
Dim ShowUsers
Set ShowUsers = Application.CommandBars("Standard").Controls.Add(Type:= msoControlButton, ID :\ =2040, ,Before:=13)
=> "Erreur de compilation : Paramètre nommé"

ShowUsers.Execute
Application.CommandBars("Standard").Controls(13).Delete

End Sub
0
STFj Messages postés 6 Date d'inscription vendredi 6 janvier 2012 Statut Membre Dernière intervention 23 janvier 2012
23 janv. 2012 à 14:14
yes!!! l'erreur venait bien du ""...
J'avais essayer de définir l'ID ou de le modifier... Enfin bref, ca marche c'est nickel... Me reste plus qu'à utiliser le fichier log pour charger et décharger des utilisateurs...
Encore MERCI pour ton aide: rapide, efficace, tout se que j'aime...^^

Cdt
0
Rejoignez-nous