OVH Cloud OVH Cloud

Récupérer une données issue d'une fenetre modale

5 réponses
Avatar
Driss HANIB
Bonjour à tous,

comme je vois que la liste "se repose" en ce moment, je vais poser une
question mais je crois qu'elle avait été posée ...

Pour resituer le contexte : il y a quelques jours j'avais posté une question
concernant la manipulation de fichiers RTF.

Je viens de faire une fenetre qui me permet de créer un fichier RTF (en
prenant, j'en conviens sur plusieurs sources franco et anglophones) avec
mise ne forme du texte, insertion image; surlignage..etc ainsi donc que
sauvegarde et impression brute vers printer.

En fait je veux, et c'est là toute la question , pouvoir transmettre la
chaine issue du RTFBox à une variable extérieure à la Feuille.
Ma feuille est en modale.
Le principe de mon prog proncipal, j'appelle la feuille ; je veux ici lui
transmettre "ByRef" le nom d'une variable particulière.
dans la feuille le contenu de la variable (originale) est lu et affiché dans
ma RTFBox, puis ma feuille s'affiche en vbModal pour que je puisse modifier
et formater le texte.
Je veux ensuite pouvoir "renvoyer" dans la variable originale le contenu du
RTFBox.

Merci pour vos pistes

Driss

5 réponses

Avatar
Jean-marc
Driss HANIB wrote:
Bonjour à tous,



Hello Driss,

comme je vois que la liste "se repose" en ce moment, je vais poser une
question mais je crois qu'elle avait été posée ...



En effet :-)

Pour resituer le contexte : il y a quelques jours j'avais posté une
question concernant la manipulation de fichiers RTF.

Je viens de faire une fenetre qui me permet de créer un fichier RTF
(en prenant, j'en conviens sur plusieurs sources franco et
anglophones) avec mise ne forme du texte, insertion image;
surlignage..etc ainsi donc que sauvegarde et impression brute vers
printer.
En fait je veux, et c'est là toute la question , pouvoir transmettre
la chaine issue du RTFBox à une variable extérieure à la Feuille.
Ma feuille est en modale.



Il y a plusieurs façons de faire, qui sont exposées dans l'article suivant
de la FAQ :
http://faq.vb.free.fr/index.php?question5

Si tu veux plus de précisions, n'hésite pas :-)

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Driss HANIB
Bonjour Jean Marc

Comme d'habitude on ne pense pas à regarder cette FAQ.
Alors j'y vais ce ce pas (de programme..)

Driss


"Jean-marc" a écrit dans le message de news:
4aa7dd3e$0$2859$
Driss HANIB wrote:
Bonjour à tous,



Hello Driss,

comme je vois que la liste "se repose" en ce moment, je vais poser une
question mais je crois qu'elle avait été posée ...



En effet :-)

Pour resituer le contexte : il y a quelques jours j'avais posté une
question concernant la manipulation de fichiers RTF.

Je viens de faire une fenetre qui me permet de créer un fichier RTF
(en prenant, j'en conviens sur plusieurs sources franco et
anglophones) avec mise ne forme du texte, insertion image;
surlignage..etc ainsi donc que sauvegarde et impression brute vers
printer.
En fait je veux, et c'est là toute la question , pouvoir transmettre
la chaine issue du RTFBox à une variable extérieure à la Feuille.
Ma feuille est en modale.



Il y a plusieurs façons de faire, qui sont exposées dans l'article suivant
de la FAQ :
http://faq.vb.free.fr/index.php?question5

Si tu veux plus de précisions, n'hésite pas :-)

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;






Avatar
Driss HANIB
Re bonjour Jean Marc

je viens de regarder la FAQ : Elle répond en partie à ma question.

En effet , ma feuille en vbModale va être appelée de plusieurs endroits dans
le programme donc de plusieurs feuilles différentes.

Dans mes programmes précédents j'utilise des feuilles de ce type là
appelées de "partout" : je transmettais un identifiant de la feuille
appelante et à la sortie de ma feuille appelée , en focntion de cette
identifiant j'exécute une procédure de la feuille appelante déclarée
Publique.

Là, comme je veux simplement transmettre une variable de type string, je
voulais éventuellement transmettre "l'adresse" de cette variable dans la
feuille appelante de façon à remplir cette variable par la feuille modale.

j'aurai ainsi une procédure du type

Sub InitialiseVar(VarAppelante as string)
set VarCible = VarAppelante
end sub

et je remplirai donc VarCible (dans ma feuille modale). Cela permettrait une
"indépendance" de ma feuille modale..

Mais j'ai une erreur à l'éxécution de cette procedure. peut dois-je mettre
Sub InitialiseVar(VarAppelante as object) ?

En tout état de cause j'ai (avant d'avoir eu ton post) fait de la façon
suivante : j'ai créé 2 variables
Une chaine public (donc effectivement dans un module contenant mes
variables publiques) qui reçoit la chaine formatée dans mon RTBox et une
variable de type booléen qui me dit si effectivement il y a eu remplissage
de la chaine publique.

Maintenant, même si les mémoires des PC sont assez grosses , je voulais
juste éviter de déclarer des variables publiques..

Si tu as (ou d'autres) une idée..

merci

Driss




"Jean-marc" a écrit dans le message de news:
4aa7dd3e$0$2859$
Driss HANIB wrote:
Bonjour à tous,



Hello Driss,

comme je vois que la liste "se repose" en ce moment, je vais poser une
question mais je crois qu'elle avait été posée ...



En effet :-)

Pour resituer le contexte : il y a quelques jours j'avais posté une
question concernant la manipulation de fichiers RTF.

Je viens de faire une fenetre qui me permet de créer un fichier RTF
(en prenant, j'en conviens sur plusieurs sources franco et
anglophones) avec mise ne forme du texte, insertion image;
surlignage..etc ainsi donc que sauvegarde et impression brute vers
printer.
En fait je veux, et c'est là toute la question , pouvoir transmettre
la chaine issue du RTFBox à une variable extérieure à la Feuille.
Ma feuille est en modale.



Il y a plusieurs façons de faire, qui sont exposées dans l'article suivant
de la FAQ :
http://faq.vb.free.fr/index.php?question5

Si tu veux plus de précisions, n'hésite pas :-)

Cordialement;

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;






Avatar
Vincent Guichard
Bonjour,

Dans les quelques cas ou j'ai fait des fenêtres modales de ce type,
j'utilisais des variables publiques de la form modale pour transmettre
les informations.

Dans la Form modale:
+ Les variables publique (ou des propriétés, mais je suis feignant en
général) + 1 booléen pour savoir si la form a été correctement remplie.
+ Dans Form_Load, mise à False du booléen et initialisation des
contrôles de la Form à l'aide des variables.
+ Dans Form_Initialise, valeurs par défaut des variables
+ Sur un bouton Cancel, booléen = False et Unload Me
+ Sur un bouton Ok, booléen = True, mise à jour des variables et Un load Me

Dans la Form appelante, et dans un block With:
+ Accès au variables publiques de la form (modale) pour les initialiser
avec les valeurs voulues
+ puis appel de Show vbModal pour afficher la Form
+ au retour, test du booléen pour savoir s'il faut aller voir les
nouvelles valeurs des variables.

Je n'ai jamais vu de problème avec dette façon de faire, ce qui ne ve ux
pas dire qu'il n'y ai pas de défaut.
Tu peux aussi faire une méthode publique dans la form modale qui se
charge d'initialiser les variables et de s'afficher en modal en modal,
avec en retour de cette méthode la valeur du booléen.

Vincent Guichard
Avatar
Driss HANIB
Bonjour Vincent,

pas de problème c'est ce que j'ai fait.
merci

Driss

"Vincent Guichard" a écrit dans le message de
news: 4aa8ffb0$0$17738$
Bonjour,

Dans les quelques cas ou j'ai fait des fenêtres modales de ce type,
j'utilisais des variables publiques de la form modale pour transmettre
les informations.

Dans la Form modale:
+ Les variables publique (ou des propriétés, mais je suis feignant en
général) + 1 booléen pour savoir si la form a été correctement remplie.
+ Dans Form_Load, mise à False du booléen et initialisation des
contrôles de la Form à l'aide des variables.
+ Dans Form_Initialise, valeurs par défaut des variables
+ Sur un bouton Cancel, booléen = False et Unload Me
+ Sur un bouton Ok, booléen = True, mise à jour des variables et Unload Me

Dans la Form appelante, et dans un block With:
+ Accès au variables publiques de la form (modale) pour les initialiser
avec les valeurs voulues
+ puis appel de Show vbModal pour afficher la Form
+ au retour, test du booléen pour savoir s'il faut aller voir les
nouvelles valeurs des variables.

Je n'ai jamais vu de problème avec dette façon de faire, ce qui ne veux
pas dire qu'il n'y ai pas de défaut.
Tu peux aussi faire une méthode publique dans la form modale qui se
charge d'initialiser les variables et de s'afficher en modal en modal,
avec en retour de cette méthode la valeur du booléen.

Vincent Guichard