Le Deal du moment : -20%
-20% Récupérateur à eau mural 300 ...
Voir le deal
79 €

modification d'une macro

2 participants

Aller en bas

modification d'une macro Empty modification d'une macro

Message  gilles974 Sam 15 Avr 2023 - 15:07

bonjour

j'ai cette fonction qui affiche des messages system et des messages classique (texte)
Code:

Function PushMSG(Str1 As String) As Boolean
   SetUserLabel (21,GetUserLabel(20))
   SetUserLabel (20,GetUserLabel(19))
   SetUserLabel (19,GetUserLabel(18))
   SetUserLabel (18,GetUserLabel(17))
   SetUserLabel (17,Str1)
   Message Str1
   PushMSG=True
End Function

pour les messages classiques
Code:

PushMSG("Erreur! Sonde déclenchée pendant le mouvement Z")

je voudrais juste remplacer PushMSG() pour les messages classiques par une boite de dialogue du type
MsgBox(Message [, Bouton(s) + Icône + Bouton_sélectionné_par_défaut] [, TitreFenêtre] )

exemple
MsgBox("Erreur!" & Chr(10) & Chr(10) & "Sonde déclenchée pendant le mouvement Z" , 0+48+0, ATTENTION )

est ce possible ??

++ gilles


gilles974
gilles974
acharné du forum
acharné du forum

Messages : 433
Points : 650
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

modification d'une macro Empty Re: modification d'une macro

Message  gilles974 Sam 15 Avr 2023 - 15:48

j'ai réussi à moitier
j'arrive pas à intégrer es boutons et le titre de la boite

Code:

   Dim Bouton
   Dim Titre

Bouton = vbOKOnly + vbExclamation + vbDefaultButton1
Titre = "ATTENTION....."
MsgBox("Une érreur c'est produite...." & Chr(10) & Chr(10) & "recherche G31 X terminée sans prise de contact"  & Chr(10) & "Revenez manuellement à la position de départ et répétez la recherche" )

gilles974
gilles974
acharné du forum
acharné du forum

Messages : 433
Points : 650
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

modification d'une macro Empty Re: modification d'une macro

Message  dh42 Sam 15 Avr 2023 - 17:45

Salut,

a) Si tu utilise le mode avec options de MsgBox(), il faut l'utiliser comme une fonction avec valeur de retour.

b) Les constante de type "'vbOKOnly" ne font pas partie du Basic Cypress mais du Visual Basic, donc il faut utiliser des valeurs numériques ou définir chaque contante.(*)

Code:
Dim Bouton
Dim Titre

Bouton = 0 + 48 + 0 'vbOKOnly + vbExclamation + vbDefaultButton1
Titre = "ATTENTION....."
reply = MsgBox("Une érreur c'est produite...." & Chr(10) & Chr(10) & "recherche G31 X terminée sans prise de contact"  & Chr(10) & "Revenez manuellement à la position de départ et répétez la recherche", bouton,titre )

modification d'une macro Sans_366

(bon, je n'ai pas corrigé les fautes d'orthographe Wink)

(*) ex: pour définir une constante appelée "vbExclamation" avec une valeur de 48

Code:
Const vbExclamation = 48

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 25106
Points : 37822
Date d'inscription : 21/06/2009
Age : 60
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

modification d'une macro Empty Re: modification d'une macro

Message  gilles974 Sam 15 Avr 2023 - 18:11

merci david pour le coup de pouce

ca marche mieux , mais j'ai 2 fenêtres qui s'ouvrent
la 1er est conforme au message

Code:

Bouton = 0 + 48 + 0 'vbOKOnly + vbExclamation + vbDefaultButton1
Titre = "ATTENTION....."
reply = MsgBox("Une erreur s'est produite...." & Chr(10) & Chr(10) & "recherche G31 X terminées sans prise de contact" & Chr(10) & "Revenez manuellement à la position de départ et recommencer la recherche",Bouton, Titre )
      Msgbox reply

la 2eme fenêtre en dessous affiche un "1" scratch



gilles974
gilles974
acharné du forum
acharné du forum

Messages : 433
Points : 650
Date d'inscription : 31/10/2011
Age : 65
Localisation : La Réunion

Revenir en haut Aller en bas

modification d'une macro Empty Re: modification d'une macro

Message  dh42 Sam 15 Avr 2023 - 18:52

la 2eme fenêtre en dessous affiche un "1"  scratch

Oui, c'est normal, c'est ton instruction  Msgbox reply qui t'affiche le 1 (tu demande l'affichage de la valeur contenue dans la variable "reply")

la variable "reply" contient la valeur renvoyée par la fonction reply = MsgBox(), donc le n° du bouton que tu as cliqué .. (et vu qu'il n'y a qu'un seul bouton, le résultat sera toujours égal à 1)

Si par exemple tu remplace la valeur de "bouton" par 1 + 48 + 0, le 1 signifie que tu veux un bouton OK et un bouton Annuler

Bouton = 1 + 48 + 0 'vbOKCancel + vbExclamation + vbDefaultButton1
Titre = "ATTENTION....."
reply = MsgBox("Une erreur s'est produite...." & Chr(10) & Chr(10) & "recherche G31 X terminées sans prise de contact" & Chr(10) & "Revenez manuellement à la position de départ et recommencer la recherche",Bouton, Titre )
     MsgBox reply

modification d'une macro Sans_367

Dans ce cas, si tu clique sur OK, reply vaudra 1, si tu clique sur Annuler ou si tu ferme la fenêtre via la croix, reply vaudra 2

Dans la suite de ton programme, tu peux donc tester "reply" avec un If/Then pour savoir quel bouton à été cliqué et pour agir en conséquence.

++
David

_________________
Traduction Française de CamBam et de sa documentation.
dh42
dh42
Admin
Admin

Messages : 25106
Points : 37822
Date d'inscription : 21/06/2009
Age : 60
Localisation : Près de St Etienne (42)

http://dh42.free.fr/

Revenir en haut Aller en bas

modification d'une macro Empty Re: modification d'une macro

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum