XL 2019 [Résolu] Windows Media Player.exe dans userform

Bearn 64

XLDnaute Occasionnel
Bonsoir le forum,

Dans un fichier excel mettre Windows Media Player.exe pour jouer le fichier roue.mp3

Je n'arrive pas a declancher la lecture du fivhier MP3 quand je clique sur le bouton pour lancer la recherche d'un numero.

Le programme est un loto pour association de seniors.

merci de votre aide.
 

Pièces jointes

  • Loto.zip
    186 KB · Affichages: 14

sousou

XLDnaute Barbatruc
Bonjour
Traité dans un vieux post de cette manière
remplace ta procédure jouer par ceci.
Function Jouer()
son = ThisWorkbook.Path & "\roue.mp3"
code = code & "fichier= Wscript.ScriptFullName" & vbCrLf
code = code & " Set wmp = CreateObject(""WMPlayer.OCX"")" & vbCrLf
code = code & "wmp.settings.autoStart = True" & vbCrLf
code = code & "wmp.settings.volume = 100" & vbCrLf
code = code & "wmp.URL = """ & son & """" & vbCrLf
code = code & "While wmp.Playstate <> 1" & vbCrLf
code = code & "WScript.Sleep 1" & vbCrLf
code = code & "Wend" & vbCrLf
code = code & "Set fso = CreateObject(""Scripting.FileSystemObject"")" & vbCrLf
code = code & "fso.DeleteFile (fichier)" & vbCrLf
code = code & "Set fso = Nothing" & vbCrLf
fichier = ThisWorkbook.Path & "\jouer le son.vbs"
x = FreeFile
Open fichier For Output As #x
Print #x, code
Close #x
Set w = CreateObject("Wscript.shell")
w.Run """" & fichier & """"
End Function
 

patricktoulon

XLDnaute Barbatruc
re
Bonjour
tient ça me rappelle quelque chose ça ;)
après si tu veux l'interface dans le userform sans avoir le message de sécurité
petite astuce dans un webbrowser certainement sur (2019) après l'avoir débloqué dand le registre
le pdf en francais explique comment débloquer le webbrowser si tu ne l'a pas déjà fait

le media player dans le userform

ça marche pour la musique ou les video lisible par WMP
demo.gif


en ce qui concerne l'OCX(la proposition de @sousou)
si je ne me trompe pas on est plus obligé de passer par un vbs
VB:
Dim player As Object
 
Sub test()
playMP3 "H:\mes musique\Amy Mc Donald\This is the Life - Amy Mac Donald\02 - This is the life2.mp3"
End Sub

Sub playMP3(chemin)
Set player = CreateObject("new:WMPlayer.OCX.7")
player.URL = chemin
End Sub
 
Sub playerStop()
player.Controls.Stop
End Sub
 

Pièces jointes

  • V frecnch probleme avec certains controls Activx inséeré dans une feuille excel2013 (webbrowser).pdf
    69.3 KB · Affichages: 12

Bearn 64

XLDnaute Occasionnel
re
tiens j'ai retrouvé ça dans mon bric a brac je l'ai un peu nettoyé de mes besoins perso et je t'ai fait un mini player mp3/wave avec play pause stop etc...
;)
Bonjour patricktoulon, sousou, le forum,

Merci pour les posts 3 et 4 mais je ne veux pas voir le player mais jouer un son pendant le defilement des numeros pour un loto.

La proposition de sousou est bonne pour mon cas.

Merci a vous deus je teste.
 

patricktoulon

XLDnaute Barbatruc
Bonjour Lionel
c'est un lecteur son le mini pas un lecteur video
le conteneur mp4 est utilisé pour les videos normalement bien que rien n’empêche que ce soit un fichier musicale
ajoute l'extension ";*.mp4" 2 fois là ou il y a les autre dans le getopenfilname
 

patricktoulon

XLDnaute Barbatruc
re
ça n'a rien a voir avec la taille de l’écran moi j'ai un 107cm soit un 42 pouces
on a pas le meme dpi ni resolution ni la taille d'ecran
je pars du principe que un userform tu le size a 800X 650 maxi (taille pour les 15 pouces de base)
et tu te fait un module ou une fonction de resize a l'ecran automatique
voilà comment il faut faire
on fait pas des userform de 3 kilomètres carré
 

Bearn 64

XLDnaute Occasionnel
re
ça n'a rien a voir avec la taille de l’écran moi j'ai un 107cm soit un 42 pouces
on a pas le meme dpi ni resolution ni la taille d'ecran
je pars du principe que un userform tu le size a 800X 650 maxi (taille pour les 15 pouces de base)
et tu te fait un module ou une fonction de resize a l'ecran automatique
voilà comment il faut faire
on fait pas des userform de 3 kilomètres carré
Re,

Certe mais je ne suis pas aussi cale pour faire et donc je fait pour mon matériel et comme je suis le seul dans l'assocation a gerer.....
Apres les infos sont les bien venues pour faire les manips citées plus avant.

Alors je fait ce que je peux.
 

patricktoulon

XLDnaute Barbatruc
bon dans ta version 2 on est bon il te manque plus que mon module resize pour avoir un fullscreen sans masquer un seul control
tiens avec mon module resize proportion
comme ça ton userform ira partout en fullscreen
;)
voila comment ton user form est
1641661823695.png

et voilà comment il est en plein ecran on voit meme pas la barre de tache
1641661789199.png
 

Pièces jointes

  • loto_plus_petit.xlsm
    38.9 KB · Affichages: 12
Dernière édition:

patricktoulon

XLDnaute Barbatruc
je n'avais pas mis les commentaires dans le module
VB:
'***********************************************************************
'module de resize userform proportionnelement a l'ecran en full screen
'auteur: patricktoulon
'version 2.6
'utilisation api en macro4(compatible All excel version
'on appelle ""dimensions me,1""  dans l'event  activate de l'userform
'on appelle ""dimensions me,2""  dans l'event  resize de l'userform
' si on veut les 3 boutons minimiser/reduire,fullscreen on appelle "treeButtonCaption"" dans le activate en premier
'***********************************************************************

Dim OldW#, OldH#
Sub treeButtonCaption()
    Dim hwnd&
    hwnd = ExecuteExcel4Macro("CALL(""user32"",""GetActiveWindow"",""JCC"")")         'api GetActiveWindow
    ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & hwnd & ", " & -16 & ", " & &H94CF0080 & ")")     'api SetWindowLongA

End Sub
Sub FullScreenU()
    Dim hwnd&
    hwnd = ExecuteExcel4Macro("CALL(""user32"",""GetActiveWindow"",""JCC"")")         'api GetActiveWindow
    ExecuteExcel4Macro ("CALL(""user32"",""ShowWindow"",""JJJ"",""" & hwnd & """,""" & 3 & """)")    ' application du mode
End Sub
Sub Dimensions(USF As Object, Mode&)
    Dim Ctrl, Fz&, cw$, NW#, NH#, dimo, TW, Z&
    ecart = ((USF.Width - USF.InsideWidth) * 2)
    If Mode = 1 Then
        OldW = USF.Width + ecart: OldH = USF.Height + ecart
        For Each Ctrl In USF.Controls
            With Ctrl
                .Tag = CDec(.Left) & "|" & .Top & "|" & .Width & "|" & CDec(.Height)
                On Error Resume Next
                Fz = .Font.Size
                If Not Err Then .Tag = .Tag & "|" & Fz Else .Tag = .Tag & "|"
                Err.Clear

                If TypeName(Ctrl) = "ListBox" Then
                    cw = Ctrl.ColumnWidths: If cw = "" Then cw = Application.Rept("70;", Ctrl.ColumnCount + 1)
                    .Tag = .Tag & "|" & cw
                End If
            End With
        Next
        On Error GoTo 0

    ElseIf Mode = 2 Then
        For Each Ctrl In USF.Controls
            NW = CDec(USF.Width / OldW): NH = CDec(USF.Height / OldH)
            dimo = Split(Ctrl.Tag, "|")
            Ctrl.Move CDec(dimo(0)) * NW, dimo(1) * NH, CDec(dimo(2)) * NW, CDec(dimo(3)) * NH
            On Error Resume Next
            Ctrl.Font.Size = Round(dimo(4) * Application.Min(NW, NH), 0)
            Err.Clear
            DoEvents
            If TypeName(Ctrl) = "ListBox" Then
                TW = Split(dimo(5), ";")
                For I = 0 To UBound(TW): TW(I) = Val(TW(I)) * NW: Next
                Ctrl.ColumnWidths = Join(TW)
            End If

        Next
        On Error GoTo 0

    ElseIf Mode = 3 Then
        NW = USF.Width / OldW: NH = USF.Height / OldH
        Z = Application.Min(400, 100 * Application.Min(NW, NH))
        USF.Zoom = Z
    End If
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16