Rechercher : dans
Par :

MSGBOX et VBA

Dernière réponse le 29 mai 2009 à 21:12:15 boudeviseur, le 26 mar 2007 à 16:50:20 
 Signaler ce message aux modérateurs

Salut

Je lutte un peu avec VBA 6.3 et access. En fait j'aimerais utiliser toutes les options des boites de dialogue (MGXBOX), en y mettant le style aide, et le titre Aide aussi. J4ai lu l'aide (ca fait beaucoup d'aide ca..) de VBA, mais elle ne me sert a rien, quand je tape mon code, il me dit qu'il attend un égal quelque part. Quelqu'un pourrait t'il m'aider, en me donnant la syntaxe exacte de cette fonction?

Merci c'est beaucoup mieux que si c'était moins bien

Configuration: Windows XP
Firefox 2.0.0.3

Meilleures réponses pour « MSGBOX et VBA » dans :
VBA et les collections d'objets. VoirVBA et les collections d'objets Quand plusieurs (beaucoup de) contrôles sont mis sur une feuille ou un Userform il est parfois fastidieux d'écrire du code dans chaque évènement des contrôles. Ce Tuto vous permet de traiter vos contrôles comme...
[VBA] Ecrire/lire une série de TextBox en une seule Sub VoirEn VBA, les TextBox ne disposent pas d'un index et dans la plupart des cas, pour entrer du texte, on procède par.. TextBox1.Text = Cells(2,1).value TextBox2.Text = Cells(2,2).value TextBox3.Text = Cells(2,3).value Et l'inverse pour lire les...

1

fl0, le 26 mar 2007 à 16:53:12

Salut

montre nous ce que tu as marqué

Répondre à fl0

2

boudeviseur, le 27 mar 2007 à 08:02:07

Salut, merci déja de s'y interesser

VOici le code:

MsgBox ("Cette partie de la page" & vbCrLf & "La case à cocher etc..",vbInformation = vbOKOnly,"Aide")

Sauf que quand je met que je veut un style "Aide", et le titre "Aide", il y a un message d'erreur qui me dit qu'il attend un "=" quelque part..

Merci c'est beaucoup mieux que si c'était moins bien

Répondre à boudeviseur

3

masterseb, le 19 avr 2007 à 23:58:47

Salut,

remplace ton code de msgbox par celui-ci, qui met toutes les données du msgbox dans des variables :

Dim Message, Style, Titre

Message = "Cette partie de la page" & vbCrLf & "La case à cocher etc.."
Style = vbOKOnly
Titre = "Aide"
MsgBox Message, Style, Titre


a+

Répondre à masterseb

4

c-cube, le 31 mar 2008 à 16:15:56

Désolé de répondre à un post qui date d'il y a un an, mais il me semble que le problème vient d'une incompréhension de la fonction Msgbox.

Normalement, cette fonction retourne l'identifiant du bouton cliqué par l'utilisateur (ex: vbOk). Donc il est normal qu'il est normal que le compilateur attende une affectation du style :

reponse = Msgbox(...)

ou encore :

if (Msgbox(...) = vbok) then
...
else
...
end if

Si tu veux utiliser Msgbox comme une procédure, rajoute le mot clé "Call" devant, et la valeur de retour de la fonction Msgbox sera tout simplement ignorée :

Call Msgbox(...)

Répondre à c-cube

5

boudeviseur, le 10 avr 2008 à 14:10:06

MErci pour tes explication
c'est beaucoup mieux que si c'était moins bien

Répondre à boudeviseur

6

Will, le 28 mai 2009 à 18:46:55

Désolé de répondre presque un an après la dernière réponse moi aussi !!!
Tout d'abord sans vouloir contrarier masterseb je pense que la réponse de c-cube est la meilleure car tu peux en effet gérer ensuite la réponse (d'ou le nom de variable associé à la box ).
Voila pour ma part.

J'aurais cependant une question moi aussi (interet du post ^^)
Y a t-il un moyen "d'actualiser" la message box ?
Je m'explique : par exemple lorsqu'on affiche l'heure, que les secondes défilent, ou dans mon cas, afficher l'écoulement d'un compte à rebours ?

Si besoin du code, demadez moi !

Merci d'avance pour vos réponses si quelqu'un passe par ici !

PS : message au modo : désolé si j'ai pas le droit de reposer une question, effacez et je reposterai en créant un new topic.

Répondre à Will

7

NicoDisso, le 28 mai 2009 à 18:50:34
  • +1

Si tu veux actualiser l'heure et la date, le mieux c'est de te faire un msgbox perso comme une feuille ou tu mets ce que tu veux dedans.
Pour pousser le vis, tu peux meme jusqu'à faire jouer le son associé dans windows

Répondre à NicoDisso

8

kryoportail, le 28 mai 2009 à 18:53:16

Salut !

Lol, NicoDisso le pro de la macro !.....

Amicalement,
S@M...

Répondre à kryoportail

9

Will, le 28 mai 2009 à 20:55:47

Ok mais la question est : " Comment faire ? "
(dsl de ma "noobité" ^^)

Répondre à Will

10

NicoDisso, le 29 mai 2009 à 07:22:29

Tu mets un controle timer dans ta feuille et tu mets un label
Ensuite dans la propriete interval de ton timer tu mets 1000 ce qui
Correspond a 1 sec
Et enfin dans sa procedure timer ( de memoire ) tu lui mets un code du style

Label1.caption = format(date,"dd/mm/yyyy") & " " & format(time,"hh:mm:ss")
Label1.refresh

Et la ton label affichera la date & l heure

Répondre à NicoDisso

11

Will, le 29 mai 2009 à 17:20:34

Euh ... j'ai oublié de préciser que je ne connais pas (plus ?) grand chose en vba ...
j'en fais depuis un moment mais je n'ai eu à utiliser que des macros basiques qui généralement, n'ont même pas besoin de crééer des objets (c'est pour dire) et de ce fait, pas mal de bases sont passées aux oubliettes ... je te passe mon code :

Sub tps()
m = MsgBox("Go !", vbOKOnly,"titre")
' durée donnée par la sub precedente '
Start = Timer ' top
Finish = Start + duree

Do While Timer < Finish
il_reste = Int(Finish - Timer)
m0 = CreateObject("Wscript.shell").Popup("TEete" & var_a & " texte " & var_b & " texte " & var_c & " texte" & Chr(10) & _
"Il reste " & il_reste & " secondes avant la fin." & Chr(10) & _
"La fenetre se fermera automatiquement à la fin du temps imparti." & Chr(10) & _
"Appuyez sur OK pour mettre à jour ou sur Cancel pour quitter.", duree, "Titre", vbOKCancel)
If m0 = vbCancel Then
Finish = 10000
'grosse valeur donc fini'
End If
m00 = MsgBox("C'est fini !", vbOKOnly, "Sexy_Game")
DoEvents ' Donne le contrôle à d'autres processus.
Loop
sub_suivante
End Sub

j'aimerais que la variable il_reste se mette à jour dans ma msgbox pour eviter ce vieux message "ok pour mettre a jour " !!

Répondre à Will

12

Will, le 29 mai 2009 à 17:23:20

PS : trouvez la touche d'humour !
c'est pour voir ceux qui sont attentifs

Répondre à Will

13

Will, le 29 mai 2009 à 18:16:27

Enfait je crois que je vais faire un userform (sauf si plus simple) ... reste à savoir comment insérer une variable dans le texte de la userform

Répondre à Will

14

NicoDisso, le 29 mai 2009 à 18:22:55

Sur une feuille, mettre 1 timer, 2 label ( lbl_date & lbl_message)

dans l'évement

Private Sub Timer1_Timer()

Lbl_Date.Caption = StrConv(Format(Now, "DDDD DD MMMM YYYY - HH:MM:SS"), vbProperCase)

Dim Minute As Integer

Minute = CInt(Mid(Format(Time, "hh:mm:ss"), 4, 2))

Lbl_Message.Caption = "actuellement nous sommes à la minute " & Minute & ""

End Sub

Répondre à NicoDisso

15

Will, le 29 mai 2009 à 18:24:12

Et comment raffraichir cette variable ...

Répondre à Will

16

NicoDisso, le 29 mai 2009 à 18:26:23

C'est le role du timer...

ca fonction est de déclencher l'évènement à un intervale spécifié en millisecondes...

Répondre à NicoDisso

17

Will, le 29 mai 2009 à 18:39:50

Donc si je copiecolle ton code dans une sub ça marche ???

Répondre à Will

18

Will, le 29 mai 2009 à 19:02:31

Bah non ... il demande un objet ... jelui donne quoi ?

Répondre à Will

19

NicoDisso, le 29 mai 2009 à 19:28:42

Je t'ai dit
"Sur une feuille, mettre 1 timer, 2 label ( lbl_date & lbl_message) "

rajoutes un composant "Timer Object"
tu le place sur ta feuille ( il est invisble une fois lancé )
dans la propriété "interval" tu mets 1000 ( millisecondes )
et tu regardes ce que ca fait...

par contre je n'avais pas testé, le time ne lui plait pas donc tu mets now

Private Sub IeTimer1_Timer()

Lbl_Date.Caption = StrConv(Format(Now, "DDDD DD MMMM YYYY - HH:MM:SS"), vbProperCase)

Dim Minute As Integer

Minute = CInt(Mid(Format(Now, "hh:MM:ss"), 4, 2))

Lbl_Message.Caption = "actuellement nous sommes à la minute " & Minute & ""

End Sub

Répondre à NicoDisso

20

Will, le 29 mai 2009 à 19:32:56

MERCI beaucoup

Répondre à Will
Collection CommentÇaMarche.net