Accès au classeur actuel par d'autres utilisateurs
4 réponses
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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LSteph
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
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 ?
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
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
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 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
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
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.
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.