Microsoft 365 Animation en attente de résultat

Claudy

XLDnaute Accro
Bonjour,
dans un fichier.xlsm, une macro qui cherche, calcule, bref ça prend un peu de temps (quelques secondes) ...
Dans l'attente du résultat, y a t il possibilité d'afficher une petite animation, dans le genre, sablier, boulier qui tourne (ça ce serait top) , spirale, ou autre?
Idéalement avec du son...

Merci,

Claudy
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
J'ai deux UserForm :
1) — UFmProg: une barre de progression avec en plus une barre d'activité affichant le nombre d'opérations élémentaires par seconde, le pourcentage effectué, l'heure de fin prévue suivi du délai restant. Mais elle nécessite de connaitre à l'avance combien de fois elle va être actualisée.
1) — UFmVisu: juste une barre d'activité montrant la part résolue, la partie non résolue, et les limites couverte par la séparation entre les deux au cours des 40 dernières millisecondes. Convient pour des tâches de durées indéterminées comportant des retours en arrière pour essayer d'autres voies, genre tirages au sort de participants pour compétitions avec contraintes de rencontres uniques, voire terrain de jeu occupé une seule fois …
 

Claudy

XLDnaute Accro
Chez moi le gif ne s'anime pas lors du test. :(
Est-ce normal ?
Bonsoir Dudu, et merci,
J'ai trouvé un boulier .mp4 que j'ai transformé en .gif, mais trop volumineux à charger ici sur lesite:(
Donc capture d'écran avec LICECap en annexe et ça marche.

Je vais retravailler ton .xlsm, je te tiens au courant.

Question complémentaire: comment y intègrer un .wav à lafin de l'animation?
ou un bouton qui lance un .wav

Merci,

Claudy
 

Pièces jointes

  • boulierdémo.gif
    boulierdémo.gif
    674.4 KB · Affichages: 14

Dudu2

XLDnaute Barbatruc
Pour jouer un .wav j'ai retrouvé ça dans mon backlog.
VB:
Private Const SND_APPLICATION = &H80 ' look for application specific association
Private Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
Private Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry identifier
Private Const SND_ASYNC = &H1 ' play asynchronously
Private Const SND_FILENAME = &H20000 ' name is a file name
Private Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Private Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file
Private Const SND_NODEFAULT = &H2 ' silence not default, if sound not found
Private Const SND_NOSTOP = &H10 ' don't stop any currently playing sound
Private Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy
Private Const SND_PURGE = &H40 ' purge non-static events for task
Private Const SND_RESOURCE = &H40004 ' name is a resource name or atom
Private Const SND_SYNC = &H0 ' play synchronously (default)
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
    (ByVal lpszName As String, ByVal hModule As LongPtr, ByVal dwFlags As Long) As Long

Sub Jouer_Click()
    PlaySound "G:\MOSAIQUE\son_1.wav", ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub

Sub Arreter_Click()
    PlaySound 0&, ByVal 0&, SND_FILENAME Or SND_ASYNC
End Sub
 

Dudu2

XLDnaute Barbatruc
Ok, en plus court.
Code:
Private Const SND_ASYNC = &H1           ' play asynchronously
Private Const SND_FILENAME = &H20000    ' name is a file name

Private Declare PtrSafe Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
    (ByVal lpszName As String, ByVal hModule As LongPtr, ByVal dwFlags As Long) As Long

'---------------------
'Jouer un fichier .wav
'---------------------
Sub JouerWav(FileFullName As String)
    Call PlaySound(FileFullName, ByVal 0&, SND_FILENAME Or SND_ASYNC)
End Sub
 

patricktoulon

XLDnaute Barbatruc
bon soir
ce qu'il y a de bien avec les truc obsolètes que CROCROsoft laisse tomber
c'est que l'on peut en faire ce que l'on veut
et c'est juste ment le cas pour l'object internet explorer
en plus de ça je te propose un truc qui ne prendra pas l'UC réservé a excel

une petite démo j'ouvre une fenêtre avec un marquee en guise d'animation
elle se ferme quand ma grande boucle a fini
VB:
Function waitProcess() As Object
    Dim IE
    Set IE = CreateObject("internetexplorer.application")
    With IE
        .Visible = True
        .StatusBar = False
        .Toolbar = False
        .Width = 200: .Height = 100
        .navigate "about:blank"
        Do While .readystate < 4: DoEvents: Loop
        With .document
            .Title = "procedure en cours"
            .write "<marquee> Veuillez patienter pendant la procédure</marquee>"
        End With

    End With
    Set waitProcess = IE
End Function

Sub test()
    Set x = waitProcess
    For i = 1 To 800000000
    Next
    x.Quit
End Sub
alors après tout est permis dans ton document html de ta page
demo.gif
 

Discussions similaires

Statistiques des forums

Discussions
315 103
Messages
2 116 246
Membres
112 695
dernier inscrit
ben44115