Bonjour à toutes et à tous.
Merci de bien vouloir jeter un coup d'oeil sur le petit problème suivant.
J'ai l'impression que c'est un bug de Word (je travaille avec Word 2003).
J'ai 3 boutons:
- un qui initialise une variable globale (une string);
- un qui ajoute "X" à ma variable globale et qui fait un AddOLEControl;
- un qui affiche la valeur actuelle de ma variable global.
Voici le code:
>Public v As String
>Sub initialise_Click()
> v = ""
>End Sub
>Sub affichage_Click()
> MsgBox "v=" & v
>End Sub
>Sub ajout_click()
> v = v & "X"
> Selection.InlineShapes.AddOLEControl ClassType:="Forms.TextBox.1"
>End Sub
Si je clique sur mes 3 boutons: initialise/ajout/affichage, ma variable
globale est vide alors qu'elle devrait contenir "X".
Si je supprime le AddOLEControl et que je clique sur mes 3 boutons, v
contient bien "X".
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 !
'Alain' nous a écrit ...
Si je clique sur mes 3 boutons: initialise/ajout/affichage, ma variable globale est vide alors qu'elle devrait contenir "X". Si je supprime le AddOLEControl et que je clique sur mes 3 boutons, v contient bien "X". Qu'en pensez-vous?
Vous ajoutez un ActiveX dans le projet donc le projet vba est réinitialisé. Finalement ça semble assez normal. Placez votre compteur public de contrôles en un lieu privé hors-projet (le document par exemple).
Anacoluthe « Dictature : un régime où l'opinion publique ne peut s'exprimer qu'en privé. » - Walter WINCHELL
Bonjour !
'Alain' nous a écrit ...
Si je clique sur mes 3 boutons: initialise/ajout/affichage, ma variable
globale est vide alors qu'elle devrait contenir "X".
Si je supprime le AddOLEControl et que je clique sur mes 3 boutons, v
contient bien "X".
Qu'en pensez-vous?
Vous ajoutez un ActiveX dans le projet donc le projet vba
est réinitialisé. Finalement ça semble assez normal.
Placez votre compteur public de contrôles en un lieu privé
hors-projet (le document par exemple).
Anacoluthe
« Dictature : un régime où l'opinion publique
ne peut s'exprimer qu'en privé. »
- Walter WINCHELL
Si je clique sur mes 3 boutons: initialise/ajout/affichage, ma variable globale est vide alors qu'elle devrait contenir "X". Si je supprime le AddOLEControl et que je clique sur mes 3 boutons, v contient bien "X". Qu'en pensez-vous?
Vous ajoutez un ActiveX dans le projet donc le projet vba est réinitialisé. Finalement ça semble assez normal. Placez votre compteur public de contrôles en un lieu privé hors-projet (le document par exemple).
Anacoluthe « Dictature : un régime où l'opinion publique ne peut s'exprimer qu'en privé. » - Walter WINCHELL
Alain
Merci pour votre réponse. Malheureusement, j'ai trop peu de connaissance de l'environnement VBA pour comprendre ce que vous m'expliquez. Initialement, ma variable globale était dans la partie "ThisDocument" de mon projet (là ça ne marche pas). Je l'ai placée dans un nouveau module de mon projet (et là ça ne marche pas non plus). Je ne comprends pas ce que vous voulez dire par "hors projet". Dans l'environnement VBA, j'ai mon projet et j'ai aussi "Normal" mais ça je pense que c'est du code commun à tous les fichiers Word, je ne peux donc pas y mettre ma variable globale. Mais alors, où?
Merci d'avance pour votre assistance. Alain.
"Anacoluthe" a écrit dans le message de news:
Bonjour !
'Alain' nous a écrit ...
Si je clique sur mes 3 boutons: initialise/ajout/affichage, ma variable globale est vide alors qu'elle devrait contenir "X". Si je supprime le AddOLEControl et que je clique sur mes 3 boutons, v contient bien "X". Qu'en pensez-vous?
Vous ajoutez un ActiveX dans le projet donc le projet vba est réinitialisé. Finalement ça semble assez normal. Placez votre compteur public de contrôles en un lieu privé hors-projet (le document par exemple).
Anacoluthe « Dictature : un régime où l'opinion publique ne peut s'exprimer qu'en privé. » - Walter WINCHELL
Merci pour votre réponse.
Malheureusement, j'ai trop peu de connaissance de l'environnement VBA pour
comprendre ce que vous m'expliquez.
Initialement, ma variable globale était dans la partie "ThisDocument" de mon
projet (là ça ne marche pas).
Je l'ai placée dans un nouveau module de mon projet (et là ça ne marche pas
non plus).
Je ne comprends pas ce que vous voulez dire par "hors projet".
Dans l'environnement VBA, j'ai mon projet et j'ai aussi "Normal" mais ça je
pense que c'est du code commun à tous les fichiers Word, je ne peux donc pas
y mettre ma variable globale.
Mais alors, où?
Merci d'avance pour votre assistance.
Alain.
"Anacoluthe" <nopub_anacoluthe@Ouanadoo.fr> a écrit dans le message de
news:ec4JxvvwGHA.2260@TK2MSFTNGP03.phx.gbl...
Bonjour !
'Alain' nous a écrit ...
Si je clique sur mes 3 boutons: initialise/ajout/affichage, ma variable
globale est vide alors qu'elle devrait contenir "X".
Si je supprime le AddOLEControl et que je clique sur mes 3 boutons, v
contient bien "X".
Qu'en pensez-vous?
Vous ajoutez un ActiveX dans le projet donc le projet vba
est réinitialisé. Finalement ça semble assez normal.
Placez votre compteur public de contrôles en un lieu privé
hors-projet (le document par exemple).
Anacoluthe
« Dictature : un régime où l'opinion publique
ne peut s'exprimer qu'en privé. »
- Walter WINCHELL
Merci pour votre réponse. Malheureusement, j'ai trop peu de connaissance de l'environnement VBA pour comprendre ce que vous m'expliquez. Initialement, ma variable globale était dans la partie "ThisDocument" de mon projet (là ça ne marche pas). Je l'ai placée dans un nouveau module de mon projet (et là ça ne marche pas non plus). Je ne comprends pas ce que vous voulez dire par "hors projet". Dans l'environnement VBA, j'ai mon projet et j'ai aussi "Normal" mais ça je pense que c'est du code commun à tous les fichiers Word, je ne peux donc pas y mettre ma variable globale. Mais alors, où?
Merci d'avance pour votre assistance. Alain.
"Anacoluthe" a écrit dans le message de news:
Bonjour !
'Alain' nous a écrit ...
Si je clique sur mes 3 boutons: initialise/ajout/affichage, ma variable globale est vide alors qu'elle devrait contenir "X". Si je supprime le AddOLEControl et que je clique sur mes 3 boutons, v contient bien "X". Qu'en pensez-vous?
Vous ajoutez un ActiveX dans le projet donc le projet vba est réinitialisé. Finalement ça semble assez normal. Placez votre compteur public de contrôles en un lieu privé hors-projet (le document par exemple).
Anacoluthe « Dictature : un régime où l'opinion publique ne peut s'exprimer qu'en privé. » - Walter WINCHELL
Anacoluthe
Bonjour !
'Alain' nous a écrit ...
Merci pour votre réponse. Malheureusement, j'ai trop peu de connaissance de l'environnement VBA pour comprendre ce que vous m'expliquez.
Dans ce cas il y a fort à parier que votre problème est mal posé au départ. Car il est /très/ rare d'avoir besoin d'un programme qui se modifie lui-même. C'est ce que vous faites avec ce document contenant des contrôles où l'un d'entre eux (un bouton) crée un /autre/ contrôle ! C'est de la haute voltige fortement déconseillée pour un débutant. Il y a /sûrement/ un moyen plus orthodoxe de s'y prendre. En modifiant votre projet (c'est tout le code de votre document feuilles, modules etc) vous obligez vba à tout recompiler. Quant à votre variable publique, l'exemple que vous donniez ne permet pas d'en saisir le propos véritable.
Anacoluthe « Dictature : un régime où l'opinion publique ne peut s'exprimer qu'en privé. » - Walter WINCHELL
Bonjour !
'Alain' nous a écrit ...
Merci pour votre réponse.
Malheureusement, j'ai trop peu de connaissance de l'environnement VBA pour
comprendre ce que vous m'expliquez.
Dans ce cas il y a fort à parier que votre problème est mal posé
au départ. Car il est /très/ rare d'avoir besoin d'un programme qui
se modifie lui-même. C'est ce que vous faites avec ce document
contenant des contrôles où l'un d'entre eux (un bouton) crée
un /autre/ contrôle ! C'est de la haute voltige fortement déconseillée
pour un débutant. Il y a /sûrement/ un moyen plus orthodoxe de
s'y prendre. En modifiant votre projet (c'est tout le code de
votre document feuilles, modules etc) vous obligez vba à tout
recompiler. Quant à votre variable publique, l'exemple que vous
donniez ne permet pas d'en saisir le propos véritable.
Anacoluthe
« Dictature : un régime où l'opinion publique
ne peut s'exprimer qu'en privé. »
- Walter WINCHELL
Merci pour votre réponse. Malheureusement, j'ai trop peu de connaissance de l'environnement VBA pour comprendre ce que vous m'expliquez.
Dans ce cas il y a fort à parier que votre problème est mal posé au départ. Car il est /très/ rare d'avoir besoin d'un programme qui se modifie lui-même. C'est ce que vous faites avec ce document contenant des contrôles où l'un d'entre eux (un bouton) crée un /autre/ contrôle ! C'est de la haute voltige fortement déconseillée pour un débutant. Il y a /sûrement/ un moyen plus orthodoxe de s'y prendre. En modifiant votre projet (c'est tout le code de votre document feuilles, modules etc) vous obligez vba à tout recompiler. Quant à votre variable publique, l'exemple que vous donniez ne permet pas d'en saisir le propos véritable.
Anacoluthe « Dictature : un régime où l'opinion publique ne peut s'exprimer qu'en privé. » - Walter WINCHELL
Alain
Merci pour votre réponse.
Il est vrai que je suis débutant mais il est vrai aussi qu'on me demande de faire un formulaire Word qui servira de rapport et qui doit contenir un nombre variable de zone TextBox. Le nombre de TextBox dépend d'un choix de l'utilisateur dans une ListBox. Par exemple, s'il sélectionne "Appareil X", il faut faire apparaitre certains TextBox qui vont contenir les données qu'il est important de stocker pour l'appareil X. Et il y a ainsi une dizaine de types d'appareils. Pour chaque appareil, les données à stocker sont différentes. Ce n'est pas tout! Dans certains cas, pour certains appareils, je dois faire des calculs sur certains TextBox et afficher les résultats dans d'autres TextBox. Je dois donc avoir un document Word dynamique tant au niveau des TextBox que du code VBA (il faut en effet créer certain événement pour les calculs automatiques). Voilà! J'espère ne pas avoir été trop long. Merci de m'avoir lu et , surtout, merci si vous acceptez de continuer à m'aider.
Alain.
Merci pour votre réponse.
Il est vrai que je suis débutant mais il est vrai aussi qu'on me demande de
faire un formulaire Word qui servira de rapport et qui doit contenir un
nombre variable de zone TextBox. Le nombre de TextBox dépend d'un choix de
l'utilisateur dans une ListBox.
Par exemple, s'il sélectionne "Appareil X", il faut faire apparaitre
certains TextBox qui vont contenir les données qu'il est important de
stocker pour l'appareil X. Et il y a ainsi une dizaine de types d'appareils.
Pour chaque appareil, les données à stocker sont différentes.
Ce n'est pas tout!
Dans certains cas, pour certains appareils, je dois faire des calculs sur
certains TextBox et afficher les résultats dans d'autres TextBox.
Je dois donc avoir un document Word dynamique tant au niveau des TextBox que
du code VBA (il faut en effet créer certain événement pour les calculs
automatiques).
Voilà!
J'espère ne pas avoir été trop long.
Merci de m'avoir lu et , surtout, merci si vous acceptez de continuer à
m'aider.
Il est vrai que je suis débutant mais il est vrai aussi qu'on me demande de faire un formulaire Word qui servira de rapport et qui doit contenir un nombre variable de zone TextBox. Le nombre de TextBox dépend d'un choix de l'utilisateur dans une ListBox. Par exemple, s'il sélectionne "Appareil X", il faut faire apparaitre certains TextBox qui vont contenir les données qu'il est important de stocker pour l'appareil X. Et il y a ainsi une dizaine de types d'appareils. Pour chaque appareil, les données à stocker sont différentes. Ce n'est pas tout! Dans certains cas, pour certains appareils, je dois faire des calculs sur certains TextBox et afficher les résultats dans d'autres TextBox. Je dois donc avoir un document Word dynamique tant au niveau des TextBox que du code VBA (il faut en effet créer certain événement pour les calculs automatiques). Voilà! J'espère ne pas avoir été trop long. Merci de m'avoir lu et , surtout, merci si vous acceptez de continuer à m'aider.
Alain.
Circé
Bonsoir Alain,
Encore une histoire de marteau et de clous (JièL vous en dira plus longuement !).
Clairement, Word n'est pas fait pour ça. Utilisez Infopath ou Access...
Circé http://faqword.free.fr
Alain avait soumis l'idée :
Merci pour votre réponse.
Il est vrai que je suis débutant mais il est vrai aussi qu'on me demande de faire un formulaire Word qui servira de rapport et qui doit contenir un nombre variable de zone TextBox. Le nombre de TextBox dépend d'un choix de l'utilisateur dans une ListBox. Par exemple, s'il sélectionne "Appareil X", il faut faire apparaitre certains TextBox qui vont contenir les données qu'il est important de stocker pour l'appareil X. Et il y a ainsi une dizaine de types d'appareils. Pour chaque appareil, les données à stocker sont différentes. Ce n'est pas tout! Dans certains cas, pour certains appareils, je dois faire des calculs sur certains TextBox et afficher les résultats dans d'autres TextBox. Je dois donc avoir un document Word dynamique tant au niveau des TextBox que du code VBA (il faut en effet créer certain événement pour les calculs automatiques). Voilà! J'espère ne pas avoir été trop long. Merci de m'avoir lu et , surtout, merci si vous acceptez de continuer à m'aider.
Alain.
Bonsoir Alain,
Encore une histoire de marteau et de clous (JièL vous en dira plus
longuement !).
Clairement, Word n'est pas fait pour ça.
Utilisez Infopath ou Access...
Circé
http://faqword.free.fr
Alain avait soumis l'idée :
Merci pour votre réponse.
Il est vrai que je suis débutant mais il est vrai aussi qu'on me demande de
faire un formulaire Word qui servira de rapport et qui doit contenir un
nombre variable de zone TextBox. Le nombre de TextBox dépend d'un choix de
l'utilisateur dans une ListBox.
Par exemple, s'il sélectionne "Appareil X", il faut faire apparaitre
certains TextBox qui vont contenir les données qu'il est important de
stocker pour l'appareil X. Et il y a ainsi une dizaine de types d'appareils.
Pour chaque appareil, les données à stocker sont différentes.
Ce n'est pas tout!
Dans certains cas, pour certains appareils, je dois faire des calculs sur
certains TextBox et afficher les résultats dans d'autres TextBox.
Je dois donc avoir un document Word dynamique tant au niveau des TextBox que
du code VBA (il faut en effet créer certain événement pour les calculs
automatiques).
Voilà!
J'espère ne pas avoir été trop long.
Merci de m'avoir lu et , surtout, merci si vous acceptez de continuer à
m'aider.
Encore une histoire de marteau et de clous (JièL vous en dira plus longuement !).
Clairement, Word n'est pas fait pour ça. Utilisez Infopath ou Access...
Circé http://faqword.free.fr
Alain avait soumis l'idée :
Merci pour votre réponse.
Il est vrai que je suis débutant mais il est vrai aussi qu'on me demande de faire un formulaire Word qui servira de rapport et qui doit contenir un nombre variable de zone TextBox. Le nombre de TextBox dépend d'un choix de l'utilisateur dans une ListBox. Par exemple, s'il sélectionne "Appareil X", il faut faire apparaitre certains TextBox qui vont contenir les données qu'il est important de stocker pour l'appareil X. Et il y a ainsi une dizaine de types d'appareils. Pour chaque appareil, les données à stocker sont différentes. Ce n'est pas tout! Dans certains cas, pour certains appareils, je dois faire des calculs sur certains TextBox et afficher les résultats dans d'autres TextBox. Je dois donc avoir un document Word dynamique tant au niveau des TextBox que du code VBA (il faut en effet créer certain événement pour les calculs automatiques). Voilà! J'espère ne pas avoir été trop long. Merci de m'avoir lu et , surtout, merci si vous acceptez de continuer à m'aider.
Alain.
Anacoluthe
Bonjour !
'Alain' nous a écrit ...
Je dois donc avoir un document Word dynamique tant au niveau des TextBox que du code VBA > Voilà!
En gros donc vous avez décidé qu'il fallait tout faire uniquement avec des TextBox et vous avez décidé que le nombre de ces TextBox devait être 'dynamique'. C'est vous qui décidez mais il me semble qu'avec juste un marteau [ ;-) private joke ] il est bien compliqué de vouloir fabriquer un violon... Bon courage !
Anacoluthe « Il est très difficile d'imaginer quelque chose de simple. » - Pierre MAC ORLAN
Bonjour !
'Alain' nous a écrit ...
Je dois donc avoir un document Word dynamique tant au niveau des TextBox que
du code VBA > Voilà!
En gros donc vous avez décidé qu'il fallait tout faire uniquement avec
des TextBox et vous avez décidé que le nombre de ces TextBox devait
être 'dynamique'. C'est vous qui décidez mais il me semble qu'avec juste
un marteau [ ;-) private joke ] il est bien compliqué de vouloir
fabriquer un violon... Bon courage !
Anacoluthe
« Il est très difficile d'imaginer quelque chose de simple. »
- Pierre MAC ORLAN
Je dois donc avoir un document Word dynamique tant au niveau des TextBox que du code VBA > Voilà!
En gros donc vous avez décidé qu'il fallait tout faire uniquement avec des TextBox et vous avez décidé que le nombre de ces TextBox devait être 'dynamique'. C'est vous qui décidez mais il me semble qu'avec juste un marteau [ ;-) private joke ] il est bien compliqué de vouloir fabriquer un violon... Bon courage !
Anacoluthe « Il est très difficile d'imaginer quelque chose de simple. » - Pierre MAC ORLAN
Alain
Je viens de commencer une initiation à InfoPath. Effectivement, ce produit semble correspondre parfaitement à mes besoins. Je ne connaissais pas son existence. Merci pour le conseil.
Alain.
Je viens de commencer une initiation à InfoPath.
Effectivement, ce produit semble correspondre parfaitement à mes besoins.
Je ne connaissais pas son existence.
Merci pour le conseil.
Je viens de commencer une initiation à InfoPath. Effectivement, ce produit semble correspondre parfaitement à mes besoins. Je ne connaissais pas son existence. Merci pour le conseil.