IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Synchroniser une image animée et du son dans un UserForm [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2010
    Messages : 116
    Par défaut Synchroniser une image animée et du son dans un UserForm
    salut à tous
    J'ai posté cet après-midi une demande d'aide pour essayer de synchroniser une image animée et du son dans un Userform, mais je me suis trompé de rubrique.. Je recommence donc:

    Je termine les derniers détails d'une application de 'petit calcul' (addition soustraction etc.) pour aider des gamins de 6-7 ans à apprendre à compter.
    L'animation que je cherche à mettre au point est destinée à égayer un peu l’exercice et à maintenir ainsi leur attention.
    Le bout de code joint est une toute petite partie de l'application.
    Les séquences images et sons sont correctes mais je ne réussis pas à les synchroniser.
    Si quelqu'un a une idée...
    On m'a déjà fait remarquer qu'Excel n'était pas le bon instrument pour ce type de travail, mais il ne s'agit ici que d'une toute petite partie de l'application (une cerise sur le gâteau en quelque sorte).
    Pour l’exercice de calcul lui même, sa présentation et son déroulement, Excel et VBA ont très bien convenus.
    Merci d'avance pour le coup de main.
    L.P.
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonsoir
    tu entends quoi par synchroniser ??
    j'ai essayé et mis a part que les applaudissements continuent même après avoir arrêté les images ca fonctionne
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 221
    Par défaut
    hello,
    avec playsound on ne contrôle pas l'arrêt de lecture d'un fichier audio. Il vaut mieux utiliser mcisendstring qui a la commande close pour arrêter la lecture d'un fichier comme ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Private Declare PtrSafe Function mciSendString Lib "winmm.dll" Alias _
       "mciSendStringA" (ByVal lpstrCommand As String, ByVal _
       lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal _
       hwndCallback As Long) As Long
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Sub SeQuence()
    Dim x As Integer, iMg As Integer, ChrOnO As Double, SonOk As Boolean
        x = 1: iMg = 1: MarChe = True: SonOk = True
    DoEvents
    Dim AudioFile
    AudioFile = ActiveWorkbook.Path & "\" & "Applaudissements.WAV"
    ChrOnO = Timer
    While MarChe = True
            Me.Image1.Picture = LoadPicture(ActiveWorkbook.Path & "\" & iMg & ".gif")
            If SonOk = True Then
            mciSendString "play " & AudioFile, 0&, 0, 0
            End If
                Me.Label1.Caption = "Image" & iMg & "   x= " & x
        While Timer - ChrOnO < 0.2
        Wend
            ChrOnO = Timer: iMg = iMg + 1: SonOk = False ' le son une seule fois
                  If iMg = 8 Then iMg = 1:
        x = x + 1:
            If x = 10 Then MarChe = False  'Nb. de passages
    DoEvents
    Wend
    ' arrêt de la lecture du fichier audio
    mciSendString "close " & AudioFile, 0&, 0, 0
    End Sub
    Ami calmant, J.P

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Déjà Vba n'est pas multi tache, quoi qu'il arrive tu ne pourras pas exécuter le changement des images et la gestion du sont.

    Si tu place autant d'images que l'animation en utilise, tu pourras en agissant sur visible true/false t'épargner le temps de chargement!

    Il existe de outils gratuits pour faire de gif animé qui peuvent gérer le son et avec un WebBroser charger le gif et là plus de problème !

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut Re
    Allez je vous donne. Mon astuce
    Enregistre u' fichier. Txt vide change lui son extention pour wave et au bouton stop lance la. Lecture de celui ci
    Voila
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6

  7. #7
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Septembre 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2010
    Messages : 116
    Par défaut [XL-2013] Synchroniser une image animée et du son dans un UserForm
    Salut à tous et merci pour vos réponses que je n'ai pas encore eu le temps d'analyser complètement.
    - Réponse à la 1° interrogation de Patrick:
    Par 'synchroniser' j'entends 'en même temps' c'est à dire ici, après l'affichage de la 1° image j'aurais souhaité que le son démarre pour avoir concomitance entre 'geste' et 'parole' si je puis dire.
    Ensuite, si souhaité, il est facile d'égaliser les temps en jouant sur le nombre de passages mais cet aspect est secondaire.

    La fonction 'PlaySound' accepte des arguments 'dwFlags' dont l'un d'eux m'a laissé à penser que la routine en cours pouvait ne pas être interrompue par l'exécution du fichier son.
    ---------------------------------------------------------------------------------------
    "The uFlags parameter specifies how the sound is to be played.
    You can combine multiple options by adding their respective values together and passing the sum in the uFlags parameter."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Const SND_SYNC = &H0        ' (Default) Play the sound synchronously. Code execution
                                ' pauses until sound is complete.
     
    Const SND_ASYNC = &H1       ' Play the sound asynchronously. Code execution  ***********
                                ' does not wait for sound to complete.                              ***********
     
    Const SND_NODEFAULT = &H2   ' If the specified sound is not found, do not play
                                ' the default sound (no sound is played).
     
    Const SND_MEMORY = &H4      ' lpszSoundName is a memory file of the sound.
                                ' Not used in VBA/VB6.
     
    Const SND_LOOP = &H8        ' Continue playing sound in a loop until the next
                                ' call to sndPlaySound.
     
    Const SND_NOSTOP = &H10     ' Do not stop playing the current sound before playing
                                ' the specified sound.
    --------------------------------------------------------------------------------------
    Il est probable que je n'ai pas su l'appliquer.

    P.S. Les BTN que j'ai ajoutés sur le UserForm ne sont là que pour la discussion.
    Dans l'application la routine 'son et image' (Sub SeQuence) se declanche seule dès que le gamin a trouvé le bon résultat. Elle fonctionne bien mais images et son sont successifs et non ensembles. C'est tout et seul problème

    Je languis d'essayer la fonction ' mcisendstring' que je ne connaissais pas (Merci à jurassicpork).
    "Je dirais quoi !" dès que possible.

    Je vais réfléchir un peu sur l'astuce de Patrick (fichier texte). A première vue je ne comprends pas bien et là aussi
    "Je dirais quoi !" dès que possible.

    Encore merci à vous tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 07/10/2016, 11h27
  2. [XL-2007] Importer une images en fonction de son nom dans l'exporateur windows
    Par Aziz_Az dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/06/2014, 14h12
  3. Insertion d'une image animée dans une page jsp
    Par marwa_marwa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/03/2013, 15h26
  4. comment afficher une image animée dans un formulaire
    Par dadamovic dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 13/05/2006, 18h59
  5. Afficher une image JPG qui se trouve dans une bdd
    Par Harry dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/02/2004, 10h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo