Utilisation d'une boîte de dialogue

Résolu
BAUHAUS44 Messages postés 50 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 17 juillet 2010 - 8 mai 2007 à 09:38
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 9 mai 2007 à 16:00
Bonjour,

Je travaille actuellement sur la création d'une macro VB pour l'utiliser sur un fichier excel. Dans cette macro, je fais apparaître un message via une MsgBox indiquant les instructions à suivre. Malheureusement, tant que je n'ai pas cliqué sur OK (ce qui entraîne la disparition du message), je ne peux pas taper les informations dans le fichier excel. Quelle boîte de dialogue puis-je utiliser pour faire apparaître ce message, le garder à l'écran tout en tapant les informations dans le fichier excel et une fois les informations tapées cliquer sur OK sur la fenêtre message pour continuer le déroulement de la macro ?


Merci d'avance à ceux qui pourront m'aider.


Bauhaus44

Javascript:Insert_Emoticon('/imgs2/smile.gif');

10 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
8 mai 2007 à 09:45
Salut,

sert toi d'un UserForm, tu y places le texte dans un Label, puis ton bouton OK.
Quand tu lances ton UserForm, fais
NomUserForm.Show False

Le UserForm ne sera pas Modal, c'est à dire, il reste affiché, tout en pouvant inscrire des données dans Excel

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
3
BAUHAUS44 Messages postés 50 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 17 juillet 2010
8 mai 2007 à 22:27
La solution a mon problème était très simple il suffsait simplement d'écrire la deuxième partie de ma macro (celle qui se trouve après avoir cliqué sur le bouton OK) dans ma "Private Sub CommandButton1_click ()" et le tour était joué. Pourquoi chercher des complications là où il n'y en a pas. Merci à tous pour votre aide. Bauhaus44
3
cs_fred2019 Messages postés 20 Date d'inscription mardi 10 avril 2007 Statut Membre Dernière intervention 25 mai 2007
8 mai 2007 à 09:44
je ne pense pas qu'il y est de MSGbox qui effectue ceci, cependant je sais que ceci est possible, en créant toi même ta msgbox (une FORM) et en utilisant des Theards, pour pouvoir tourner sur deux taches différentes



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
 




 
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
8 mai 2007 à 11:41
Salut Mortalino, et les autres

Plutôt que False, on peut aussi utiliser la constante VB

UserForm1.Show vbModeless

MPi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BAUHAUS44 Messages postés 50 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 17 juillet 2010
8 mai 2007 à 14:07
Tout d'abord je vous remercie pour votre aide. J'ai essayé de créer une UserForm mais j'ai quelques difficultés. Lorsque que je veux glisser le bouton de commande de la boîte à outils vers la fenêtre message, j'ai systématiquement un message "opération non terminée en raison de l'erreur 800a0011"(même chose pour une zone de texte. Je pense qu'il faut activer quelque chose avant mais quoi ? Ensuite Je n'ai jamais utilisé de Label, pouvez-vous m'en dire un peu plus. Et pour finir, si je mets un bouton de commande OK par exemple, lorsque le message apparaîtra à l'écran et le fait de cliquer dessus le fera disparaître ou faut-il que j'associe au bouton OK une commande ?

Merci d'avance pour votre aide.


Bauhaus44

Javascript:Insert_Emoticon('/imgs2/smile.gif');
0
BAUHAUS44 Messages postés 50 Date d'inscription samedi 19 août 2006 Statut Membre Dernière intervention 17 juillet 2010
8 mai 2007 à 20:20
Après plusieurs essais, j'y suis arrivé. En effet, j'ai donc créé une UserForm avec le texte dans un label ainsi qu'un bouton OK qui me permet de fermer la fenêtre. Afin d'activer ma userform via ma macro j'ai donc taper UserForm.Show False (UerForm.Show vbModeless ne fonctionne pas). Lorsque je procède de cette manière, la fenêtre apparaît bien et reste à l'écran tant que je n'ai pas cliqué sur OK. Je peux donc lire les instructions à suivre notées dans ma fenêtre tout en modifiant le fichier excel. Une fois que j'ai fini mes modifications, je clique sur OK et ma fenêtre d'instructions disparaît. C'est bien ce que je voulais mais malheureusement il y a un mais. Lorsque j'ai voulu intégrer cette programmation au milieu de ma macro, je me suis rendu compte que la macro n'attendait pas que je clique sur OK pour continuer, c'est probablement la conséquence du False. Lorsque j'enlève le False (ce qui revient à un True), la macro est mise en pause et attend bien que je clique sur OK pour continuer mais je n'ai pas la main pour apporter les modifications dans mon fichier excel. Comment dois-je procéder pour avoir tout en même temps à savoir ma fenêtre d'instructions à l'écran, la possibilité de modifier mon fichier excel tout en lisant les instructions contenues dans ma fenêtre et la mise en pause de ma macro tant que je n'ai pas cliqué sur OK.




Merci d'avance à ceux qui pourront m'apporter une solution. Bauhaus44

Javascript:Insert_Emoticon('/imgs2/smile.gif');
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
8 mai 2007 à 23:39
Pour info, travailles-tu sous Excel 97 ?
Il me semble que vbModeless existe à partir de 2000, mais n'en suis pas très sûr...

MPi
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
9 mai 2007 à 06:45
Salut,

même sous Excel 2000, si mes souvenirs sont bons, vbModeLess n'existe pas. Cependant, il existe des codes sur le net, pour forcer le Modal

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 mai 2007 à 10:42
Salut Mortalino,
Je travailles sous 2000 et vbModeless existe.
Voici ce qu'en dit l'aide (voir la dernière partie en bleu pour version 97...)
Il faut donc faire attention si le programme peut être porté sur de plus anciennes versions...

Show, méthode
<object id="hhobj_1" style="left: 10px; width: 45px; top: 39px; height: 13px;" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" height="13" width="45"></object>   
<object id="hhobj_2" style="left: 69px; width: 40px; top: 39px; height: 13px;" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" height="13" width="40"></object>   
<object id="hhobj_3" style="left: 123px; width: 52px; top: 39px; height: 13px;" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" height="13" width="52"></object>   
<object id="hhobj_4" style="left: 189px; width: 60px; top: 39px; height: 13px;" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" height="13" width="60"></object>

Affiche un objet UserForm.

Syntaxe

[object.]Show modal

La syntaxe de la méthode Show comprend les éléments
suivants :

Élément |Description |----
object, L'espace réservé facultatif object est une expression d'objet qui prend la valeur
d'un objet figurant dans la rubrique "Application". Si object n'est pas
spécifié, l'objet UserForm associé avec le moduleUserForm actif est supposé
lui correspondre., ----
modal, Valeur booléenne facultative qui détermine si l'objet
UserForm est modal ou pas.

Valeurs

Les valeurs pour modal sont :

Constante |Valeur |Description |----
vbModal, 1, UserForm est modal. Valeur par défaut., ----
vbModeless, 0, UserForm n'est pas
modal.

Remarques

Si l'objet spécifié n'est pas chargé lors de l'appel de la méthode
Show, Visual Basic le charge automatiquement.

Note   Dans Microsoft Office 97, si un objet UserForm
est défini de telle sorte qu'il s'affiche sans intervention de l'utilisateur
(objet non modal), une erreur se produit au moment de l'exécution. Les objets
UserForms d'Office 97 sont toujours de forme modale.

MPi
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
9 mai 2007 à 16:00
Salut MPi,

beh je devais travailler avec Excel 97 alors !
Ne l'ayant pas (je l'avais au taf mais là où j'étais avant), et là où je suis j'ai Excel 03, je pensais que c'était la version précédante.

Bah ils sont en retard alors...

@++

<hr width="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
0
Rejoignez-nous