un internaute
XLDnaute Impliqué
Bonsoir le forum
Je voudrais pouvoir émettre un son en plus du message.
Les 2 cellules E3 et E8 sont vides.
Lorsque je remplis la cellule E3 il est impossible de remplir cellule E8. Ça le fait bien mais en plus du message je voudrais faire émettre un son court et non pas Logoff.wav qui est fort et long
Et inversement E8 occupée impossible de remplir cellule E3 tout ça fonctionne très bien.
Manque un son court.
Merci pour vos éventuels retours
Cordialement
PS: Je suis sous Excel 2003 et j'ai aussi posté sur un autre forum. J'ai eu des réponses (une en particulier chez qui ça fonctionne mais pas chez moi).
Macro -ci-dessous dans ThisWorkbook
Dans module
Je voudrais pouvoir émettre un son en plus du message.
Les 2 cellules E3 et E8 sont vides.
Lorsque je remplis la cellule E3 il est impossible de remplir cellule E8. Ça le fait bien mais en plus du message je voudrais faire émettre un son court et non pas Logoff.wav qui est fort et long
Et inversement E8 occupée impossible de remplir cellule E3 tout ça fonctionne très bien.
Manque un son court.
Merci pour vos éventuels retours
Cordialement
PS: Je suis sous Excel 2003 et j'ai aussi posté sur un autre forum. J'ai eu des réponses (une en particulier chez qui ça fonctionne mais pas chez moi).
Macro -ci-dessous dans ThisWorkbook
VB:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim NombreJour As Integer
Dim Ladate As Date
Application.ScreenUpdating = False
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
' On recherche si la page est surveillée
If Left(Sh.Name, 7) = "Charges" Then 'Le chiffre 7 = Nombre de lettres du mot "Charges".On peut mettre 8 avec un espace après "Charges " pour une sécurité.
If Not Intersect(Range("B12:B112,E12:E112"), Target) Is Nothing Then
If Target.Interior.ColorIndex = 2 Then
' Si la colonne B et la colonne E est vide on efface la date
Range("A" & Target.Row) = IIf(Range("B" & Target.Row) & Range("E" & Target.Row) = "", "", Application.Proper(Format(Date, "dddd dd mmmm yyyy")))
' ********* Début Modifs. Tapez le Montant (colonnes E ou B) et éventuellement Modifier les Dates (Colonne A) sous le format suivant => 07/02/20 (Exemple)
End If
'
' Début modification du 05/08/2020 : Inscription automatique date en cellule A17
ElseIf Not Intersect(Range("E7,J2"), Target) Is Nothing Then
If Target = "" Then
Range("A18").ClearContents ' Suppression date si SUPPR cellule E6
Else
If Range("E18") = Range("E7") Then
Range("A18") = Application.Proper(Format(Date, "dddd dd mmmm yyyy")) ' Sinon on inscrit la date
End If
End If
' Fin modification du 05/08/2020 : Inscription automatique date en cellule A17
'
ElseIf Target.Column = 1 And Target.Row > 12 And Target.Interior.ColorIndex = 2 Then 'Ajout de And Target.Interior.ColorIndex = 2 pour pouvoir recopier texte ligne
If IsDate(Target) Then
Target = Application.Proper(Format(Target, "dddd dd mmmm yyyy")) ' Sinon on inscrit la date
Else
Target = ""
' ***************** Fin modifs
End If
'Début modifs le 14/02/2021
ElseIf Not Intersect(Target, Union(Range("E3"), Range("E8"))) Is Nothing Then
x = Range("E3").Value
y = Range("E8").Value
If (x <> "") And (y <> "") Then
JouerSon
Target.ClearContents
MsgBox "Impossible de saisir une valeur dans cellule " & Target.Address(rowabsolute:=False, columnabsolute:=False) & " car cellule " & IIf(Target.Address = "$E$8", "E3", "E8") & " renseigné"
End If
'Fin modifs le 14/02/2021
End If
End If
Application.EnableEvents = True
End Sub
Code:
Dans module
Code:
Option Explicit
Private Declare Function PlaySound& Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName$, _
ByVal hModule&, ByVal dwFlags&)
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Sub JouerSon()
Dim MonWav As String
MonWav = "C:\Users\toto\Desktop\Logoff.wav" '... chemin et nom à adapter
Call PlaySound(MonWav, 0&, SND_ASYNC Or SND_FILENAME)
End Sub