OVH Cloud OVH Cloud

Comment tester en VBA la fin d'une musique ?

8 réponses
Avatar
Noegor
Bonjour à Tous,
Merci à Michel Pierron pour son dossier "mpdm-mp3" que j'ai enfin réussi à
adapter à mon application.
Il me reste juste un petit problème à solutionner. Je souhaiterais
déclencher une procédure VBA à la fin du morceau musicale mais je n'ai pas
trouvé comment tester la fin de la musique ?
Merci d'avance à celui ou celle qui peut me dépanner car je cherche en vain
depuis déjà quelques jours.
Cordialement
Noegor

8 réponses

Avatar
Modeste
Bonsour® Noegor avec ferveur ;o))) vous nous disiez :

Merci à Michel Pierron
Il me reste juste un petit problème à solutionner. Je souhaiterais
déclencher une procédure VBA à la fin du morceau musicale mais je n'ai pas
trouvé comment tester la fin de la musique ?


Voir la réponse du même Michel sur ce forum le 8/02/2006 23:19
réponse à adapter pour mp3 ...
;o)))


--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
Noegor
Bonsoir Modeste,
J'aimerais bien récupérer la réponse de Michel mais le message n'apparait
plus les messages du 8/02 s'arrêtent à 12h20...Comment faire pour le
retrouver?
J'ai lancé une recherche qui n'a rien donné.
Merci de votre indulgence.
Noégor
"Modeste" a écrit dans le message de
news:
Bonsour® Noegor avec ferveur ;o))) vous nous disiez :

Merci à Michel Pierron
Il me reste juste un petit problème à solutionner. Je souhaiterais
déclencher une procédure VBA à la fin du morceau musicale mais je n'ai
pas


trouvé comment tester la fin de la musique ?


Voir la réponse du même Michel sur ce forum le 8/02/2006 23:19
réponse à adapter pour mp3 ...
;o)))


--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr





Avatar
Modeste
Bonsour® Noegor avec ferveur ;o))) vous nous disiez :

J'aimerais bien récupérer la réponse de Michel mais le message n'apparait
plus ...Comment faire pour le retrouver?


Google est ton ami :
http://minilien.com/?JQYa9U5tuV

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
Noegor
Bon dimanche à Tous
Merci Modeste.
Plus j'avance, plus je m'aperçois de mes lacunes. D'ailleurs je me demandais
où nos experts vont chercher tous ces : "msciSendString Lib "winmm.dll"
Alias..." ? MSDN serait donc une des mines.
Dans la réponse de Michel Pierron qu'il nous faisait, le 4/02/06 à 22h39, à
ma question sur la lecture de fichier mpeg, il conseillait "d'emballer le
composant WindowsMediaPlayer dans une application Internet explorer" et il
donnait le code de Sub WinMediaPlayer.
J'ai tenté de l'utiliser, mais en vain, car je n'arrive pas à transmettre
les paramètres du fichier à lire. En effet je souhaiterais dans un premier
temps rechercher le fichier à traiter, puis faire un call de WinMediaPlayer
en lui transmettant le chemin complet. J'ai essayé ceci mais cela ne marche
pas.

Sub SujetSelectinné()
...
If DiapSujet = "Film" Then
NomDuFilm = Feuil11.Cells(Lig, Col)
ChDir ActiveWorkbook.Path
nf = ActiveWorkbook.Path & "AnniFilms" & NomDuFilm
End If
Film:
Const sFile$ = nf
Call WinMediaPlayer(sfile$)
End Sub

Comment faire ?
Merci
A+
Noégor

"Modeste" a écrit dans le message de
news:
Bonsour® Noegor avec ferveur ;o))) vous nous disiez :

J'aimerais bien récupérer la réponse de Michel mais le message
n'apparait


plus ...Comment faire pour le retrouver?


Google est ton ami :
http://minilien.com/?JQYa9U5tuV

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr





Avatar
Michel Pierron
Bonjour Noegor;
Pourquoi faire compliqué quand on peut faire simple.
Dans ton classeur, place en colonne 1 le chemin complet des fichiers audio
ou vidéo que tu souhaites visualiser.
Menu Affichage / Barres d'outils / Boîte à outils Contrôles
Cliques sur l'équerre, la règle et le crayon pour entrer en mode Création
Clique en bas Autres contrôles et dans la liste déroulante, sélectionne
Windows Media Player
Clique sur la feuille à l'endroit où tu veux placer le contrôle et
dimensionne le à ta guise.
Click droit sur le contrôle ajouté et sélectionne Propriétés:
Tu mets Visible à False
Si tu ne souhaites pas voir les contrôles Play, Pause, Stop, etc. tu définis
la propriété uiMode à none au lieu de full.
Pour finir, tu cliques sur l'équerre, la règle et le crayon pour sortir du
mode Création.

Ensuite, dans le module de ta feuille:
Option Explicit
Private Declare Function SHGetFileInfo& Lib "shell32.dll" _
Alias "SHGetFileInfoA" (ByVal pszPath$, ByVal dwAttributes& _
, psfi As SHFILEINFO, ByVal cbSizeFileInfo&, ByVal uFlags&)
Private Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * 260
szTypeName As String * 80
End Type

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value = "" Then Exit Sub
If Target.Column <> 1 Then Exit Sub
If Len(Dir(CStr(Target.Value))) = 0 Then Exit Sub
If Not GoodFileType(Target.Value) Then Exit Sub
With Me.OLEObjects(1)
.Object.URL = Target.Value
.Visible = True
While .Object.playState <> 1: DoEvents: Wend
.Object.Close
.Visible = False
.Object.URL = ""
' Ici le reste de ton code
' Exemple:
MsgBox "Fini !", 64
End
End With
End Sub

Private Function GoodFileType(ByVal sFile$) As Boolean
Dim SFI As SHFILEINFO, FileType As String
If SHGetFileInfo(sFile, 0&, SFI, Len(SFI), &H400) Then
FileType = SFI.szTypeName
Dim i&: i = InStr(FileType, Chr$(0))
If i Then FileType = Left$(FileType, (i - 1))
End If
GoodFileType = InStr(1, FileType, "audio", 1)
If GoodFileType Then Exit Function
GoodFileType = InStr(1, FileType, "vidéo", 1)
End Function

Voilà, c'est fini; toutes les erreurs sont normalement gérées et seuls les
fichiers de type audio ou vidéo déclencheront l'ouverture de Windows Media
Player.

MP


"Noegor" a écrit dans le message de news:
#
Bon dimanche à Tous
Merci Modeste.
Plus j'avance, plus je m'aperçois de mes lacunes. D'ailleurs je me
demandais

où nos experts vont chercher tous ces : "msciSendString Lib "winmm.dll"
Alias..." ? MSDN serait donc une des mines.
Dans la réponse de Michel Pierron qu'il nous faisait, le 4/02/06 à 22h39,
à

ma question sur la lecture de fichier mpeg, il conseillait "d'emballer le
composant WindowsMediaPlayer dans une application Internet explorer" et il
donnait le code de Sub WinMediaPlayer.
J'ai tenté de l'utiliser, mais en vain, car je n'arrive pas à transmettre
les paramètres du fichier à lire. En effet je souhaiterais dans un premier
temps rechercher le fichier à traiter, puis faire un call de
WinMediaPlayer

en lui transmettant le chemin complet. J'ai essayé ceci mais cela ne
marche

pas.

Sub SujetSelectinné()
...
If DiapSujet = "Film" Then
NomDuFilm = Feuil11.Cells(Lig, Col)
ChDir ActiveWorkbook.Path
nf = ActiveWorkbook.Path & "AnniFilms" & NomDuFilm
End If
Film:
Const sFile$ = nf
Call WinMediaPlayer(sfile$)
End Sub

Comment faire ?
Merci
A+
Noégor

"Modeste" a écrit dans le message de
news:
Bonsour® Noegor avec ferveur ;o))) vous nous disiez :

J'aimerais bien récupérer la réponse de Michel mais le message
n'apparait


plus ...Comment faire pour le retrouver?


Google est ton ami :
http://minilien.com/?JQYa9U5tuV

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr









Avatar
Noegor
Bonjour
Merci Michel pour votre réponse. Maintenant, j'ai de quoi avancer...
A bientôt pour la suite....
cordialement
Noégor
"Michel Pierron" a écrit dans le message de
news:ue$
Bonjour Noegor;
Pourquoi faire compliqué quand on peut faire simple.
Dans ton classeur, place en colonne 1 le chemin complet des fichiers audio
ou vidéo que tu souhaites visualiser.
Menu Affichage / Barres d'outils / Boîte à outils Contrôles
Cliques sur l'équerre, la règle et le crayon pour entrer en mode Création
Clique en bas Autres contrôles et dans la liste déroulante, sélectionne
Windows Media Player
Clique sur la feuille à l'endroit où tu veux placer le contrôle et
dimensionne le à ta guise.
Click droit sur le contrôle ajouté et sélectionne Propriétés:
Tu mets Visible à False
Si tu ne souhaites pas voir les contrôles Play, Pause, Stop, etc. tu
définis

la propriété uiMode à none au lieu de full.
Pour finir, tu cliques sur l'équerre, la règle et le crayon pour sortir du
mode Création.

Ensuite, dans le module de ta feuille:
Option Explicit
Private Declare Function SHGetFileInfo& Lib "shell32.dll" _
Alias "SHGetFileInfoA" (ByVal pszPath$, ByVal dwAttributes& _
, psfi As SHFILEINFO, ByVal cbSizeFileInfo&, ByVal uFlags&)
Private Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * 260
szTypeName As String * 80
End Type

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value = "" Then Exit Sub
If Target.Column <> 1 Then Exit Sub
If Len(Dir(CStr(Target.Value))) = 0 Then Exit Sub
If Not GoodFileType(Target.Value) Then Exit Sub
With Me.OLEObjects(1)
.Object.URL = Target.Value
.Visible = True
While .Object.playState <> 1: DoEvents: Wend
.Object.Close
.Visible = False
.Object.URL = ""
' Ici le reste de ton code
' Exemple:
MsgBox "Fini !", 64
End
End With
End Sub

Private Function GoodFileType(ByVal sFile$) As Boolean
Dim SFI As SHFILEINFO, FileType As String
If SHGetFileInfo(sFile, 0&, SFI, Len(SFI), &H400) Then
FileType = SFI.szTypeName
Dim i&: i = InStr(FileType, Chr$(0))
If i Then FileType = Left$(FileType, (i - 1))
End If
GoodFileType = InStr(1, FileType, "audio", 1)
If GoodFileType Then Exit Function
GoodFileType = InStr(1, FileType, "vidéo", 1)
End Function

Voilà, c'est fini; toutes les erreurs sont normalement gérées et seuls les
fichiers de type audio ou vidéo déclencheront l'ouverture de Windows Media
Player.

MP


"Noegor" a écrit dans le message de news:
#
Bon dimanche à Tous
Merci Modeste.
Plus j'avance, plus je m'aperçois de mes lacunes. D'ailleurs je me
demandais

où nos experts vont chercher tous ces : "msciSendString Lib "winmm.dll"
Alias..." ? MSDN serait donc une des mines.
Dans la réponse de Michel Pierron qu'il nous faisait, le 4/02/06 à
22h39,


à
ma question sur la lecture de fichier mpeg, il conseillait "d'emballer
le


composant WindowsMediaPlayer dans une application Internet explorer" et
il


donnait le code de Sub WinMediaPlayer.
J'ai tenté de l'utiliser, mais en vain, car je n'arrive pas à
transmettre


les paramètres du fichier à lire. En effet je souhaiterais dans un
premier


temps rechercher le fichier à traiter, puis faire un call de
WinMediaPlayer

en lui transmettant le chemin complet. J'ai essayé ceci mais cela ne
marche

pas.

Sub SujetSelectinné()
...
If DiapSujet = "Film" Then
NomDuFilm = Feuil11.Cells(Lig, Col)
ChDir ActiveWorkbook.Path
nf = ActiveWorkbook.Path & "AnniFilms" & NomDuFilm
End If
Film:
Const sFile$ = nf
Call WinMediaPlayer(sfile$)
End Sub

Comment faire ?
Merci
A+
Noégor

"Modeste" a écrit dans le message de
news:
Bonsour® Noegor avec ferveur ;o))) vous nous disiez :

J'aimerais bien récupérer la réponse de Michel mais le message
n'apparait


plus ...Comment faire pour le retrouver?


Google est ton ami :
http://minilien.com/?JQYa9U5tuV

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr













Avatar
Noegor
Bonsoir,
Afin de comprendre j'essaie le code mais j'ai une erreur de compil :
"Utilisation incorrecte du mot clé Me".
et je ne vois pas comment corriger car je ne connais rien aux "mots clés".
Merci de m'aider à progresser dans la connaissance du VBA.
A bientôt.
Noégor
"Michel Pierron" a écrit dans le message de
news:ue$
Bonjour Noegor;
Pourquoi faire compliqué quand on peut faire simple.
Dans ton classeur, place en colonne 1 le chemin complet des fichiers audio
ou vidéo que tu souhaites visualiser.
Menu Affichage / Barres d'outils / Boîte à outils Contrôles
Cliques sur l'équerre, la règle et le crayon pour entrer en mode Création
Clique en bas Autres contrôles et dans la liste déroulante, sélectionne
Windows Media Player
Clique sur la feuille à l'endroit où tu veux placer le contrôle et
dimensionne le à ta guise.
Click droit sur le contrôle ajouté et sélectionne Propriétés:
Tu mets Visible à False
Si tu ne souhaites pas voir les contrôles Play, Pause, Stop, etc. tu
définis

la propriété uiMode à none au lieu de full.
Pour finir, tu cliques sur l'équerre, la règle et le crayon pour sortir du
mode Création.

Ensuite, dans le module de ta feuille:
Option Explicit
Private Declare Function SHGetFileInfo& Lib "shell32.dll" _
Alias "SHGetFileInfoA" (ByVal pszPath$, ByVal dwAttributes& _
, psfi As SHFILEINFO, ByVal cbSizeFileInfo&, ByVal uFlags&)
Private Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * 260
szTypeName As String * 80
End Type

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value = "" Then Exit Sub
If Target.Column <> 1 Then Exit Sub
If Len(Dir(CStr(Target.Value))) = 0 Then Exit Sub
If Not GoodFileType(Target.Value) Then Exit Sub
With Me.OLEObjects(1)
.Object.URL = Target.Value
.Visible = True
While .Object.playState <> 1: DoEvents: Wend
.Object.Close
.Visible = False
.Object.URL = ""
' Ici le reste de ton code
' Exemple:
MsgBox "Fini !", 64
End
End With
End Sub

Private Function GoodFileType(ByVal sFile$) As Boolean
Dim SFI As SHFILEINFO, FileType As String
If SHGetFileInfo(sFile, 0&, SFI, Len(SFI), &H400) Then
FileType = SFI.szTypeName
Dim i&: i = InStr(FileType, Chr$(0))
If i Then FileType = Left$(FileType, (i - 1))
End If
GoodFileType = InStr(1, FileType, "audio", 1)
If GoodFileType Then Exit Function
GoodFileType = InStr(1, FileType, "vidéo", 1)
End Function

Voilà, c'est fini; toutes les erreurs sont normalement gérées et seuls les
fichiers de type audio ou vidéo déclencheront l'ouverture de Windows Media
Player.

MP


"Noegor" a écrit dans le message de news:
#
Bon dimanche à Tous
Merci Modeste.
Plus j'avance, plus je m'aperçois de mes lacunes. D'ailleurs je me
demandais

où nos experts vont chercher tous ces : "msciSendString Lib "winmm.dll"
Alias..." ? MSDN serait donc une des mines.
Dans la réponse de Michel Pierron qu'il nous faisait, le 4/02/06 à
22h39,


à
ma question sur la lecture de fichier mpeg, il conseillait "d'emballer
le


composant WindowsMediaPlayer dans une application Internet explorer" et
il


donnait le code de Sub WinMediaPlayer.
J'ai tenté de l'utiliser, mais en vain, car je n'arrive pas à
transmettre


les paramètres du fichier à lire. En effet je souhaiterais dans un
premier


temps rechercher le fichier à traiter, puis faire un call de
WinMediaPlayer

en lui transmettant le chemin complet. J'ai essayé ceci mais cela ne
marche

pas.

Sub SujetSelectinné()
...
If DiapSujet = "Film" Then
NomDuFilm = Feuil11.Cells(Lig, Col)
ChDir ActiveWorkbook.Path
nf = ActiveWorkbook.Path & "AnniFilms" & NomDuFilm
End If
Film:
Const sFile$ = nf
Call WinMediaPlayer(sfile$)
End Sub

Comment faire ?
Merci
A+
Noégor

"Modeste" a écrit dans le message de
news:
Bonsour® Noegor avec ferveur ;o))) vous nous disiez :

J'aimerais bien récupérer la réponse de Michel mais le message
n'apparait


plus ...Comment faire pour le retrouver?


Google est ton ami :
http://minilien.com/?JQYa9U5tuV

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr













Avatar
Michel Pierron
Bonsoir Noegor;
Je suppose que tu n'as pas respecté ce qui t'était indiqué; il faut placer
le code dans le module de classe de la feuille (par exemple: Feuil1) et non
pas dans un module standard.

MP

"Noegor" a écrit dans le message de news:
#
Bonsoir,
Afin de comprendre j'essaie le code mais j'ai une erreur de compil :
"Utilisation incorrecte du mot clé Me".
et je ne vois pas comment corriger car je ne connais rien aux "mots clés".
Merci de m'aider à progresser dans la connaissance du VBA.
A bientôt.
Noégor
"Michel Pierron" a écrit dans le message de
news:ue$
Bonjour Noegor;
Pourquoi faire compliqué quand on peut faire simple.
Dans ton classeur, place en colonne 1 le chemin complet des fichiers
audio


ou vidéo que tu souhaites visualiser.
Menu Affichage / Barres d'outils / Boîte à outils Contrôles
Cliques sur l'équerre, la règle et le crayon pour entrer en mode
Création


Clique en bas Autres contrôles et dans la liste déroulante, sélectionne
Windows Media Player
Clique sur la feuille à l'endroit où tu veux placer le contrôle et
dimensionne le à ta guise.
Click droit sur le contrôle ajouté et sélectionne Propriétés:
Tu mets Visible à False
Si tu ne souhaites pas voir les contrôles Play, Pause, Stop, etc. tu
définis

la propriété uiMode à none au lieu de full.
Pour finir, tu cliques sur l'équerre, la règle et le crayon pour sortir
du


mode Création.

Ensuite, dans le module de ta feuille:
Option Explicit
Private Declare Function SHGetFileInfo& Lib "shell32.dll" _
Alias "SHGetFileInfoA" (ByVal pszPath$, ByVal dwAttributes& _
, psfi As SHFILEINFO, ByVal cbSizeFileInfo&, ByVal uFlags&)
Private Type SHFILEINFO
hIcon As Long
iIcon As Long
dwAttributes As Long
szDisplayName As String * 260
szTypeName As String * 80
End Type

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Value = "" Then Exit Sub
If Target.Column <> 1 Then Exit Sub
If Len(Dir(CStr(Target.Value))) = 0 Then Exit Sub
If Not GoodFileType(Target.Value) Then Exit Sub
With Me.OLEObjects(1)
.Object.URL = Target.Value
.Visible = True
While .Object.playState <> 1: DoEvents: Wend
.Object.Close
.Visible = False
.Object.URL = ""
' Ici le reste de ton code
' Exemple:
MsgBox "Fini !", 64
End
End With
End Sub

Private Function GoodFileType(ByVal sFile$) As Boolean
Dim SFI As SHFILEINFO, FileType As String
If SHGetFileInfo(sFile, 0&, SFI, Len(SFI), &H400) Then
FileType = SFI.szTypeName
Dim i&: i = InStr(FileType, Chr$(0))
If i Then FileType = Left$(FileType, (i - 1))
End If
GoodFileType = InStr(1, FileType, "audio", 1)
If GoodFileType Then Exit Function
GoodFileType = InStr(1, FileType, "vidéo", 1)
End Function

Voilà, c'est fini; toutes les erreurs sont normalement gérées et seuls
les


fichiers de type audio ou vidéo déclencheront l'ouverture de Windows
Media


Player.

MP


"Noegor" a écrit dans le message de news:
#
Bon dimanche à Tous
Merci Modeste.
Plus j'avance, plus je m'aperçois de mes lacunes. D'ailleurs je me
demandais

où nos experts vont chercher tous ces : "msciSendString Lib
"winmm.dll"



Alias..." ? MSDN serait donc une des mines.
Dans la réponse de Michel Pierron qu'il nous faisait, le 4/02/06 à
22h39,


à
ma question sur la lecture de fichier mpeg, il conseillait "d'emballer
le


composant WindowsMediaPlayer dans une application Internet explorer"
et



il
donnait le code de Sub WinMediaPlayer.
J'ai tenté de l'utiliser, mais en vain, car je n'arrive pas à
transmettre


les paramètres du fichier à lire. En effet je souhaiterais dans un
premier


temps rechercher le fichier à traiter, puis faire un call de
WinMediaPlayer

en lui transmettant le chemin complet. J'ai essayé ceci mais cela ne
marche

pas.

Sub SujetSelectinné()
...
If DiapSujet = "Film" Then
NomDuFilm = Feuil11.Cells(Lig, Col)
ChDir ActiveWorkbook.Path
nf = ActiveWorkbook.Path & "AnniFilms" & NomDuFilm
End If
Film:
Const sFile$ = nf
Call WinMediaPlayer(sfile$)
End Sub

Comment faire ?
Merci
A+
Noégor

"Modeste" a écrit dans le message de
news:
Bonsour® Noegor avec ferveur ;o))) vous nous disiez :

J'aimerais bien récupérer la réponse de Michel mais le message
n'apparait


plus ...Comment faire pour le retrouver?


Google est ton ami :
http://minilien.com/?JQYa9U5tuV

--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr