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?
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
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
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.
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"