Bonjour,
J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une
cellule
prend une certaine valeur mais cela ne marche que si le controle du volume
de
windows n'est pas muet. Est-il possible de l'activer via VBA? Merci
d'avance
Sylviane
Bonjour,
J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une
cellule
prend une certaine valeur mais cela ne marche que si le controle du volume
de
windows n'est pas muet. Est-il possible de l'activer via VBA? Merci
d'avance
Sylviane
Bonjour,
J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une
cellule
prend une certaine valeur mais cela ne marche que si le controle du volume
de
windows n'est pas muet. Est-il possible de l'activer via VBA? Merci
d'avance
Sylviane
Bonjour,
J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une
cellule
prend une certaine valeur mais cela ne marche que si le controle du volume
de
windows n'est pas muet. Est-il possible de l'activer via VBA? Merci
d'avance
Sylviane
Bonjour,
J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une
cellule
prend une certaine valeur mais cela ne marche que si le controle du volume
de
windows n'est pas muet. Est-il possible de l'activer via VBA? Merci
d'avance
Sylviane
Bonjour,
J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une
cellule
prend une certaine valeur mais cela ne marche que si le controle du volume
de
windows n'est pas muet. Est-il possible de l'activer via VBA? Merci
d'avance
Sylviane
Bonjour,
J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une cellule
prend une certaine valeur mais cela ne marche que si le controle du volume de
windows n'est pas muet. Est-il possible de l'activer via VBA? Merci d'avance
Sylviane
Bonjour,
J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une cellule
prend une certaine valeur mais cela ne marche que si le controle du volume de
windows n'est pas muet. Est-il possible de l'activer via VBA? Merci d'avance
Sylviane
Bonjour,
J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une cellule
prend une certaine valeur mais cela ne marche que si le controle du volume de
windows n'est pas muet. Est-il possible de l'activer via VBA? Merci d'avance
Sylviane
Bonjour Sylvianne,
Sylviane a écrit :
> Bonjour,
>
> J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une cellule
> prend une certaine valeur mais cela ne marche que si le controle du volume de
> windows n'est pas muet. Est-il possible de l'activer via VBA? Merci d'avance
> Sylviane
Pour activer / désactiver la case à cocher 'Tous muets' :
Option Explicit
Private Const MMSYSERR_NOERROR = 0
Private Const MAXPNAMELEN = 32
Private Const MIXER_LONG_NAME_CHARS = 64
Private Const MIXER_SHORT_NAME_CHARS = 16
Private Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
Private Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
Private Const MIXER_SETCONTROLDETAILSF_VALUE = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = &H4
Private Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
Private Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&
Private Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000
Private Const MIXERCONTROL_CONTROLTYPE_BOOLEAN =
MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or
MIXERCONTROL_CT_UNITS_BOOLEAN
Private Const MIXERCONTROL_CONTROLTYPE_MUTE =
MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2
Private Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
Private Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
Private Const MIXERCONTROL_CONTROLTYPE_FADER =
MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED
Private Const MIXERCONTROL_CONTROLTYPE_VOLUME =
MIXERCONTROL_CONTROLTYPE_FADER + 1
Private Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, _
ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As
Long, _
ByVal fdwOpen As Long) As Long
Private Declare Function mixerGetLineInfo Lib "winmm.dll" Alias _
"mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, _
ByVal fdwInfo As Long) As Long
Private Declare Function mixerGetLineControls Lib "winmm.dll" Alias _
"mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As
MIXERLINECONTROLS, _
ByVal fdwControls As Long) As Long
Private Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal
hmxobj _
As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As
Long
Private Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long)
As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal length As Long)
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long)
As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long)
As Long
Private Type MIXERCONTROL
cbStruct As Long
dwControlID As Long
dwControlType As Long
fdwControl As Long
cMultipleItems As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
lMinimum As Long
lMaximum As Long
Reserved(10) As Long
End Type
Private Type MIXERCONTROLDETAILS
cbStruct As Long
dwControlID As Long
cChannels As Long
item As Long
cbDetails As Long
paDetails As Long
End Type
Private Type MIXERCONTROLDETAILS_UNSIGNED
dwValue As Long
End Type
Private Type MIXERLINE
cbStruct As Long
dwDestination As Long
dwSource As Long
dwLineID As Long
fdwLine As Long
dwUser As Long
dwComponentType As Long
cChannels As Long
cConnections As Long
cControls As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
dwType As Long
dwDeviceID As Long
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
End Type
Private Type MIXERLINECONTROLS
cbStruct As Long
dwLineID As Long
dwControl As Long
cControls As Long
cbmxctrl As Long
pamxctrl As Long
End Type
Function SetMasterMuteValue(MuteValue As Long) As Boolean
Dim hmx As Long
Dim uMixerLine As MIXERLINE
Dim uMixerControl As MIXERCONTROL
Dim uMixerLineControls As MIXERLINECONTROLS
Dim mxcd As MIXERCONTROLDETAILS
Dim mxcdu As MIXERCONTROLDETAILS_UNSIGNED
Dim lResult As Long
Dim hMem As Long
lResult = mixerOpen(hmx, 0, 0, 0, 0)
If lResult = MMSYSERR_NOERROR Then
uMixerLine.cbStruct = Len(uMixerLine)
uMixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
lResult = mixerGetLineInfo(hmx, uMixerLine,
MIXER_GETLINEINFOF_COMPONENTTYPE)
If lResult = MMSYSERR_NOERROR Then
uMixerLineControls.cbStruct = Len(uMixerLineControls)
uMixerLineControls.dwLineID = uMixerLine.dwLineID
uMixerLineControls.dwControl = MIXERCONTROL_CONTROLTYPE_MUTE
uMixerLineControls.cControls = 1
uMixerLineControls.cbmxctrl = Len(uMixerControl)
hMem = GlobalAlloc(&H40, Len(uMixerControl))
uMixerLineControls.pamxctrl = GlobalLock(hMem)
uMixerControl.cbStruct = Len(uMixerControl)
lResult = mixerGetLineControls(hmx, uMixerLineControls,
MIXER_GETLINECONTROLSF_ONEBYTYPE)
If lResult = MMSYSERR_NOERROR Then
CopyMemory uMixerControl, ByVal uMixerLineControls.pamxctrl,
Len(uMixerControl)
GlobalFree hMem
hMem = 0
mxcd.item = 0
mxcd.dwControlID = uMixerControl.dwControlID
mxcd.cbStruct = Len(mxcd)
mxcd.cbDetails = Len(mxcdu)
hMem = GlobalAlloc(&H40, Len(mxcdu))
mxcd.paDetails = GlobalLock(hMem)
mxcd.cChannels = 1
mxcdu.dwValue = MuteValue
CopyMemory ByVal mxcd.paDetails, mxcdu, Len(mxcdu)
lResult = mixerSetControlDetails(hmx, mxcd,
MIXER_SETCONTROLDETAILSF_VALUE)
GlobalFree hMem
hMem = 0
If lResult = MMSYSERR_NOERROR Then
mixerClose hmx
SetMasterMuteValue = True
Exit Function
End If
End If
End If
End If
If hmx <> 0 Then mixerClose hmx
If hMem Then GlobalFree hMem
SetMasterMuteValue = False
End Function
Private Sub Command1_Click()
SetMasterMuteValue 1 ' Tous muets = vrai
End Sub
Private Sub Command2_Click()
SetMasterMuteValue 0 ' Tous muets = faux
End Sub
--
Cordialement,
Jacques.
Bonjour Sylvianne,
Sylviane a écrit :
> Bonjour,
>
> J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une cellule
> prend une certaine valeur mais cela ne marche que si le controle du volume de
> windows n'est pas muet. Est-il possible de l'activer via VBA? Merci d'avance
> Sylviane
Pour activer / désactiver la case à cocher 'Tous muets' :
Option Explicit
Private Const MMSYSERR_NOERROR = 0
Private Const MAXPNAMELEN = 32
Private Const MIXER_LONG_NAME_CHARS = 64
Private Const MIXER_SHORT_NAME_CHARS = 16
Private Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
Private Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
Private Const MIXER_SETCONTROLDETAILSF_VALUE = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = &H4
Private Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
Private Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&
Private Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000
Private Const MIXERCONTROL_CONTROLTYPE_BOOLEAN =
MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or
MIXERCONTROL_CT_UNITS_BOOLEAN
Private Const MIXERCONTROL_CONTROLTYPE_MUTE =
MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2
Private Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
Private Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
Private Const MIXERCONTROL_CONTROLTYPE_FADER =
MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED
Private Const MIXERCONTROL_CONTROLTYPE_VOLUME =
MIXERCONTROL_CONTROLTYPE_FADER + 1
Private Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, _
ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As
Long, _
ByVal fdwOpen As Long) As Long
Private Declare Function mixerGetLineInfo Lib "winmm.dll" Alias _
"mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, _
ByVal fdwInfo As Long) As Long
Private Declare Function mixerGetLineControls Lib "winmm.dll" Alias _
"mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As
MIXERLINECONTROLS, _
ByVal fdwControls As Long) As Long
Private Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal
hmxobj _
As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As
Long
Private Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long)
As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal length As Long)
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long)
As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long)
As Long
Private Type MIXERCONTROL
cbStruct As Long
dwControlID As Long
dwControlType As Long
fdwControl As Long
cMultipleItems As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
lMinimum As Long
lMaximum As Long
Reserved(10) As Long
End Type
Private Type MIXERCONTROLDETAILS
cbStruct As Long
dwControlID As Long
cChannels As Long
item As Long
cbDetails As Long
paDetails As Long
End Type
Private Type MIXERCONTROLDETAILS_UNSIGNED
dwValue As Long
End Type
Private Type MIXERLINE
cbStruct As Long
dwDestination As Long
dwSource As Long
dwLineID As Long
fdwLine As Long
dwUser As Long
dwComponentType As Long
cChannels As Long
cConnections As Long
cControls As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
dwType As Long
dwDeviceID As Long
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
End Type
Private Type MIXERLINECONTROLS
cbStruct As Long
dwLineID As Long
dwControl As Long
cControls As Long
cbmxctrl As Long
pamxctrl As Long
End Type
Function SetMasterMuteValue(MuteValue As Long) As Boolean
Dim hmx As Long
Dim uMixerLine As MIXERLINE
Dim uMixerControl As MIXERCONTROL
Dim uMixerLineControls As MIXERLINECONTROLS
Dim mxcd As MIXERCONTROLDETAILS
Dim mxcdu As MIXERCONTROLDETAILS_UNSIGNED
Dim lResult As Long
Dim hMem As Long
lResult = mixerOpen(hmx, 0, 0, 0, 0)
If lResult = MMSYSERR_NOERROR Then
uMixerLine.cbStruct = Len(uMixerLine)
uMixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
lResult = mixerGetLineInfo(hmx, uMixerLine,
MIXER_GETLINEINFOF_COMPONENTTYPE)
If lResult = MMSYSERR_NOERROR Then
uMixerLineControls.cbStruct = Len(uMixerLineControls)
uMixerLineControls.dwLineID = uMixerLine.dwLineID
uMixerLineControls.dwControl = MIXERCONTROL_CONTROLTYPE_MUTE
uMixerLineControls.cControls = 1
uMixerLineControls.cbmxctrl = Len(uMixerControl)
hMem = GlobalAlloc(&H40, Len(uMixerControl))
uMixerLineControls.pamxctrl = GlobalLock(hMem)
uMixerControl.cbStruct = Len(uMixerControl)
lResult = mixerGetLineControls(hmx, uMixerLineControls,
MIXER_GETLINECONTROLSF_ONEBYTYPE)
If lResult = MMSYSERR_NOERROR Then
CopyMemory uMixerControl, ByVal uMixerLineControls.pamxctrl,
Len(uMixerControl)
GlobalFree hMem
hMem = 0
mxcd.item = 0
mxcd.dwControlID = uMixerControl.dwControlID
mxcd.cbStruct = Len(mxcd)
mxcd.cbDetails = Len(mxcdu)
hMem = GlobalAlloc(&H40, Len(mxcdu))
mxcd.paDetails = GlobalLock(hMem)
mxcd.cChannels = 1
mxcdu.dwValue = MuteValue
CopyMemory ByVal mxcd.paDetails, mxcdu, Len(mxcdu)
lResult = mixerSetControlDetails(hmx, mxcd,
MIXER_SETCONTROLDETAILSF_VALUE)
GlobalFree hMem
hMem = 0
If lResult = MMSYSERR_NOERROR Then
mixerClose hmx
SetMasterMuteValue = True
Exit Function
End If
End If
End If
End If
If hmx <> 0 Then mixerClose hmx
If hMem Then GlobalFree hMem
SetMasterMuteValue = False
End Function
Private Sub Command1_Click()
SetMasterMuteValue 1 ' Tous muets = vrai
End Sub
Private Sub Command2_Click()
SetMasterMuteValue 0 ' Tous muets = faux
End Sub
--
Cordialement,
Jacques.
Bonjour Sylvianne,
Sylviane a écrit :
> Bonjour,
>
> J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une cellule
> prend une certaine valeur mais cela ne marche que si le controle du volume de
> windows n'est pas muet. Est-il possible de l'activer via VBA? Merci d'avance
> Sylviane
Pour activer / désactiver la case à cocher 'Tous muets' :
Option Explicit
Private Const MMSYSERR_NOERROR = 0
Private Const MAXPNAMELEN = 32
Private Const MIXER_LONG_NAME_CHARS = 64
Private Const MIXER_SHORT_NAME_CHARS = 16
Private Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
Private Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
Private Const MIXER_SETCONTROLDETAILSF_VALUE = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = &H4
Private Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
Private Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&
Private Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000
Private Const MIXERCONTROL_CONTROLTYPE_BOOLEAN =
MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or
MIXERCONTROL_CT_UNITS_BOOLEAN
Private Const MIXERCONTROL_CONTROLTYPE_MUTE =
MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2
Private Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
Private Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
Private Const MIXERCONTROL_CONTROLTYPE_FADER =
MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED
Private Const MIXERCONTROL_CONTROLTYPE_VOLUME =
MIXERCONTROL_CONTROLTYPE_FADER + 1
Private Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, _
ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As
Long, _
ByVal fdwOpen As Long) As Long
Private Declare Function mixerGetLineInfo Lib "winmm.dll" Alias _
"mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, _
ByVal fdwInfo As Long) As Long
Private Declare Function mixerGetLineControls Lib "winmm.dll" Alias _
"mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As
MIXERLINECONTROLS, _
ByVal fdwControls As Long) As Long
Private Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal
hmxobj _
As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As
Long
Private Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long)
As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal length As Long)
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long)
As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long)
As Long
Private Type MIXERCONTROL
cbStruct As Long
dwControlID As Long
dwControlType As Long
fdwControl As Long
cMultipleItems As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
lMinimum As Long
lMaximum As Long
Reserved(10) As Long
End Type
Private Type MIXERCONTROLDETAILS
cbStruct As Long
dwControlID As Long
cChannels As Long
item As Long
cbDetails As Long
paDetails As Long
End Type
Private Type MIXERCONTROLDETAILS_UNSIGNED
dwValue As Long
End Type
Private Type MIXERLINE
cbStruct As Long
dwDestination As Long
dwSource As Long
dwLineID As Long
fdwLine As Long
dwUser As Long
dwComponentType As Long
cChannels As Long
cConnections As Long
cControls As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
dwType As Long
dwDeviceID As Long
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
End Type
Private Type MIXERLINECONTROLS
cbStruct As Long
dwLineID As Long
dwControl As Long
cControls As Long
cbmxctrl As Long
pamxctrl As Long
End Type
Function SetMasterMuteValue(MuteValue As Long) As Boolean
Dim hmx As Long
Dim uMixerLine As MIXERLINE
Dim uMixerControl As MIXERCONTROL
Dim uMixerLineControls As MIXERLINECONTROLS
Dim mxcd As MIXERCONTROLDETAILS
Dim mxcdu As MIXERCONTROLDETAILS_UNSIGNED
Dim lResult As Long
Dim hMem As Long
lResult = mixerOpen(hmx, 0, 0, 0, 0)
If lResult = MMSYSERR_NOERROR Then
uMixerLine.cbStruct = Len(uMixerLine)
uMixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
lResult = mixerGetLineInfo(hmx, uMixerLine,
MIXER_GETLINEINFOF_COMPONENTTYPE)
If lResult = MMSYSERR_NOERROR Then
uMixerLineControls.cbStruct = Len(uMixerLineControls)
uMixerLineControls.dwLineID = uMixerLine.dwLineID
uMixerLineControls.dwControl = MIXERCONTROL_CONTROLTYPE_MUTE
uMixerLineControls.cControls = 1
uMixerLineControls.cbmxctrl = Len(uMixerControl)
hMem = GlobalAlloc(&H40, Len(uMixerControl))
uMixerLineControls.pamxctrl = GlobalLock(hMem)
uMixerControl.cbStruct = Len(uMixerControl)
lResult = mixerGetLineControls(hmx, uMixerLineControls,
MIXER_GETLINECONTROLSF_ONEBYTYPE)
If lResult = MMSYSERR_NOERROR Then
CopyMemory uMixerControl, ByVal uMixerLineControls.pamxctrl,
Len(uMixerControl)
GlobalFree hMem
hMem = 0
mxcd.item = 0
mxcd.dwControlID = uMixerControl.dwControlID
mxcd.cbStruct = Len(mxcd)
mxcd.cbDetails = Len(mxcdu)
hMem = GlobalAlloc(&H40, Len(mxcdu))
mxcd.paDetails = GlobalLock(hMem)
mxcd.cChannels = 1
mxcdu.dwValue = MuteValue
CopyMemory ByVal mxcd.paDetails, mxcdu, Len(mxcdu)
lResult = mixerSetControlDetails(hmx, mxcd,
MIXER_SETCONTROLDETAILSF_VALUE)
GlobalFree hMem
hMem = 0
If lResult = MMSYSERR_NOERROR Then
mixerClose hmx
SetMasterMuteValue = True
Exit Function
End If
End If
End If
End If
If hmx <> 0 Then mixerClose hmx
If hMem Then GlobalFree hMem
SetMasterMuteValue = False
End Function
Private Sub Command1_Click()
SetMasterMuteValue 1 ' Tous muets = vrai
End Sub
Private Sub Command2_Click()
SetMasterMuteValue 0 ' Tous muets = faux
End Sub
--
Cordialement,
Jacques.
Bonjour Sylvianne,
Sylviane a écrit :
> Bonjour,
>
> J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une cellule
> prend une certaine valeur mais cela ne marche que si le controle du volume de
> windows n'est pas muet. Est-il possible de l'activer via VBA? Merci d'avance
> Sylviane
Pour activer / désactiver la case à cocher 'Tous muets' :
Option Explicit
Private Const MMSYSERR_NOERROR = 0
Private Const MAXPNAMELEN = 32
Private Const MIXER_LONG_NAME_CHARS = 64
Private Const MIXER_SHORT_NAME_CHARS = 16
Private Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
Private Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
Private Const MIXER_SETCONTROLDETAILSF_VALUE = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = &H4
Private Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
Private Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&
Private Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000
Private Const MIXERCONTROL_CONTROLTYPE_BOOLEAN =
MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or
MIXERCONTROL_CT_UNITS_BOOLEAN
Private Const MIXERCONTROL_CONTROLTYPE_MUTE =
MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2
Private Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
Private Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
Private Const MIXERCONTROL_CONTROLTYPE_FADER =
MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED
Private Const MIXERCONTROL_CONTROLTYPE_VOLUME =
MIXERCONTROL_CONTROLTYPE_FADER + 1
Private Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, _
ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As
Long, _
ByVal fdwOpen As Long) As Long
Private Declare Function mixerGetLineInfo Lib "winmm.dll" Alias _
"mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, _
ByVal fdwInfo As Long) As Long
Private Declare Function mixerGetLineControls Lib "winmm.dll" Alias _
"mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As
MIXERLINECONTROLS, _
ByVal fdwControls As Long) As Long
Private Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal
hmxobj _
As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As
Long
Private Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long)
As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal length As Long)
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long)
As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long)
As Long
Private Type MIXERCONTROL
cbStruct As Long
dwControlID As Long
dwControlType As Long
fdwControl As Long
cMultipleItems As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
lMinimum As Long
lMaximum As Long
Reserved(10) As Long
End Type
Private Type MIXERCONTROLDETAILS
cbStruct As Long
dwControlID As Long
cChannels As Long
item As Long
cbDetails As Long
paDetails As Long
End Type
Private Type MIXERCONTROLDETAILS_UNSIGNED
dwValue As Long
End Type
Private Type MIXERLINE
cbStruct As Long
dwDestination As Long
dwSource As Long
dwLineID As Long
fdwLine As Long
dwUser As Long
dwComponentType As Long
cChannels As Long
cConnections As Long
cControls As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
dwType As Long
dwDeviceID As Long
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
End Type
Private Type MIXERLINECONTROLS
cbStruct As Long
dwLineID As Long
dwControl As Long
cControls As Long
cbmxctrl As Long
pamxctrl As Long
End Type
Function SetMasterMuteValue(MuteValue As Long) As Boolean
Dim hmx As Long
Dim uMixerLine As MIXERLINE
Dim uMixerControl As MIXERCONTROL
Dim uMixerLineControls As MIXERLINECONTROLS
Dim mxcd As MIXERCONTROLDETAILS
Dim mxcdu As MIXERCONTROLDETAILS_UNSIGNED
Dim lResult As Long
Dim hMem As Long
lResult = mixerOpen(hmx, 0, 0, 0, 0)
If lResult = MMSYSERR_NOERROR Then
uMixerLine.cbStruct = Len(uMixerLine)
uMixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
lResult = mixerGetLineInfo(hmx, uMixerLine,
MIXER_GETLINEINFOF_COMPONENTTYPE)
If lResult = MMSYSERR_NOERROR Then
uMixerLineControls.cbStruct = Len(uMixerLineControls)
uMixerLineControls.dwLineID = uMixerLine.dwLineID
uMixerLineControls.dwControl = MIXERCONTROL_CONTROLTYPE_MUTE
uMixerLineControls.cControls = 1
uMixerLineControls.cbmxctrl = Len(uMixerControl)
hMem = GlobalAlloc(&H40, Len(uMixerControl))
uMixerLineControls.pamxctrl = GlobalLock(hMem)
uMixerControl.cbStruct = Len(uMixerControl)
lResult = mixerGetLineControls(hmx, uMixerLineControls,
MIXER_GETLINECONTROLSF_ONEBYTYPE)
If lResult = MMSYSERR_NOERROR Then
CopyMemory uMixerControl, ByVal uMixerLineControls.pamxctrl,
Len(uMixerControl)
GlobalFree hMem
hMem = 0
mxcd.item = 0
mxcd.dwControlID = uMixerControl.dwControlID
mxcd.cbStruct = Len(mxcd)
mxcd.cbDetails = Len(mxcdu)
hMem = GlobalAlloc(&H40, Len(mxcdu))
mxcd.paDetails = GlobalLock(hMem)
mxcd.cChannels = 1
mxcdu.dwValue = MuteValue
CopyMemory ByVal mxcd.paDetails, mxcdu, Len(mxcdu)
lResult = mixerSetControlDetails(hmx, mxcd,
MIXER_SETCONTROLDETAILSF_VALUE)
GlobalFree hMem
hMem = 0
If lResult = MMSYSERR_NOERROR Then
mixerClose hmx
SetMasterMuteValue = True
Exit Function
End If
End If
End If
End If
If hmx <> 0 Then mixerClose hmx
If hMem Then GlobalFree hMem
SetMasterMuteValue = False
End Function
Private Sub Command1_Click()
SetMasterMuteValue 1 ' Tous muets = vrai
End Sub
Private Sub Command2_Click()
SetMasterMuteValue 0 ' Tous muets = faux
End Sub
--
Cordialement,
Jacques.
Bonjour Sylvianne,
Sylviane a écrit :
> Bonjour,
>
> J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une cellule
> prend une certaine valeur mais cela ne marche que si le controle du volume de
> windows n'est pas muet. Est-il possible de l'activer via VBA? Merci d'avance
> Sylviane
Pour activer / désactiver la case à cocher 'Tous muets' :
Option Explicit
Private Const MMSYSERR_NOERROR = 0
Private Const MAXPNAMELEN = 32
Private Const MIXER_LONG_NAME_CHARS = 64
Private Const MIXER_SHORT_NAME_CHARS = 16
Private Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
Private Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
Private Const MIXER_SETCONTROLDETAILSF_VALUE = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = &H4
Private Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
Private Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&
Private Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000
Private Const MIXERCONTROL_CONTROLTYPE_BOOLEAN =
MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or
MIXERCONTROL_CT_UNITS_BOOLEAN
Private Const MIXERCONTROL_CONTROLTYPE_MUTE =
MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2
Private Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
Private Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
Private Const MIXERCONTROL_CONTROLTYPE_FADER =
MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED
Private Const MIXERCONTROL_CONTROLTYPE_VOLUME =
MIXERCONTROL_CONTROLTYPE_FADER + 1
Private Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, _
ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As
Long, _
ByVal fdwOpen As Long) As Long
Private Declare Function mixerGetLineInfo Lib "winmm.dll" Alias _
"mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, _
ByVal fdwInfo As Long) As Long
Private Declare Function mixerGetLineControls Lib "winmm.dll" Alias _
"mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As
MIXERLINECONTROLS, _
ByVal fdwControls As Long) As Long
Private Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal
hmxobj _
As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As
Long
Private Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long)
As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal length As Long)
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long)
As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long)
As Long
Private Type MIXERCONTROL
cbStruct As Long
dwControlID As Long
dwControlType As Long
fdwControl As Long
cMultipleItems As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
lMinimum As Long
lMaximum As Long
Reserved(10) As Long
End Type
Private Type MIXERCONTROLDETAILS
cbStruct As Long
dwControlID As Long
cChannels As Long
item As Long
cbDetails As Long
paDetails As Long
End Type
Private Type MIXERCONTROLDETAILS_UNSIGNED
dwValue As Long
End Type
Private Type MIXERLINE
cbStruct As Long
dwDestination As Long
dwSource As Long
dwLineID As Long
fdwLine As Long
dwUser As Long
dwComponentType As Long
cChannels As Long
cConnections As Long
cControls As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
dwType As Long
dwDeviceID As Long
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
End Type
Private Type MIXERLINECONTROLS
cbStruct As Long
dwLineID As Long
dwControl As Long
cControls As Long
cbmxctrl As Long
pamxctrl As Long
End Type
Function SetMasterMuteValue(MuteValue As Long) As Boolean
Dim hmx As Long
Dim uMixerLine As MIXERLINE
Dim uMixerControl As MIXERCONTROL
Dim uMixerLineControls As MIXERLINECONTROLS
Dim mxcd As MIXERCONTROLDETAILS
Dim mxcdu As MIXERCONTROLDETAILS_UNSIGNED
Dim lResult As Long
Dim hMem As Long
lResult = mixerOpen(hmx, 0, 0, 0, 0)
If lResult = MMSYSERR_NOERROR Then
uMixerLine.cbStruct = Len(uMixerLine)
uMixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
lResult = mixerGetLineInfo(hmx, uMixerLine,
MIXER_GETLINEINFOF_COMPONENTTYPE)
If lResult = MMSYSERR_NOERROR Then
uMixerLineControls.cbStruct = Len(uMixerLineControls)
uMixerLineControls.dwLineID = uMixerLine.dwLineID
uMixerLineControls.dwControl = MIXERCONTROL_CONTROLTYPE_MUTE
uMixerLineControls.cControls = 1
uMixerLineControls.cbmxctrl = Len(uMixerControl)
hMem = GlobalAlloc(&H40, Len(uMixerControl))
uMixerLineControls.pamxctrl = GlobalLock(hMem)
uMixerControl.cbStruct = Len(uMixerControl)
lResult = mixerGetLineControls(hmx, uMixerLineControls,
MIXER_GETLINECONTROLSF_ONEBYTYPE)
If lResult = MMSYSERR_NOERROR Then
CopyMemory uMixerControl, ByVal uMixerLineControls.pamxctrl,
Len(uMixerControl)
GlobalFree hMem
hMem = 0
mxcd.item = 0
mxcd.dwControlID = uMixerControl.dwControlID
mxcd.cbStruct = Len(mxcd)
mxcd.cbDetails = Len(mxcdu)
hMem = GlobalAlloc(&H40, Len(mxcdu))
mxcd.paDetails = GlobalLock(hMem)
mxcd.cChannels = 1
mxcdu.dwValue = MuteValue
CopyMemory ByVal mxcd.paDetails, mxcdu, Len(mxcdu)
lResult = mixerSetControlDetails(hmx, mxcd,
MIXER_SETCONTROLDETAILSF_VALUE)
GlobalFree hMem
hMem = 0
If lResult = MMSYSERR_NOERROR Then
mixerClose hmx
SetMasterMuteValue = True
Exit Function
End If
End If
End If
End If
If hmx <> 0 Then mixerClose hmx
If hMem Then GlobalFree hMem
SetMasterMuteValue = False
End Function
Private Sub Command1_Click()
SetMasterMuteValue 1 ' Tous muets = vrai
End Sub
Private Sub Command2_Click()
SetMasterMuteValue 0 ' Tous muets = faux
End Sub
--
Cordialement,
Jacques.
Bonjour Sylvianne,
Sylviane a écrit :
> Bonjour,
>
> J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une cellule
> prend une certaine valeur mais cela ne marche que si le controle du volume de
> windows n'est pas muet. Est-il possible de l'activer via VBA? Merci d'avance
> Sylviane
Pour activer / désactiver la case à cocher 'Tous muets' :
Option Explicit
Private Const MMSYSERR_NOERROR = 0
Private Const MAXPNAMELEN = 32
Private Const MIXER_LONG_NAME_CHARS = 64
Private Const MIXER_SHORT_NAME_CHARS = 16
Private Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
Private Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
Private Const MIXER_SETCONTROLDETAILSF_VALUE = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
Private Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = &H4
Private Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
Private Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&
Private Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000
Private Const MIXERCONTROL_CONTROLTYPE_BOOLEAN =
MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or
MIXERCONTROL_CT_UNITS_BOOLEAN
Private Const MIXERCONTROL_CONTROLTYPE_MUTE =
MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2
Private Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
Private Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
Private Const MIXERCONTROL_CONTROLTYPE_FADER =
MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED
Private Const MIXERCONTROL_CONTROLTYPE_VOLUME =
MIXERCONTROL_CONTROLTYPE_FADER + 1
Private Declare Function mixerOpen Lib "winmm.dll" (phmx As Long, _
ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As
Long, _
ByVal fdwOpen As Long) As Long
Private Declare Function mixerGetLineInfo Lib "winmm.dll" Alias _
"mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, _
ByVal fdwInfo As Long) As Long
Private Declare Function mixerGetLineControls Lib "winmm.dll" Alias _
"mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As
MIXERLINECONTROLS, _
ByVal fdwControls As Long) As Long
Private Declare Function mixerSetControlDetails Lib "winmm.dll" (ByVal
hmxobj _
As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As
Long
Private Declare Function mixerClose Lib "winmm.dll" (ByVal hmx As Long)
As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal length As Long)
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long)
As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long)
As Long
Private Type MIXERCONTROL
cbStruct As Long
dwControlID As Long
dwControlType As Long
fdwControl As Long
cMultipleItems As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
lMinimum As Long
lMaximum As Long
Reserved(10) As Long
End Type
Private Type MIXERCONTROLDETAILS
cbStruct As Long
dwControlID As Long
cChannels As Long
item As Long
cbDetails As Long
paDetails As Long
End Type
Private Type MIXERCONTROLDETAILS_UNSIGNED
dwValue As Long
End Type
Private Type MIXERLINE
cbStruct As Long
dwDestination As Long
dwSource As Long
dwLineID As Long
fdwLine As Long
dwUser As Long
dwComponentType As Long
cChannels As Long
cConnections As Long
cControls As Long
szShortName As String * MIXER_SHORT_NAME_CHARS
szName As String * MIXER_LONG_NAME_CHARS
dwType As Long
dwDeviceID As Long
wMid As Integer
wPid As Integer
vDriverVersion As Long
szPname As String * MAXPNAMELEN
End Type
Private Type MIXERLINECONTROLS
cbStruct As Long
dwLineID As Long
dwControl As Long
cControls As Long
cbmxctrl As Long
pamxctrl As Long
End Type
Function SetMasterMuteValue(MuteValue As Long) As Boolean
Dim hmx As Long
Dim uMixerLine As MIXERLINE
Dim uMixerControl As MIXERCONTROL
Dim uMixerLineControls As MIXERLINECONTROLS
Dim mxcd As MIXERCONTROLDETAILS
Dim mxcdu As MIXERCONTROLDETAILS_UNSIGNED
Dim lResult As Long
Dim hMem As Long
lResult = mixerOpen(hmx, 0, 0, 0, 0)
If lResult = MMSYSERR_NOERROR Then
uMixerLine.cbStruct = Len(uMixerLine)
uMixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_SPEAKERS
lResult = mixerGetLineInfo(hmx, uMixerLine,
MIXER_GETLINEINFOF_COMPONENTTYPE)
If lResult = MMSYSERR_NOERROR Then
uMixerLineControls.cbStruct = Len(uMixerLineControls)
uMixerLineControls.dwLineID = uMixerLine.dwLineID
uMixerLineControls.dwControl = MIXERCONTROL_CONTROLTYPE_MUTE
uMixerLineControls.cControls = 1
uMixerLineControls.cbmxctrl = Len(uMixerControl)
hMem = GlobalAlloc(&H40, Len(uMixerControl))
uMixerLineControls.pamxctrl = GlobalLock(hMem)
uMixerControl.cbStruct = Len(uMixerControl)
lResult = mixerGetLineControls(hmx, uMixerLineControls,
MIXER_GETLINECONTROLSF_ONEBYTYPE)
If lResult = MMSYSERR_NOERROR Then
CopyMemory uMixerControl, ByVal uMixerLineControls.pamxctrl,
Len(uMixerControl)
GlobalFree hMem
hMem = 0
mxcd.item = 0
mxcd.dwControlID = uMixerControl.dwControlID
mxcd.cbStruct = Len(mxcd)
mxcd.cbDetails = Len(mxcdu)
hMem = GlobalAlloc(&H40, Len(mxcdu))
mxcd.paDetails = GlobalLock(hMem)
mxcd.cChannels = 1
mxcdu.dwValue = MuteValue
CopyMemory ByVal mxcd.paDetails, mxcdu, Len(mxcdu)
lResult = mixerSetControlDetails(hmx, mxcd,
MIXER_SETCONTROLDETAILSF_VALUE)
GlobalFree hMem
hMem = 0
If lResult = MMSYSERR_NOERROR Then
mixerClose hmx
SetMasterMuteValue = True
Exit Function
End If
End If
End If
End If
If hmx <> 0 Then mixerClose hmx
If hMem Then GlobalFree hMem
SetMasterMuteValue = False
End Function
Private Sub Command1_Click()
SetMasterMuteValue 1 ' Tous muets = vrai
End Sub
Private Sub Command2_Click()
SetMasterMuteValue 0 ' Tous muets = faux
End Sub
--
Cordialement,
Jacques.
Salut,
Tente ça (en mettant le son ok et > au minimum)
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
sndPlaySound "C:cheminNomFichierSon.mid", 0
------------
"Sylviane" a écrit dans le message de
news:
> Bonjour,
>
> J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une
> cellule
> prend une certaine valeur mais cela ne marche que si le controle du volume
> de
> windows n'est pas muet. Est-il possible de l'activer via VBA? Merci
> d'avance
> Sylviane
Salut,
Tente ça (en mettant le son ok et > au minimum)
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
sndPlaySound "C:cheminNomFichierSon.mid", 0
------------
"Sylviane" <Sylviane@discussions.microsoft.com> a écrit dans le message de
news: 0FB4B5A9-D1B3-49E9-BF88-DEDC6A49280A@microsoft.com...
> Bonjour,
>
> J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une
> cellule
> prend une certaine valeur mais cela ne marche que si le controle du volume
> de
> windows n'est pas muet. Est-il possible de l'activer via VBA? Merci
> d'avance
> Sylviane
Salut,
Tente ça (en mettant le son ok et > au minimum)
Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA"
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
sndPlaySound "C:cheminNomFichierSon.mid", 0
------------
"Sylviane" a écrit dans le message de
news:
> Bonjour,
>
> J'ai un fichier excel dans lequel j'active un fichier son lorsqu'une
> cellule
> prend une certaine valeur mais cela ne marche que si le controle du volume
> de
> windows n'est pas muet. Est-il possible de l'activer via VBA? Merci
> d'avance
> Sylviane
Merci Jacques, cela marche bien! Mais il ne doit pas y avoir beaucoup
d'amateurs qui peuvent écrire des choses comme çà. Je suis admirative
Sylviane
Merci Jacques, cela marche bien! Mais il ne doit pas y avoir beaucoup
d'amateurs qui peuvent écrire des choses comme çà. Je suis admirative
Sylviane
Merci Jacques, cela marche bien! Mais il ne doit pas y avoir beaucoup
d'amateurs qui peuvent écrire des choses comme çà. Je suis admirative
Sylviane