Son et message sous excel VBA [Résolu]

Messages postés
1260
Date d'inscription
vendredi 10 juillet 2009
Dernière intervention
22 octobre 2018
- 2 nov. 2012 à 23:40 - Dernière réponse :
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 4 nov. 2012 à 10:58
Bonsoir,

J'ai un doute avec mon application qui comporte des boutons de commande et qui charge des photos sur chacun d'eux.
Aussi, j'ai décidé de mettre une instruction pour être certain que le chargement des photos est terminé et un message furtif lorsque je clique sur un bouton.
Mais je ne sais pas comment faire.

1-Comment afficher un message du type "point attribué" et qui s'efface tout seul après un peu moins d'1 seconde ou une seconde au plus?

2-Comment émettre un Bip ?

Merci de votre aide.
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 3 nov. 2012 à 00:47
3
Merci
Commence par te créer ton petit message avec une zone de texte (via les graphiques d'Excel) que tu renomme en MsgInfo

Puis voilà un petit code pour te donner une idée

D'abord ajouter ca au début de ton module (retire éventuellement les PtrSafe si il n'est pas content) :
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare PtrSafe Function Beep Lib "kernel32.dll" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long


A placer après ton traitement :
Dim shape As shape
Set shape = ActiveSheet.Shapes("MsgInfo")
shape.Visible = msoTrue

Call Sleep(1000) 'Attente 1 seconde
Call Beep(800, 500) ' Beep pendant 500ms
shape.Visible = msoFalse


Par contre l'attente est bloquante, aucune actions ne pourra être faite pendant ce temps

_____________
Kenji

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 3 nov. 2012 à 00:57
3
Merci
Deuxième possibilité sans les API et l'attente non bloquante

Dim shape As shape
Set shape = ActiveSheet.Shapes("MsgInfo")
shape.Visible = msoTrue
Application.OnTime Now + TimeValue("00:00:01"), "WaitEnd"


Et la fonction de fin

Public Sub WaitEnd()
  Dim shape As shape
  Set shape = ActiveSheet.Shapes("MsgInfo")
  VBA.Beep
  shape.Visible = msoFalse
End Sub


_____________
Kenji

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 3 nov. 2012 à 11:45
3
Merci
Si tu veux conserver la TextBox, il faut passer par un OLEObject

Public Sub WaitEnd()
  Dim ctrl As OLEObject
  Set ctrl = ActiveSheet.OLEObjects("MsgInfo1")
  VBA.Beep
  ctrl.Visible = False
End Sub


Dim ctrl As OLEObject
Set ctrl = ActiveSheet.OLEObjects("MsgInfo1")
ctrl.Visible = True
Application.OnTime Now + TimeValue("00:00:01"), "WaitEnd"



_____________
Kenji

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 3 nov. 2012 à 00:07
0
Merci
Bonsoir,

Plusieurs choix :

Soit tu affiche le message dans un forme (rectangle, cercle ...) que tu fais apparaitre ou disparaitre
Sois tu affiche une message style msgbox mais de ta propre conception (UserFrom)
Soit juste un texte écris dans une cellule, et qui s'efface après

Soit faire un Bip avec le son de Windows
Soit faire un Bip avec le buzzer du PC


_____________
Kenji
Commenter la réponse de Charles Racaud
Messages postés
1260
Date d'inscription
vendredi 10 juillet 2009
Dernière intervention
22 octobre 2018
- 3 nov. 2012 à 00:34
0
Merci
J'aimerais que le message "Point attribué!"s'affiche dans un rectangle simple mais qu'il disparaisse sans mon intervention.

Pour le bip le buzzer pc conviendra car je compte opter pour Open office prochainement et y transférer mon application.

Merci
Commenter la réponse de mod77
Messages postés
1260
Date d'inscription
vendredi 10 juillet 2009
Dernière intervention
22 octobre 2018
- 3 nov. 2012 à 11:25
0
Merci
Bonjour Charles Racaud,
J'ai essayé la 2e méthode.
J'ai retiré effectivement les ptrSafe, mais
j'ai un message d'erreur qui apparait de temps en temps" Erreur d'exécution n°5: argument ou appel de procédure incorrecte" au niveau de "shape =...".

Mais je ne comprends pas une chose:
J'ai créé ma zone texte MsgInfo1. Via propriété j'ai mis le texte "note attribuée".
Mais il est toujours visible.

Et où dois-je mettre le 1er code "Dim shape.."
Commenter la réponse de mod77
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 3 nov. 2012 à 11:30
0
Merci
Attention, ce n'est pas un control (ActiveX ou formulaire) qu'il faut insérer mais un dessin Excel
Le premier code se met à la fin de ton traitement.

_____________
Kenji
Commenter la réponse de Charles Racaud
Messages postés
1260
Date d'inscription
vendredi 10 juillet 2009
Dernière intervention
22 octobre 2018
- 3 nov. 2012 à 11:35
0
Merci
Voici le fichier ça sera plus simple:
http://cjoint.com/?3KdlIRQdrwt
Commenter la réponse de mod77
Messages postés
1260
Date d'inscription
vendredi 10 juillet 2009
Dernière intervention
22 octobre 2018
- 3 nov. 2012 à 22:00
0
Merci
J'ai essayé mais j'ai trop de mal alors je me contente de fenêtre de message.

Mais je vous remercie beaucoup de votre aide.
Commenter la réponse de mod77
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 4 nov. 2012 à 10:58
0
Merci
Quel a été le problèmes ? J'ai fais tes testes sur ton document, ca marchais très bien.
Attention, il faut placer la fonction WaitEnd dans un module et remplacer ActiveSheet par ta feuille Application donc "Feuil3"

_____________
Kenji
Commenter la réponse de Charles Racaud

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.