Bonjour =E0 tous.
Je fais une macro qui ouvre un fichier sans le mettre en=20
fen=EAtre (elle utilise donc l'instruction Open et non la=20
m=E9thode Open de Documents). Si ce fichier est en fen=EAtre
au moment o=F9 la macro est lanc=E9e, je crois qu'il y aura un=20
message d'erreur ("fichier utilis=E9 par un autre=20
processus"). Je voudrais donc que la macro v=E9rifie d'abord=20
si le fichier en question n'est pas en fen=EAtre. Le=20
probl=E8me est que les noms de fichiers associ=E9s aux=20
fen=EAtres pr=E9sentent une certaine ambigu=EFt=E9, en ce sens que=20
si deux fichiers diff=E9rents ont le m=EAme petit nom, c'est=20
ce m=EAme petit nom qui est associ=E9 aux deux fen=EAtres. On=20
peut =E9videmment rendre actifs tour =E0 tour tous les=20
fichiers en fen=EAtre et, =E0 chaque fois, v=E9rifier si le nom=20
complet du document actif est celui du fichier =E0 traiter,=20
mais cela me semble in=E9l=E9gant. On peut se limiter =E0 rendre=20
actifs le fichiers en fen=EAtre qui ont le m=EAme petit nom=20
que le fichier =E0 traiter, mais cela aussi me semble=20
in=E9l=E9gant. N'y a-t-il pas une fonction qui permet de=20
savoir imm=E9diatement si un fichier donn=E9 (et non un=20
fichier de m=EAme petit nom) est en fen=EAtre ? Merci d'avance.
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
Pascal Engelmajer
Salut, le plus simple c'est précisément d'utiliser l'erreur avec, par exemple, un On Error Goto ...Resume lors de la tentative d'ouverture -- Amicalement. Pascal "il n'y a pas de vent favorable pour celui qui ne sait pas ou il va." Sénèque. http://www.ilyapa.net/excel "Adrien Delcour" a écrit dans le message de news: 094d01c3c482$0f7934a0$ Bonjour à tous. Je fais une macro qui ouvre un fichier sans le mettre en fenêtre (elle utilise donc l'instruction Open et non la méthode Open de Documents). Si ce fichier est en fenêtre au moment où la macro est lancée, je crois qu'il y aura un message d'erreur ("fichier utilisé par un autre processus"). Je voudrais donc que la macro vérifie d'abord si le fichier en question n'est pas en fenêtre. Le problème est que les noms de fichiers associés aux fenêtres présentent une certaine ambiguïté, en ce sens que si deux fichiers différents ont le même petit nom, c'est ce même petit nom qui est associé aux deux fenêtres. On peut évidemment rendre actifs tour à tour tous les fichiers en fenêtre et, à chaque fois, vérifier si le nom complet du document actif est celui du fichier à traiter, mais cela me semble inélégant. On peut se limiter à rendre actifs le fichiers en fenêtre qui ont le même petit nom que le fichier à traiter, mais cela aussi me semble inélégant. N'y a-t-il pas une fonction qui permet de savoir immédiatement si un fichier donné (et non un fichier de même petit nom) est en fenêtre ? Merci d'avance.
Salut,
le plus simple c'est précisément d'utiliser l'erreur avec, par exemple, un
On Error Goto ...Resume
lors de la tentative d'ouverture
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Adrien Delcour" <anonymous@discussions.microsoft.com> a écrit dans le
message de news: 094d01c3c482$0f7934a0$a101280a@phx.gbl...
Bonjour à tous.
Je fais une macro qui ouvre un fichier sans le mettre en
fenêtre (elle utilise donc l'instruction Open et non la
méthode Open de Documents). Si ce fichier est en fenêtre
au moment où la macro est lancée, je crois qu'il y aura un
message d'erreur ("fichier utilisé par un autre
processus"). Je voudrais donc que la macro vérifie d'abord
si le fichier en question n'est pas en fenêtre. Le
problème est que les noms de fichiers associés aux
fenêtres présentent une certaine ambiguïté, en ce sens que
si deux fichiers différents ont le même petit nom, c'est
ce même petit nom qui est associé aux deux fenêtres. On
peut évidemment rendre actifs tour à tour tous les
fichiers en fenêtre et, à chaque fois, vérifier si le nom
complet du document actif est celui du fichier à traiter,
mais cela me semble inélégant. On peut se limiter à rendre
actifs le fichiers en fenêtre qui ont le même petit nom
que le fichier à traiter, mais cela aussi me semble
inélégant. N'y a-t-il pas une fonction qui permet de
savoir immédiatement si un fichier donné (et non un
fichier de même petit nom) est en fenêtre ? Merci d'avance.
Salut, le plus simple c'est précisément d'utiliser l'erreur avec, par exemple, un On Error Goto ...Resume lors de la tentative d'ouverture -- Amicalement. Pascal "il n'y a pas de vent favorable pour celui qui ne sait pas ou il va." Sénèque. http://www.ilyapa.net/excel "Adrien Delcour" a écrit dans le message de news: 094d01c3c482$0f7934a0$ Bonjour à tous. Je fais une macro qui ouvre un fichier sans le mettre en fenêtre (elle utilise donc l'instruction Open et non la méthode Open de Documents). Si ce fichier est en fenêtre au moment où la macro est lancée, je crois qu'il y aura un message d'erreur ("fichier utilisé par un autre processus"). Je voudrais donc que la macro vérifie d'abord si le fichier en question n'est pas en fenêtre. Le problème est que les noms de fichiers associés aux fenêtres présentent une certaine ambiguïté, en ce sens que si deux fichiers différents ont le même petit nom, c'est ce même petit nom qui est associé aux deux fenêtres. On peut évidemment rendre actifs tour à tour tous les fichiers en fenêtre et, à chaque fois, vérifier si le nom complet du document actif est celui du fichier à traiter, mais cela me semble inélégant. On peut se limiter à rendre actifs le fichiers en fenêtre qui ont le même petit nom que le fichier à traiter, mais cela aussi me semble inélégant. N'y a-t-il pas une fonction qui permet de savoir immédiatement si un fichier donné (et non un fichier de même petit nom) est en fenêtre ? Merci d'avance.
Merci Pascal. J'évite les gestions d'erreur parce que je préfère envoyer à l'utilisateur un message diagnostiquant l'erreur de la façon la plus précise possible, mais apparemment, il n'y a rien de mieux dans ce cas. Encore merci.
-----Message d'origine----- Salut, le plus simple c'est précisément d'utiliser l'erreur avec, par exemple, un
On Error Goto ...Resume lors de la tentative d'ouverture -- Amicalement. Pascal "il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque. http://www.ilyapa.net/excel "Adrien Delcour" a écrit dans le
message de news: 094d01c3c482$0f7934a0$ Bonjour à tous. Je fais une macro qui ouvre un fichier sans le mettre en fenêtre (elle utilise donc l'instruction Open et non la méthode Open de Documents). Si ce fichier est en fenêtre au moment où la macro est lancée, je crois qu'il y aura un message d'erreur ("fichier utilisé par un autre processus"). Je voudrais donc que la macro vérifie d'abord si le fichier en question n'est pas en fenêtre. Le problème est que les noms de fichiers associés aux fenêtres présentent une certaine ambiguïté, en ce sens que si deux fichiers différents ont le même petit nom, c'est ce même petit nom qui est associé aux deux fenêtres. On peut évidemment rendre actifs tour à tour tous les fichiers en fenêtre et, à chaque fois, vérifier si le nom complet du document actif est celui du fichier à traiter, mais cela me semble inélégant. On peut se limiter à rendre actifs le fichiers en fenêtre qui ont le même petit nom que le fichier à traiter, mais cela aussi me semble inélégant. N'y a-t-il pas une fonction qui permet de savoir immédiatement si un fichier donné (et non un fichier de même petit nom) est en fenêtre ? Merci d'avance.
.
Merci Pascal.
J'évite les gestions d'erreur parce que je préfère envoyer
à l'utilisateur un message diagnostiquant l'erreur de la
façon la plus précise possible, mais apparemment, il n'y a
rien de mieux dans ce cas.
Encore merci.
-----Message d'origine-----
Salut,
le plus simple c'est précisément d'utiliser l'erreur
avec, par exemple, un
On Error Goto ...Resume
lors de la tentative d'ouverture
--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait
pas ou il va."
Sénèque.
http://www.ilyapa.net/excel
"Adrien Delcour" <anonymous@discussions.microsoft.com> a
écrit dans le
message de news: 094d01c3c482$0f7934a0$a101280a@phx.gbl...
Bonjour à tous.
Je fais une macro qui ouvre un fichier sans le mettre en
fenêtre (elle utilise donc l'instruction Open et non la
méthode Open de Documents). Si ce fichier est en fenêtre
au moment où la macro est lancée, je crois qu'il y aura un
message d'erreur ("fichier utilisé par un autre
processus"). Je voudrais donc que la macro vérifie d'abord
si le fichier en question n'est pas en fenêtre. Le
problème est que les noms de fichiers associés aux
fenêtres présentent une certaine ambiguïté, en ce sens que
si deux fichiers différents ont le même petit nom, c'est
ce même petit nom qui est associé aux deux fenêtres. On
peut évidemment rendre actifs tour à tour tous les
fichiers en fenêtre et, à chaque fois, vérifier si le nom
complet du document actif est celui du fichier à traiter,
mais cela me semble inélégant. On peut se limiter à rendre
actifs le fichiers en fenêtre qui ont le même petit nom
que le fichier à traiter, mais cela aussi me semble
inélégant. N'y a-t-il pas une fonction qui permet de
savoir immédiatement si un fichier donné (et non un
fichier de même petit nom) est en fenêtre ? Merci
d'avance.
Merci Pascal. J'évite les gestions d'erreur parce que je préfère envoyer à l'utilisateur un message diagnostiquant l'erreur de la façon la plus précise possible, mais apparemment, il n'y a rien de mieux dans ce cas. Encore merci.
-----Message d'origine----- Salut, le plus simple c'est précisément d'utiliser l'erreur avec, par exemple, un
On Error Goto ...Resume lors de la tentative d'ouverture -- Amicalement. Pascal "il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque. http://www.ilyapa.net/excel "Adrien Delcour" a écrit dans le
message de news: 094d01c3c482$0f7934a0$ Bonjour à tous. Je fais une macro qui ouvre un fichier sans le mettre en fenêtre (elle utilise donc l'instruction Open et non la méthode Open de Documents). Si ce fichier est en fenêtre au moment où la macro est lancée, je crois qu'il y aura un message d'erreur ("fichier utilisé par un autre processus"). Je voudrais donc que la macro vérifie d'abord si le fichier en question n'est pas en fenêtre. Le problème est que les noms de fichiers associés aux fenêtres présentent une certaine ambiguïté, en ce sens que si deux fichiers différents ont le même petit nom, c'est ce même petit nom qui est associé aux deux fenêtres. On peut évidemment rendre actifs tour à tour tous les fichiers en fenêtre et, à chaque fois, vérifier si le nom complet du document actif est celui du fichier à traiter, mais cela me semble inélégant. On peut se limiter à rendre actifs le fichiers en fenêtre qui ont le même petit nom que le fichier à traiter, mais cela aussi me semble inélégant. N'y a-t-il pas une fonction qui permet de savoir immédiatement si un fichier donné (et non un fichier de même petit nom) est en fenêtre ? Merci d'avance.
.
Geo
Bonsoir ,
Merci Pascal. J'évite les gestions d'erreur parce que je préfère envoyer à l'utilisateur un message diagnostiquant l'erreur de la façon la plus précise possible,
Ce n'est pas à proprement parler une erreur dans ce cas, c'est plutôt un passage en force. Il n'y a qu'une ligne concernée si j'ai bien compris et après tu reprends la gestion normale des erreurs
mais apparemment, il n'y a rien de mieux dans ce cas.
C'est le plus simple en tous cas.
--
A+
Bonsoir ,
Merci Pascal.
J'évite les gestions d'erreur parce que je préfère envoyer
à l'utilisateur un message diagnostiquant l'erreur de la
façon la plus précise possible,
Ce n'est pas à proprement parler une erreur dans ce cas, c'est plutôt
un passage en force.
Il n'y a qu'une ligne concernée si j'ai bien compris
et après tu reprends la gestion normale des erreurs
mais apparemment, il n'y a rien de mieux dans ce cas.
Merci Pascal. J'évite les gestions d'erreur parce que je préfère envoyer à l'utilisateur un message diagnostiquant l'erreur de la façon la plus précise possible,
Ce n'est pas à proprement parler une erreur dans ce cas, c'est plutôt un passage en force. Il n'y a qu'une ligne concernée si j'ai bien compris et après tu reprends la gestion normale des erreurs
mais apparemment, il n'y a rien de mieux dans ce cas.
C'est le plus simple en tous cas.
--
A+
Adrien Delcour
Merci Geo. Vous confirmez que la bonne solution est le On Error GoTo. Je ferai sans doute envoyer le message système, en lui ajoutant quelque chose comme "Le fichier untel ne serait- il pas en fenêtre ?" (à moins que On Error GoTo ne permette un diagnostic plus précis, je vais essayer de chercher cela comme un grand). Encore merci.
-----Message d'origine----- Bonsoir ,
Merci Pascal. J'évite les gestions d'erreur parce que je préfère envoyer
à l'utilisateur un message diagnostiquant l'erreur de la façon la plus précise possible,
Ce n'est pas à proprement parler une erreur dans ce cas, c'est plutôt
un passage en force. Il n'y a qu'une ligne concernée si j'ai bien compris et après tu reprends la gestion normale des erreurs
mais apparemment, il n'y a rien de mieux dans ce cas.
C'est le plus simple en tous cas.
--
A+
.
Merci Geo.
Vous confirmez que la bonne solution est le On Error GoTo.
Je ferai sans doute envoyer le message système, en lui
ajoutant quelque chose comme "Le fichier untel ne serait-
il pas en fenêtre ?" (à moins que On Error GoTo ne
permette un diagnostic plus précis, je vais essayer de
chercher cela comme un grand). Encore merci.
-----Message d'origine-----
Bonsoir ,
Merci Pascal.
J'évite les gestions d'erreur parce que je préfère
envoyer
à l'utilisateur un message diagnostiquant l'erreur de la
façon la plus précise possible,
Ce n'est pas à proprement parler une erreur dans ce cas,
c'est plutôt
un passage en force.
Il n'y a qu'une ligne concernée si j'ai bien compris
et après tu reprends la gestion normale des erreurs
mais apparemment, il n'y a rien de mieux dans ce cas.
Merci Geo. Vous confirmez que la bonne solution est le On Error GoTo. Je ferai sans doute envoyer le message système, en lui ajoutant quelque chose comme "Le fichier untel ne serait- il pas en fenêtre ?" (à moins que On Error GoTo ne permette un diagnostic plus précis, je vais essayer de chercher cela comme un grand). Encore merci.
-----Message d'origine----- Bonsoir ,
Merci Pascal. J'évite les gestions d'erreur parce que je préfère envoyer
à l'utilisateur un message diagnostiquant l'erreur de la façon la plus précise possible,
Ce n'est pas à proprement parler une erreur dans ce cas, c'est plutôt
un passage en force. Il n'y a qu'une ligne concernée si j'ai bien compris et après tu reprends la gestion normale des erreurs
mais apparemment, il n'y a rien de mieux dans ce cas.
C'est le plus simple en tous cas.
--
A+
.
Geo
Bonsoir Adrien,
Merci Geo. Vous confirmez que la bonne solution est le On Error GoTo.
Oui et non
perso je mettrais un "on error resume next" avant l'instruction, et un "on error go to 0" après pour reprendre un gestion complète des erreurs, c'est ce que j'ai appelé le passage en force et je suppose que c'est ce que Pascal avait à l'esprit.
Je ferai sans doute envoyer le message système, en lui ajoutant quelque chose comme "Le fichier untel ne serait- il pas en fenêtre ?"
Si vous préférez avertir l'utilisateur, autant regarder si une fenêtre a le nom du document. en utilisant l'objet Windows, on doit y arriver, ceci dit, le pb risque de se poser en amont car si le document est déjà ouvert, c'est à l'open que ça risque de coincer.
--
Geo de la douce Touraine (France)
Bonsoir Adrien,
Merci Geo.
Vous confirmez que la bonne solution est le On Error GoTo.
Oui et non
perso je mettrais un "on error resume next" avant l'instruction,
et un "on error go to 0" après pour reprendre un gestion complète des
erreurs,
c'est ce que j'ai appelé le passage en force
et je suppose que c'est ce que Pascal avait à l'esprit.
Je ferai sans doute envoyer le message système, en lui
ajoutant quelque chose comme "Le fichier untel ne serait-
il pas en fenêtre ?"
Si vous préférez avertir l'utilisateur, autant regarder si une fenêtre
a le nom du document.
en utilisant l'objet Windows, on doit y arriver,
ceci dit, le pb risque de se poser en amont car si le document est
déjà ouvert, c'est à l'open que ça risque de coincer.
Merci Geo. Vous confirmez que la bonne solution est le On Error GoTo.
Oui et non
perso je mettrais un "on error resume next" avant l'instruction, et un "on error go to 0" après pour reprendre un gestion complète des erreurs, c'est ce que j'ai appelé le passage en force et je suppose que c'est ce que Pascal avait à l'esprit.
Je ferai sans doute envoyer le message système, en lui ajoutant quelque chose comme "Le fichier untel ne serait- il pas en fenêtre ?"
Si vous préférez avertir l'utilisateur, autant regarder si une fenêtre a le nom du document. en utilisant l'objet Windows, on doit y arriver, ceci dit, le pb risque de se poser en amont car si le document est déjà ouvert, c'est à l'open que ça risque de coincer.
--
Geo de la douce Touraine (France)
Adrien Delcour
Merci Geo. Je pensais vous avoir remercié, mais en regardant s'il y a encore eu des suites à mon message, je ne vois pas de réponse. J'avais peut-être fait une fauuse manoeuvre.
-----Message d'origine----- Bonsoir ,
Merci Pascal. J'évite les gestions d'erreur parce que je préfère envoyer
à l'utilisateur un message diagnostiquant l'erreur de la façon la plus précise possible,
Ce n'est pas à proprement parler une erreur dans ce cas, c'est plutôt
un passage en force. Il n'y a qu'une ligne concernée si j'ai bien compris et après tu reprends la gestion normale des erreurs
mais apparemment, il n'y a rien de mieux dans ce cas.
C'est le plus simple en tous cas.
--
A+
.
Merci Geo.
Je pensais vous avoir remercié, mais en regardant s'il y a
encore eu des suites à mon message, je ne vois pas de
réponse.
J'avais peut-être fait une fauuse manoeuvre.
-----Message d'origine-----
Bonsoir ,
Merci Pascal.
J'évite les gestions d'erreur parce que je préfère
envoyer
à l'utilisateur un message diagnostiquant l'erreur de la
façon la plus précise possible,
Ce n'est pas à proprement parler une erreur dans ce cas,
c'est plutôt
un passage en force.
Il n'y a qu'une ligne concernée si j'ai bien compris
et après tu reprends la gestion normale des erreurs
mais apparemment, il n'y a rien de mieux dans ce cas.
Merci Geo. Je pensais vous avoir remercié, mais en regardant s'il y a encore eu des suites à mon message, je ne vois pas de réponse. J'avais peut-être fait une fauuse manoeuvre.
-----Message d'origine----- Bonsoir ,
Merci Pascal. J'évite les gestions d'erreur parce que je préfère envoyer
à l'utilisateur un message diagnostiquant l'erreur de la façon la plus précise possible,
Ce n'est pas à proprement parler une erreur dans ce cas, c'est plutôt
un passage en force. Il n'y a qu'une ligne concernée si j'ai bien compris et après tu reprends la gestion normale des erreurs
mais apparemment, il n'y a rien de mieux dans ce cas.
C'est le plus simple en tous cas.
--
A+
.
Geo
Bonsoir Adrien ,
Merci Geo. Je pensais vous avoir remercié, mais en regardant s'il y a encore eu des suites à mon message, je ne vois pas de réponse. J'avais peut-être fait une fauuse manouvre.
C'est le problème avec l'accès aux forums par le site internet, la mise à jour n'est pas simultanée elle n'est pas toujours faite, on ne retrouve pas facilement. D'ailleurs j'ai continué aussi.
Quand on la possibilité il vaut mieux utiliser un outil spécifiquement fait pour le courrier et les forums, au hasard pour PC, par ordre d'utilisation sur ce forum (Merci JieL) : Microsoft Outlook Express Mozilla Forte Agent MesNews
Bonsoir Adrien ,
Merci Geo.
Je pensais vous avoir remercié, mais en regardant s'il y a
encore eu des suites à mon message, je ne vois pas de
réponse.
J'avais peut-être fait une fauuse manouvre.
C'est le problème avec l'accès aux forums par le site internet,
la mise à jour n'est pas simultanée
elle n'est pas toujours faite,
on ne retrouve pas facilement.
D'ailleurs j'ai continué aussi.
Quand on la possibilité il vaut mieux utiliser un outil
spécifiquement fait pour le courrier et les forums,
au hasard pour PC, par ordre d'utilisation sur ce forum (Merci JieL) :
Microsoft Outlook Express
Mozilla
Forte Agent
MesNews
Merci Geo. Je pensais vous avoir remercié, mais en regardant s'il y a encore eu des suites à mon message, je ne vois pas de réponse. J'avais peut-être fait une fauuse manouvre.
C'est le problème avec l'accès aux forums par le site internet, la mise à jour n'est pas simultanée elle n'est pas toujours faite, on ne retrouve pas facilement. D'ailleurs j'ai continué aussi.
Quand on la possibilité il vaut mieux utiliser un outil spécifiquement fait pour le courrier et les forums, au hasard pour PC, par ordre d'utilisation sur ce forum (Merci JieL) : Microsoft Outlook Express Mozilla Forte Agent MesNews