Bonjour.
J'ai h=E9rit=E9 d'une macro qui avait =E9t=E9 con=E7ue =E0 l'=E9poque du =
WordBasic. Elle comporte des bo=EEtes de dialogue=20
accompagn=E9es de leurs "fonctions" (ceux qui ont fait du=20
WordBasic savent de quoi il s'agit). Je crois comprendre=20
que si une telle macro est transf=E9r=E9e dans une version=20
post-WordBasic de Word, il faut que, dans la d=E9finition de=20
la bo=EEte de dialogue (je ne dis pas dans la d=E9finition de=20
la fonction), le nom de cette fonction soit pr=E9c=E9d=E9 du nom=20
du module o=F9 se trouve la d=E9finition de la fonction, sans=20
quoi il se produit une erreur difficile =E0 d=E9tecter. Le=20
probl=E8me est que chaque fois qu'on change le nom du=20
module, on doit donc penser =E0 aller le changer aussi avant=20
le nom des fonctions dans les d=E9finitions des bo=EEtes de=20
dialogue. J'aurais cru que si on ne mentionnait pas le nom=20
du module, ce serait le module "courant" qui serait=20
suppos=E9 indiqu=E9, mais ce n'est pas le cas : si on proc=E8de=20
ainsi, le r=E9sultat est incorrect, au moins en ce qui=20
concerne l'affectation de variables.
Quelqu'un conna=EEtrait-il une solution ? Ou peut-=EAtre=20
devrais-je abandonner les bo=EEtes de dialogue de style=20
WordBasic ? Je le regretterais, car elles me semblent=20
avoir un avantage (elles permettent de partager une=20
variable entre une proc=E9dure et un module sans =E9tendre le=20
partage =E0 tout le projet). Merci d'avance.
Ringard.
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
Anacoluthe
Bonjour !
Les quelques particularités de WordBasic ne suffisent pas à mon humble avis pour le conserver, en tout cas pas la portée des variables. Je conseillerais de tout migrer en vba. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnword97/html/msdn_wbmigrat.asp
Anacoluthe « Ce sont les maigres qui migrent » - Valentin ZORG
'Ringard' nous a écrit ...
Bonjour. J'ai hérité d'une macro qui avait été conçue à l'époque du WordBasic. Elle comporte des boîtes de dialogue accompagnées de leurs "fonctions" (ceux qui ont fait du WordBasic savent de quoi il s'agit). Je crois comprendre que si une telle macro est transférée dans une version post-WordBasic de Word, il faut que, dans la définition de la boîte de dialogue (je ne dis pas dans la définition de la fonction), le nom de cette fonction soit précédé du nom du module où se trouve la définition de la fonction, sans quoi il se produit une erreur difficile à détecter. Le problème est que chaque fois qu'on change le nom du module, on doit donc penser à aller le changer aussi avant le nom des fonctions dans les définitions des boîtes de dialogue. J'aurais cru que si on ne mentionnait pas le nom du module, ce serait le module "courant" qui serait supposé indiqué, mais ce n'est pas le cas : si on procède ainsi, le résultat est incorrect, au moins en ce qui concerne l'affectation de variables. Quelqu'un connaîtrait-il une solution ? Ou peut-être devrais-je abandonner les boîtes de dialogue de style WordBasic ? Je le regretterais, car elles me semblent avoir un avantage (elles permettent de partager une variable entre une procédure et un module sans étendre le partage à tout le projet). Merci d'avance. Ringard.
Bonjour !
Les quelques particularités de WordBasic ne suffisent pas
à mon humble avis pour le conserver, en tout cas pas la
portée des variables. Je conseillerais de tout migrer en vba.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnword97/html/msdn_wbmigrat.asp
Anacoluthe
« Ce sont les maigres qui migrent »
- Valentin ZORG
'Ringard' nous a écrit ...
Bonjour.
J'ai hérité d'une macro qui avait été conçue à l'époque du
WordBasic. Elle comporte des boîtes de dialogue
accompagnées de leurs "fonctions" (ceux qui ont fait du
WordBasic savent de quoi il s'agit). Je crois comprendre
que si une telle macro est transférée dans une version
post-WordBasic de Word, il faut que, dans la définition de
la boîte de dialogue (je ne dis pas dans la définition de
la fonction), le nom de cette fonction soit précédé du nom
du module où se trouve la définition de la fonction, sans
quoi il se produit une erreur difficile à détecter. Le
problème est que chaque fois qu'on change le nom du
module, on doit donc penser à aller le changer aussi avant
le nom des fonctions dans les définitions des boîtes de
dialogue. J'aurais cru que si on ne mentionnait pas le nom
du module, ce serait le module "courant" qui serait
supposé indiqué, mais ce n'est pas le cas : si on procède
ainsi, le résultat est incorrect, au moins en ce qui
concerne l'affectation de variables.
Quelqu'un connaîtrait-il une solution ? Ou peut-être
devrais-je abandonner les boîtes de dialogue de style
WordBasic ? Je le regretterais, car elles me semblent
avoir un avantage (elles permettent de partager une
variable entre une procédure et un module sans étendre le
partage à tout le projet). Merci d'avance.
Ringard.
Les quelques particularités de WordBasic ne suffisent pas à mon humble avis pour le conserver, en tout cas pas la portée des variables. Je conseillerais de tout migrer en vba. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnword97/html/msdn_wbmigrat.asp
Anacoluthe « Ce sont les maigres qui migrent » - Valentin ZORG
'Ringard' nous a écrit ...
Bonjour. J'ai hérité d'une macro qui avait été conçue à l'époque du WordBasic. Elle comporte des boîtes de dialogue accompagnées de leurs "fonctions" (ceux qui ont fait du WordBasic savent de quoi il s'agit). Je crois comprendre que si une telle macro est transférée dans une version post-WordBasic de Word, il faut que, dans la définition de la boîte de dialogue (je ne dis pas dans la définition de la fonction), le nom de cette fonction soit précédé du nom du module où se trouve la définition de la fonction, sans quoi il se produit une erreur difficile à détecter. Le problème est que chaque fois qu'on change le nom du module, on doit donc penser à aller le changer aussi avant le nom des fonctions dans les définitions des boîtes de dialogue. J'aurais cru que si on ne mentionnait pas le nom du module, ce serait le module "courant" qui serait supposé indiqué, mais ce n'est pas le cas : si on procède ainsi, le résultat est incorrect, au moins en ce qui concerne l'affectation de variables. Quelqu'un connaîtrait-il une solution ? Ou peut-être devrais-je abandonner les boîtes de dialogue de style WordBasic ? Je le regretterais, car elles me semblent avoir un avantage (elles permettent de partager une variable entre une procédure et un module sans étendre le partage à tout le projet). Merci d'avance. Ringard.
Ringard
Merci Anacoluthe.
Les quelques particularités de WordBasic ne suffisent pas à mon humble avis pour le conserver, en tout cas pas la portée des variables. Je conseillerais de tout migrer en vba.
Il y a un autre avantage des boîtes de dialogue de style WordBasic, c'est qu'elles voyagent dans le module. Si on copie d'un PC dans un autre un module qui contient des boîtes de dialogue style VBA, on ne doit pas oublier (mais je l'oublie toujours) de copier aussi les frm, ce qui n'est pas le cas pour les boîtes de style WordBasic. Ceci dit, je crois que je vais me résigner à dessiner des frm VBA pour remplacer les dernières frm WordBasic qui me restent. Sans quoi, je risquerais d'être tenu hors forum pour préhistoricité... Merci encore. Ringard.
Merci Anacoluthe.
Les quelques particularités de WordBasic ne suffisent pas
à mon humble avis pour le conserver, en tout cas pas la
portée des variables. Je conseillerais de tout migrer en
vba.
Il y a un autre avantage des boîtes de dialogue de style
WordBasic, c'est qu'elles voyagent dans le module. Si on
copie d'un PC dans un autre un module qui contient des
boîtes de dialogue style VBA, on ne doit pas oublier (mais
je l'oublie toujours) de copier aussi les frm, ce qui
n'est pas le cas pour les boîtes de style WordBasic.
Ceci dit, je crois que je vais me résigner à dessiner des
frm VBA pour remplacer les dernières frm WordBasic qui me
restent. Sans quoi, je risquerais d'être tenu hors forum
pour préhistoricité... Merci encore.
Ringard.
Les quelques particularités de WordBasic ne suffisent pas à mon humble avis pour le conserver, en tout cas pas la portée des variables. Je conseillerais de tout migrer en vba.
Il y a un autre avantage des boîtes de dialogue de style WordBasic, c'est qu'elles voyagent dans le module. Si on copie d'un PC dans un autre un module qui contient des boîtes de dialogue style VBA, on ne doit pas oublier (mais je l'oublie toujours) de copier aussi les frm, ce qui n'est pas le cas pour les boîtes de style WordBasic. Ceci dit, je crois que je vais me résigner à dessiner des frm VBA pour remplacer les dernières frm WordBasic qui me restent. Sans quoi, je risquerais d'être tenu hors forum pour préhistoricité... Merci encore. Ringard.
Geo
Bonjour Ringard
Bonjour. J'ai hérité d'une macro qui avait été conçue à l'époque du WordBasic. Elle comporte des boîtes de dialogue accompagnées de leurs "fonctions" (ceux qui ont fait du WordBasic savent de quoi il s'agit). [...]
Je vais regarder demain au boulot, j'ai encore des macros "héritées" comme tu dis, mais il me semble bien justement que les fonctions m'ont donné du souci lors de la conversion. Ceci dit, j'en ai encore un paquet qui fonctionnent et je ne les ai pas réécrites en fonction du principe de base de l'informatique "on ne touche pas à ce qui marche" et par flemme aussi ;-) la notion de module n'existait pas en wordBasic, mais si tu ne vaux pas avoir à qualifier tes noms, il suffit normalement de les déclarer Public.
--
A+
Bonjour Ringard
Bonjour.
J'ai hérité d'une macro qui avait été conçue à l'époque du
WordBasic. Elle comporte des boîtes de dialogue
accompagnées de leurs "fonctions" (ceux qui ont fait du
WordBasic savent de quoi il s'agit).
[...]
Je vais regarder demain au boulot, j'ai encore des macros "héritées"
comme tu dis, mais il me semble bien justement que les fonctions m'ont
donné du souci lors de la conversion.
Ceci dit, j'en ai encore un paquet qui fonctionnent et je ne les ai
pas réécrites en fonction du principe de base de l'informatique "on ne
touche pas à ce qui marche"
et par flemme aussi ;-)
la notion de module n'existait pas en wordBasic, mais si tu ne vaux
pas avoir à qualifier tes noms, il suffit normalement de les déclarer
Public.
Bonjour. J'ai hérité d'une macro qui avait été conçue à l'époque du WordBasic. Elle comporte des boîtes de dialogue accompagnées de leurs "fonctions" (ceux qui ont fait du WordBasic savent de quoi il s'agit). [...]
Je vais regarder demain au boulot, j'ai encore des macros "héritées" comme tu dis, mais il me semble bien justement que les fonctions m'ont donné du souci lors de la conversion. Ceci dit, j'en ai encore un paquet qui fonctionnent et je ne les ai pas réécrites en fonction du principe de base de l'informatique "on ne touche pas à ce qui marche" et par flemme aussi ;-) la notion de module n'existait pas en wordBasic, mais si tu ne vaux pas avoir à qualifier tes noms, il suffit normalement de les déclarer Public.
--
A+
Merci Geo. (Je prends connaissance de votre message en arrivant ce matin au bureau.)
-----Message d'origine----- Je vais regarder demain au boulot, j'ai encore des macros "héritées"
comme tu dis, mais il me semble bien justement que les fonctions m'ont
donné du souci lors de la conversion. Ceci dit, j'en ai encore un paquet qui fonctionnent et je ne les ai
pas réécrites en fonction du principe de base de l'informatique "on ne
touche pas à ce qui marche" et par flemme aussi ;-) la notion de module n'existait pas en wordBasic, mais si tu ne veux
pas avoir à qualifier tes noms, il suffit normalement de les déclarer
Public.
Je reçois en somme deux conseils divergents : "migrer, migrer" et "on ne touche pas à ce qui marche". Je les crois d'ailleurs bons tous les deux, question de temps et de priorités. Ayant un peu de temps devant moi et devant bientôt changer de service, je vais essayer d'éliminer les dernières traces de Word Basic de mes macros, car elles pourraient poser des problèmes à mon successeur, qui risque de ne jamais avoir entendu parler du Word Basic. Encore merci. Ringard.
Merci Geo. (Je prends connaissance de votre message en
arrivant ce matin au bureau.)
-----Message d'origine-----
Je vais regarder demain au boulot, j'ai encore des
macros "héritées"
comme tu dis, mais il me semble bien justement que les
fonctions m'ont
donné du souci lors de la conversion.
Ceci dit, j'en ai encore un paquet qui fonctionnent et je
ne les ai
pas réécrites en fonction du principe de base de
l'informatique "on ne
touche pas à ce qui marche"
et par flemme aussi ;-)
la notion de module n'existait pas en wordBasic, mais si
tu ne veux
pas avoir à qualifier tes noms, il suffit normalement de
les déclarer
Public.
Je reçois en somme deux conseils divergents : "migrer,
migrer" et "on ne touche pas à ce qui marche". Je les
crois d'ailleurs bons tous les deux, question de temps et
de priorités. Ayant un peu de temps devant moi et devant
bientôt changer de service, je vais essayer d'éliminer les
dernières traces de Word Basic de mes macros, car elles
pourraient poser des problèmes à mon successeur, qui
risque de ne jamais avoir entendu parler du Word Basic.
Encore merci.
Ringard.
Merci Geo. (Je prends connaissance de votre message en arrivant ce matin au bureau.)
-----Message d'origine----- Je vais regarder demain au boulot, j'ai encore des macros "héritées"
comme tu dis, mais il me semble bien justement que les fonctions m'ont
donné du souci lors de la conversion. Ceci dit, j'en ai encore un paquet qui fonctionnent et je ne les ai
pas réécrites en fonction du principe de base de l'informatique "on ne
touche pas à ce qui marche" et par flemme aussi ;-) la notion de module n'existait pas en wordBasic, mais si tu ne veux
pas avoir à qualifier tes noms, il suffit normalement de les déclarer
Public.
Je reçois en somme deux conseils divergents : "migrer, migrer" et "on ne touche pas à ce qui marche". Je les crois d'ailleurs bons tous les deux, question de temps et de priorités. Ayant un peu de temps devant moi et devant bientôt changer de service, je vais essayer d'éliminer les dernières traces de Word Basic de mes macros, car elles pourraient poser des problèmes à mon successeur, qui risque de ne jamais avoir entendu parler du Word Basic. Encore merci. Ringard.
geo
Bonjour
Suis au bureau aussi :-) En partique les fonctions associées aux BeginDialog sont déclarées en Private mais dans le même module que les BeginDialog. C'est un peu ce que je disais hier, en wordbasic la notion de module n'existatit aps ( ou je ne la connaissais pas) En regroupant macro de dialogue et fonctions associées dans le même module, il n'y a pas de souci et comme on exporte un module en entier, le dialogue accompagne la macro.
En ce qui concerne la réécriture, l'histoire va dans ce sens, les dialogues avec vba sont nettement plus souples et conviviaux, transposer simplement est un peu dommage. On est alors tenté de tout reconcevoir, il faut donc du temps pour écrire et tester. Pi il est question que MS abandonne vba :-( C'est effectivement une question d'enjeux
A+
Bonjour
Suis au bureau aussi :-)
En partique les fonctions associées aux BeginDialog sont
déclarées en Private mais dans le même module que les
BeginDialog.
C'est un peu ce que je disais hier, en wordbasic la notion
de module n'existatit aps ( ou je ne la connaissais pas)
En regroupant macro de dialogue et fonctions associées
dans le même module, il n'y a pas de souci et comme on
exporte un module en entier, le dialogue accompagne la
macro.
En ce qui concerne la réécriture, l'histoire va dans ce
sens,
les dialogues avec vba sont nettement plus souples et
conviviaux, transposer simplement est un peu dommage.
On est alors tenté de tout reconcevoir,
il faut donc du temps pour écrire et tester.
Pi il est question que MS abandonne vba :-(
C'est effectivement une question d'enjeux
Suis au bureau aussi :-) En partique les fonctions associées aux BeginDialog sont déclarées en Private mais dans le même module que les BeginDialog. C'est un peu ce que je disais hier, en wordbasic la notion de module n'existatit aps ( ou je ne la connaissais pas) En regroupant macro de dialogue et fonctions associées dans le même module, il n'y a pas de souci et comme on exporte un module en entier, le dialogue accompagne la macro.
En ce qui concerne la réécriture, l'histoire va dans ce sens, les dialogues avec vba sont nettement plus souples et conviviaux, transposer simplement est un peu dommage. On est alors tenté de tout reconcevoir, il faut donc du temps pour écrire et tester. Pi il est question que MS abandonne vba :-( C'est effectivement une question d'enjeux
A+
Ringard
Merci Geo pour cette seconde réponse.
-----Message d'origine----- (...) En ce qui concerne la réécriture, l'histoire va dans ce sens, les dialogues avec vba sont nettement plus souples et conviviaux, transposer simplement est un peu dommage. On est alors tenté de tout reconcevoir, il faut donc du temps pour écrire et tester. Pi il est question que MS abandonne vba :-( C'est effectivement une question d'enjeux
Je suppose que c'est la compatibilité avec Word Basic que Microsoft envisage d'abandonner, et que "vba" est une faute de frappe... Ceci dit... il m'arrive de rêver d'un traitement de texte qui offrirait des macros à écrire non dans une variété de Basic mais dans une sorte de (C++)-- qui ne comporterait pas les parties délicates du C et du C++ (pointeurs) mais l'équivalent C++ du VBA. Ce serait aussi facile à apprendre que le VBA et cela constituerait un point de départ pour une étude plus complète du C++. Mais trêve de rêves et encore merci. Ringard.
Merci Geo pour cette seconde réponse.
-----Message d'origine-----
(...)
En ce qui concerne la réécriture, l'histoire va dans ce
sens,
les dialogues avec vba sont nettement plus souples et
conviviaux, transposer simplement est un peu dommage.
On est alors tenté de tout reconcevoir,
il faut donc du temps pour écrire et tester.
Pi il est question que MS abandonne vba :-(
C'est effectivement une question d'enjeux
Je suppose que c'est la compatibilité avec Word Basic que
Microsoft envisage d'abandonner, et que "vba" est une
faute de frappe... Ceci dit... il m'arrive de rêver d'un
traitement de texte qui offrirait des macros à écrire non
dans une variété de Basic mais dans une sorte de (C++)--
qui ne comporterait pas les parties délicates du C et du
C++ (pointeurs) mais l'équivalent C++ du VBA. Ce serait
aussi facile à apprendre que le VBA et cela constituerait
un point de départ pour une étude plus complète du C++.
Mais trêve de rêves et encore merci.
Ringard.
-----Message d'origine----- (...) En ce qui concerne la réécriture, l'histoire va dans ce sens, les dialogues avec vba sont nettement plus souples et conviviaux, transposer simplement est un peu dommage. On est alors tenté de tout reconcevoir, il faut donc du temps pour écrire et tester. Pi il est question que MS abandonne vba :-( C'est effectivement une question d'enjeux
Je suppose que c'est la compatibilité avec Word Basic que Microsoft envisage d'abandonner, et que "vba" est une faute de frappe... Ceci dit... il m'arrive de rêver d'un traitement de texte qui offrirait des macros à écrire non dans une variété de Basic mais dans une sorte de (C++)-- qui ne comporterait pas les parties délicates du C et du C++ (pointeurs) mais l'équivalent C++ du VBA. Ce serait aussi facile à apprendre que le VBA et cela constituerait un point de départ pour une étude plus complète du C++. Mais trêve de rêves et encore merci. Ringard.
geo
Re
Je suppose que c'est la compatibilité avec Word Basic que Microsoft envisage d'abandonner, et que "vba" est une faute de frappe...
Non non, on parle bien de vba au profit de vb, je ne vois pas trop comment, mais au moins on aurait une syntaxe et des fonctions identiques.
Je ne connais rien au C++, mais je vais peut être jeter un oeil. Un langage plus performant que vb à l'exécution m'intéresse. Mais là on est Hors sujet. Bonne fin de semaine.
Re
Je suppose que c'est la compatibilité avec Word Basic que
Microsoft envisage d'abandonner, et que "vba" est une
faute de frappe...
Non non, on parle bien de vba au profit de vb, je ne vois
pas trop comment, mais au moins on aurait une syntaxe et
des fonctions identiques.
Je ne connais rien au C++, mais je vais peut être jeter un
oeil. Un langage plus performant que vb à l'exécution
m'intéresse.
Mais là on est Hors sujet.
Bonne fin de semaine.
Je suppose que c'est la compatibilité avec Word Basic que Microsoft envisage d'abandonner, et que "vba" est une faute de frappe...
Non non, on parle bien de vba au profit de vb, je ne vois pas trop comment, mais au moins on aurait une syntaxe et des fonctions identiques.
Je ne connais rien au C++, mais je vais peut être jeter un oeil. Un langage plus performant que vb à l'exécution m'intéresse. Mais là on est Hors sujet. Bonne fin de semaine.