Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA et le son

8 réponses
Avatar
LydieT
Bonjour.

Je voudrais faire du son avec VBA. Il me semble qu'il y a une commande
SOUND je crois, mais je ne trouve pas la syntaxe...

Merci.

8 réponses

Avatar
Tatanka
Bonjour,

Beep te convient-il ?
Par exemple :
For i = 1 To 500
Beep
Next i

Serge


"LydieT" a écrit dans le message de news:
Bonjour.

Je voudrais faire du son avec VBA. Il me semble qu'il y a une commande
SOUND je crois, mais je ne trouve pas la syntaxe...

Merci.
Avatar
LydieT
"Tatanka" wrote in
news:i4mmc1$eqa$:

Bonjour,

Beep te convient-il ?
Par exemple :
For i = 1 To 500
Beep
Next i

Serge


"LydieT" a écrit dans le message de news:

Bonjour.

Je voudrais faire du son avec VBA. Il me semble qu'il y a une
commande SOUND je crois, mais je ne trouve pas la syntaxe...

Merci.








NON, il y a une commande où on génère un son , une fréquence et une durée
je crois que c'est sound quelque chose...
Avatar
michdenis
Bonjour,

Essaie comme ceci :

Dans un module standard :

Assure-toi que ce fichier existe vraiment dans ce répertoire :
"C:WindowsMediaTada.WAV"

Déclaration de l'Api dans le haut du module
'--------------------------
Declare Function PlaySound Lib "Winmm" _
(ByVal pszSound As String, ByVal hmod As Long, _
ByVal fdwSound As Long) As Long
'--------------------------
Sub Test()
PlaySound "C:WindowsMediaTada.WAV", 0, 0
End Sub
'--------------------------


--
MichD
--------------------------------------------


"LydieT" a écrit dans le message de groupe de discussion :

Bonjour.

Je voudrais faire du son avec VBA. Il me semble qu'il y a une commande
SOUND je crois, mais je ne trouve pas la syntaxe...

Merci.
Avatar
LydieT
"michdenis" wrote in news:i4mn0q$fqu$1
@speranza.aioe.org:

Bonjour,

Essaie comme ceci :

Dans un module standard :

Assure-toi que ce fichier existe vraiment dans ce répertoire :
"C:WindowsMediaTada.WAV"

Déclaration de l'Api dans le haut du module
'--------------------------
Declare Function PlaySound Lib "Winmm" _
(ByVal pszSound As String, ByVal hmod As Long, _
ByVal fdwSound As Long) As Long
'--------------------------
Sub Test()
PlaySound "C:WindowsMediaTada.WAV", 0, 0
End Sub
'--------------------------

il y a une commande qui marchait dans la basic il y a 20ans , qui


marche dans VBA je l'ai déjà faite mais je ne me souviens plus de la
commande précise ca doit être du genre sound(x, y) où x est la fréquence
du son et y la durée.
je ne veux ni du beep et du wav
Avatar
michdenis
Une dernière suggestion...désolé, je n'ai plus le nom de la procédure suivante :

Un marseillais peut-être ?



Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)

'*************************
Private Declare Function MidiOutClose Lib "winmm.dll" _
Alias "midiOutClose" (ByVal hMidiOut As Long) As Long
'-------------------------------
Private Declare Function MidiOutOpen Lib "winmm.dll" _
Alias "midiOutOpen" (lphMidiOut As _
Long, ByVal uDeviceID As _
Long, ByVal dwCallback As _
Long, ByVal dwInstance As _
Long, ByVal dwFlags As Long) As Long
'-------------------------------
Private Declare Function MidiOutShortMsg Lib "winmm.dll" _
Alias "midiOutShortMsg" (ByVal hMidiOut As _
Long, ByVal dwMsg As Long) As Long
'...........................................................
Sub mélodie_pour_bébé()
notees = 58586158585861# & _
58586166656363# & _
61# & _
56585956565859# & _
56565965636165# & _
66545466635961# & _
58545459616361# & _
54546663596158# & _
54545961595856# & _
54
numéro = 0
For i = 1 To Len(notees) Step 2
y = Mid(notees, i, 2)
numéro = numéro + 1
numéros_temps = 446744674464488# & _
446744674444779# & _
4484478447779# & _
448447844644679#
x = Mid(numéros_temps, numéro, 1) * 100
Application.EnableCancelKey = xlErrorHandler
On Error GoTo fin
MidiOutClose hMidiOut
MidiOutOpen hMidiOut, 0, 0, 0, 0
MidiOutShortMsg hMidiOut, RGB(192, 11, 127)
lanote = 12 + CInt(y)
note = RGB(144, lanote, 127)
MidiOutShortMsg hMidiOut, note
Sleep (x)
MidiOutClose hMidiOut
Next
fin:
MidiOutClose hMidiOut
End
End Sub

--
MichD
--------------------------------------------


"LydieT" a écrit dans le message de groupe de discussion :

"michdenis" wrote in news:i4mn0q$fqu$1
@speranza.aioe.org:

Bonjour,

Essaie comme ceci :

Dans un module standard :

Assure-toi que ce fichier existe vraiment dans ce répertoire :
"C:WindowsMediaTada.WAV"

Déclaration de l'Api dans le haut du module
'--------------------------
Declare Function PlaySound Lib "Winmm" _
(ByVal pszSound As String, ByVal hmod As Long, _
ByVal fdwSound As Long) As Long
'--------------------------
Sub Test()
PlaySound "C:WindowsMediaTada.WAV", 0, 0
End Sub
'--------------------------

il y a une commande qui marchait dans la basic il y a 20ans , qui


marche dans VBA je l'ai déjà faite mais je ne me souviens plus de la
commande précise ca doit être du genre sound(x, y) où x est la fréquence
du son et y la durée.
je ne veux ni du beep et du wav
Avatar
Maude Este
Bonsour®

"LydieT" a écrit
NON, il y a une commande où on génère un son , une fréquence et une durée
je crois que c'est sound quelque chose...



;o)))
non il s'agit d'une API
Cette fonction produit un son simple à travers le haut-parleur.
dwFreq est la fréquence en Hertz du son à générer.
dwDuration est la durée du son.
Attention, la fonction est synchrone, elle ne rend pas la main tant que le son
n'est pas fini.

'--------------------------
Declare Function Beep Lib "kernel32" Alias "Beep" ( _
ByVal dwFreq As Long, _
ByVal dwDuration As Long) As Long

sub test()
for i = 1 to 10
beep i*100, 2000
next
end sub
'-------------------------
Avatar
LydieT
"Maude Este" wrote in
news:i4mprv$ke5$:

Bonsour®

"LydieT" a écrit
NON, il y a une commande où on génère un son , une fréquence et une
durée je crois que c'est sound quelque chose...



;o)))
non il s'agit d'une API
Cette fonction produit un son simple à travers le haut-parleur.
dwFreq est la fréquence en Hertz du son à générer.
dwDuration est la durée du son.
Attention, la fonction est synchrone, elle ne rend pas la main tant
que le son n'est pas fini.

'--------------------------
Declare Function Beep Lib "kernel32" Alias "Beep" ( _
ByVal dwFreq As Long, _
ByVal dwDuration As Long) As Long

sub test()
for i = 1 to 10
beep i*100, 2000
next
end sub
'-------------------------




ok je vais essayer merci
Avatar
LydieT
"michdenis" wrote in
news:i4moof$iju$:

Une dernière suggestion...désolé, je n'ai plus le nom de la procédure
suivante :

Un marseillais peut-être ?



Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)

'*************************
Private Declare Function MidiOutClose Lib "winmm.dll" _
Alias "midiOutClose" (ByVal hMidiOut As Long) As Long
'-------------------------------
Private Declare Function MidiOutOpen Lib "winmm.dll" _
Alias "midiOutOpen" (lphMidiOut As _
Long, ByVal uDeviceID As _
Long, ByVal dwCallback As _
Long, ByVal dwInstance As _
Long, ByVal dwFlags As Long) As Long
'-------------------------------
Private Declare Function MidiOutShortMsg Lib "winmm.dll" _
Alias "midiOutShortMsg" (ByVal hMidiOut As _
Long, ByVal dwMsg As Long) As Long
'...........................................................
Sub mélodie_pour_bébé()
notees = 58586158585861# & _
58586166656363# & _
61# & _
56585956565859# & _
56565965636165# & _
66545466635961# & _
58545459616361# & _
54546663596158# & _
54545961595856# & _
54
numéro = 0
For i = 1 To Len(notees) Step 2
y = Mid(notees, i, 2)
numéro = numéro + 1
numéros_temps = 446744674464488# & _
446744674444779# & _
4484478447779# & _
448447844644679#
x = Mid(numéros_temps, numéro, 1) * 100
Application.EnableCancelKey = xlErrorHandler
On Error GoTo fin
MidiOutClose hMidiOut
MidiOutOpen hMidiOut, 0, 0, 0, 0
MidiOutShortMsg hMidiOut, RGB(192, 11, 127)
lanote = 12 + CInt(y)
note = RGB(144, lanote, 127)
MidiOutShortMsg hMidiOut, note
Sleep (x)
MidiOutClose hMidiOut
Next
fin:
MidiOutClose hMidiOut
End
End Sub



merci je vais essayer..