Accès au classeur actuel par d'autres utilisateurs

Le
Pierre Archambault
Est-il possible de savoir par programmation VBA si d'autres personnes
ont ouvert le classeur actuel ?

J'ai besoin d'avoir l'exclusivité pour effectuer une certaine
opération sur les données et pour ce faire, je dois être le seul à
travailler dans mon classeur. Comment puis-je faire pour tester par
programmation VBA) si le classeur est présentement ouvert par une ou
plusieurs autres personnes ?

Merci de vos lumières.

Pierre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #17414441
Bonjour Pierre

Sauf si c'est un fichier en mode partagé auquel cas l'idée d'exclusivité
serait à écarter;...

...si le fichier est déjà ouvert par quelqu'un tu ne devrais pouvoir
l'ouvrir qu'en lecture seule.

Donc , avec ou sans VBA tu seras tout de suite fixé en essayant de
l'ouvrir...

Ou j'ai trop de mal à comprendre ta demande.

Cordialement.

--
lSteph


Pierre Archambault a écrit :
Est-il possible de savoir par programmation VBA si d'autres personnes
ont ouvert le classeur actuel ?

J'ai besoin d'avoir l'exclusivité pour effectuer une certaine
opération sur les données et pour ce faire, je dois être le seul à
travailler dans mon classeur. Comment puis-je faire pour tester par
programmation VBA) si le classeur est présentement ouvert par une ou
plusieurs autres personnes ?

Merci de vos lumières.

Pierre




Archampi
Le #17415431
Merci de l'attention que tu as porté à ma question.

Je précise la situation.

J'ai développé une application entièrement construite avec des
UserForms et du code VBA. Les données que je manipule ne sont pas dans
le classeur mais plutôt dans les fichiers ".dat" que mon programme
ouvre en mode lecture seule pour la consultation et en mode lecture et
écriture pour la mise à jour.

Il peut arriver qu'un utilisateur supprime un enregistrement (en
utilisant l'interface que j'ai créée). La suppression consiste à
introduire un marqueur au début de l'enregistrement. Dans les faits,
l'enregistrement ainsi marqué pour suppression est encore dans le
fichier. Ce n'est que plus tard, au moment où plus personne n'accède
au fichier que je peux effectivement supprimer physiquement
l'enregistrement. L'opération consiste à renuméroter les
enregistrements non supprimés en omettant ceux qui doivent être
supprimés puis de tronquer le fichier du nombre d'octets
correspondants à la fin du fichier.

Cette opération fonctionne très bien sauf que si un utilisateur est
encore à modifier un enregistrement qui se situe au-delà de celui qui
a été supprimé, son numéro (sa position dans le fichier) s'en trouv e
changée suite au nettoyage des enregistrement supprimés. Ce qui
provoquera une sauvegarde sur le mauvais numéro d'enregistrement quand
l'utilisateur aura terminé sa mise-à-jour.

Voilà pourquoi il est impératif que le programme puisse détecter qu'u n
autre usager est actuellement à travailler avec le programme.

Merci de ton aide.

Pierre
LSteph
Le #17418171
Bonjour,

Alors selon ce que je comprends cela ne concerne pas vraiment excel, ni
son VBA sauf
à l'utiliser sur des domaines externes à l'application et qui
relèveraient plus d'API, d'un script système ou WMI ou autre...
Peut-être poser ta question sur Codes Source ou VBFrance ou ou
http://www.developpez.net/forums/

@+

lSteph

Archampi a écrit :
Merci de l'attention que tu as porté à ma question.

Je précise la situation.

J'ai développé une application entièrement construite avec des
UserForms et du code VBA. Les données que je manipule ne sont pas dans
le classeur mais plutôt dans les fichiers ".dat" que mon programme
ouvre en mode lecture seule pour la consultation et en mode lecture et
écriture pour la mise à jour.

Il peut arriver qu'un utilisateur supprime un enregistrement (en
utilisant l'interface que j'ai créée). La suppression consiste à
introduire un marqueur au début de l'enregistrement. Dans les faits,
l'enregistrement ainsi marqué pour suppression est encore dans le
fichier. Ce n'est que plus tard, au moment où plus personne n'accède
au fichier que je peux effectivement supprimer physiquement
l'enregistrement. L'opération consiste à renuméroter les
enregistrements non supprimés en omettant ceux qui doivent être
supprimés puis de tronquer le fichier du nombre d'octets
correspondants à la fin du fichier.

Cette opération fonctionne très bien sauf que si un utilisateur est
encore à modifier un enregistrement qui se situe au-delà de celui qui
a été supprimé, son numéro (sa position dans le fichier) s'en trouve
changée suite au nettoyage des enregistrement supprimés. Ce qui
provoquera une sauvegarde sur le mauvais numéro d'enregistrement quand
l'utilisateur aura terminé sa mise-à-jour.

Voilà pourquoi il est impératif que le programme puisse détecter qu'un
autre usager est actuellement à travailler avec le programme.

Merci de ton aide.

Pierre


Archampi
Le #17439261
Merci ISteph pour l'information.

Je vais jetter un oeil sur ce site.

Bonne journée

Pierre
Publicité
Poster une réponse
Anonyme