BAUHAUS44
Messages postés50Date d'inscriptionsamedi 19 août 2006StatutMembreDernière intervention17 juillet 2010
-
8 mai 2007 à 09:38
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 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 ?
BAUHAUS44
Messages postés50Date d'inscriptionsamedi 19 août 2006StatutMembreDernière intervention17 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
cs_fred2019
Messages postés20Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention25 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" /??>
BAUHAUS44
Messages postés50Date d'inscriptionsamedi 19 août 2006StatutMembreDernière intervention17 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 ?
BAUHAUS44
Messages postés50Date d'inscriptionsamedi 19 août 2006StatutMembreDernière intervention17 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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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...
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.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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~