fichier sons dans une feuille

chaelie2015

XLDnaute Accro
Bonjour forum
je souhaite insérer un fichier sons si la cellule est renseignée 1 OU 2
exemple si la cellule A1 contient 1 alors déclenché le fichier sons.
si la cellule A1 contient 2 alors déclenché le fichier sons.
jusqu'a maintenant ça marche, mon autre souci est si je déplace mon fichier excel sur un autre PC , je dois changer le chemin du fichier sons ????????
NB: le chemin du fichier sons H:\APPLICATIONS\.......wav
Merci.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Selection As Integer
If Not Application.Intersect(Target, Range("A1")) Is Nothing Then

Selection = ActiveSheet.Range("A1").Value
Select Case Selection

Case Is = 1
Application.ExecuteExcel4Macro "SOUND.PLAY(,""H:\APPLICATION\intro3.wav"")"

Case Is = 2
'MsgBox ("attention ce CP n'est pas autorisée")
Application.ExecuteExcel4Macro "SOUND.PLAY(,""H:\APPLICATION\cp non auto wav.wav"")"


Case Else

MsgBox ("Selection erronée")

End Select
End If
End Sub
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Bonjour,
Le plus simple dans ce cas serait d'avoir les deux fichiers "son" dans le même répertoire que le classeur qui les utilise.
De même en cas de déplacement vers un autre pc
Alors ceci pour exécuter les sons devrait être suffisant
Edit:
Application.ExecuteExcel4Macro "SOUND.Play(,""" & ThisWorkbook.Path & "\intro3.wav"")"
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Bonjour chaelie :)

Le plus simple, dans le dossier tu met les fichiers sons et le classeur; Ensuite

Dim Fichier(1 to 2) As String

Fichier(1) = Thisworkbook.path & "\son1.wav"
Fichier(2) = Thisworkbook.path & "\son2.wav"

Case Is = 1
Application.ExecuteExcel4Macro "SOUND.PLAY(Fichier(1))"

Case Is = 2
Application.ExecuteExcel4Macro "SOUND.PLAY(Fichier(2))"


Si tu mets les fichiers sons dans un sous-dossier Thisworkbook.path & "\Sons\son1.wav"

EDIT: bonjour Jacky :)
 
Dernière édition:

chaelie2015

XLDnaute Accro
Re
je retire le post #4
mon souci est résolut
sinon si je rajoute un msgbox lors de déclenchement du fichier son
VB:
.........
Case Is = 1
Application.ExecuteExcel4Macro "SOUND.Play(,""" & ThisWorkbook.Path & "\intro3.wav"")"
Msgbox"Bonjour dans le cadre ......."
.......

comment je fais????

salutations
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Re
je retire le post #4
mon souci est résolut
sinon si je rajoute un msgbox lors de déclenchement du fichier son
VB:
.........
Case Is = 1
Application.ExecuteExcel4Macro "SOUND.Play(,""" & ThisWorkbook.Path & "\intro3.wav"")"
Msgbox"Bonjour dans le cadre ......."
.......

comment je fais????

salutations
Si la question est:
==>Ne pas attendre la fin du "son" pour afficher le message

Alors utilise les codes du classeur en pj
Les fichiers 'sons' sont placés dans le même répertoire que le classeur qui les utilise.
Dans l'exemple
Pour A1=1 le son="intro3.wav"
Pour A1=2 le son="cp non auto wav.wav"

Edit:
Hello Lone-wolf
C'est le dernier jour pour les vœux :)
Bonne Année
 

Pièces jointes

  • sons1.xlsm
    20 KB · Affichages: 31

Lone-wolf

XLDnaute Barbatruc
Re Jacky

Mais noooooonn! On peut souhaiter la bonne année jusqu'à Noël ;)

Bonne année à toi aussi :cool:

EDIT: je sais que ce n'est pas le sujet de la conversation mais, si le nom de la 1ère feuille est 31.01.2017, comment incrémenter la date à chaque nouvelle feuille créé, quand on clique sur nouvelle feuille?
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
EDIT: je sais que ce n'est pas le sujet de la conversation mais, si le nom de la 1ère feuille est 31.01.2017, comment incrémenter la date à chaque nouvelle feuille créé, quand on clique sur nouvelle feuille?
Re...
Sur un clic sur "Inserer nouvelle feuille" sur une feuille, je ne sais pas si c'est faisable.
Par macro, cela pourrait ressembler au code ci-dessous
Il scanne toutes les feuilles, compare celles qui ont une date comme nom , retient celle qui a la date la plus grande et ajoute un jour. Le tout à partir du 31/01/17
Je ne sais pas si c'est ce que tu cherches à faire, mais cela peut donner des idées:D
Sinon ouvre un nouveau fil, certains ont peut-être d'autres idées
Code:
Sub NouvelleFeuille()
Dim sh As Worksheet, LaDate As Date
LaDate = DateSerial(17, 1, 31)
For Each sh In ThisWorkbook.Worksheets
    On Error Resume Next    'si le nom est autre qu'une date
    If DateSerial(Right(sh.Name, 2), Mid(sh.Name, 4, 2), Left(sh.Name, 2)) > LaDate Then
        LaDate = DateSerial(Right(sh.Name, 2), Mid(sh.Name, 4, 2), Left(sh.Name, 2))
    End If
    On Error GoTo 0
Next
LaDate = LaDate + 1
MsgBox "Prochain nom de feuill=" & Format(LaDate, "dd.mm.yy")    'facultatif
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(LaDate, "dd.mm.yy")
End Sub
 

Lone-wolf

XLDnaute Barbatruc
Re

et bien, surprise ça fonctionne. Merci beaucoup Jacky.

VB:
Private Sub Workbook_NewSheet(ByVal sh As Object)
Dim LaDate As Date

Sheets(2).Range("a1:aa50").Copy ActiveSheet.Range("a1")
        ActiveSheet.Columns.AutoFit
     
LaDate = DateSerial(17, 1, 31)
For Each sh In ThisWorkbook.Worksheets
    On Error Resume Next    'si le nom est autre qu'une date
    Application.DisplayAlerts = False
    If DateSerial(Right(sh.Name, 2), Mid(sh.Name, 4, 2), Left(sh.Name, 2)) > LaDate Then
        LaDate = DateSerial(Right(sh.Name, 2), Mid(sh.Name, 4, 2), Left(sh.Name, 2))
    End If
    On Error GoTo 0
Next
LaDate = LaDate + 1
ActiveSheet.Name = Format(LaDate, "dd.mm.yyyy")
ActiveSheet.Range("m22") = Format(LaDate, "dd.mm.yyyy")
End Sub
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
VB:
Private Sub Workbook_NewSheet(ByVal sh As Object)

Re..
J'ai complètement zappé cette instruction évènementielle "NewSheet"
Il est vrai que je ne l'ai plus utilisé depuis....très très longtemps:oops:
Content que cela te rend service

Content aussi pour chaelie2015 que son problème de "son+message" soit résolu.
Bonne nuit à tous
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 913
Messages
2 093 534
Membres
105 750
dernier inscrit
fred13340