Sound abspielen
#21
aha, mir fallen sie nicht von den Augen. Obwohl ich grad echt müde bin und mir ständig dieselben reibe. Was meinst du genau? Was muss ich ändern?
Top
#22
Hallöchen,

was ich gestern andeuten wollte, die obere der beiden Zeilen muss weg. Nicht überall gibt es lauffähige unvollendete, vielleicht bei Beethoven Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • o0Julia0o
Top
#23
Hi,

nicht mal bei dem, eher bei Schubert :19:  :19:
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#24
aber lauffähige vollendete leider auch nicht - wobei der Pianist ja auch eigentlich nicht LongLong heißt:
   
   

Wenn ich die Exceldatei öffne, wird folgender Hinweis eingeblendet:
   
"Fehler beim Kompilieren: der Code in diesem Projekt muss für 64-Bit-Systeme aktualisiert werden" Überarbeiten und aktualisieren Sie Declare-Anweisungen, und markieren Sie sie mit dem PtrSafe-Attribut." Das gleiche kommt bei der LongLong-Variante auch, wenn ich die Datei öffne.
Top
#25
Hallo,

ich frage mich schon seit ein paar Tagen, ob die Shell32.dll's nicht irgendwann Ärger machen.
Da ich aber, was das angeht, keine eigenen Erfahrungen habe, dachte ich, warte es einfach mal ab.
Vielleicht hat Microsoft ja irgendwelche Anpassungen bereitgestellt.

Wegen mangelnder Erfahrung kann ich hier leider nicht helfen.
Top
#26
Hallöchen,

so, die erste Zeile ist ja weg. Einen versuch haben wir noch Smile
In der Function fehlt noch das PrtSave:

Public Declare PtrSafe Function ShellExecute Lib ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#27
hm, danke. Das hatten wir noch gar nicht angesprochen, oder übersehe ich das?

So in der Art?
Code:
Private Const SW_SHOWNORMAL = 1
Public Declare PtrSafe Function ShellExecute Lib
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As LongLong) As LongLong
Dann bleibt der Fehler trotzdem. "Fehler beim Kompilieren: der Code in diesem Projekt muss für 64-Bit-Systeme aktualisiert werden" Überarbeiten und aktualisieren Sie Declare-Anweisungen, und markieren Sie sie mit dem PtrSafe-Attribut." Das gleiche kommt, wenn ich mit der LongPtr-Variante die Datei öffne. Alles, bis auf die 1. Code-Zeile wird rot markiert.

Oder so:
Code:
Private Const SW_SHOWNORMAL = 1
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As LongLong) As LongLong
Das ändert nichts an der Fehlermeldung - auch nicht in der LongPtr-Variante.
Top
#28
Hallo,

die erste der beiden von mir angemerkten Zeilen sollte weg und die zweite bekommt das prtsafe
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • o0Julia0o
Top
#29
Music 
So funktioniert das jetzt :)

Code:
Private Const SW_SHOWNORMAL = 1
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As LongPtr) As LongPtr
Doch hiermit spielt der nix ab, auch wenn ich in A1 eine 4 eingetragen habe oder eintrage:

Code:
Sub Abspielen()
If Cells(1, 1).Value = 4 Then
Call sndPlaySound32("E:\h.wav", 1)
End If
If Cells(1, 1).Value = "5" Then
Call sndPlaySound32("E:\h.mp3", 1)
End If
End Sub
VBA meldet: Sub oder function nicht definiert und markiert: "Call sndPlaySound32"

Doch so spielt er die Datei nun ab:

Code:
Private Sub Command1_Click()
Dim strFile As String
strFile = "E:\h.wav"
ShellExecute &O0, "open", strFile, vbNullString, vbNullString, SW_SHOWNORMAL
End Sub

Kann Excel die Dati denn abspielen ohne den Windows Media Player in den Vordergrund zu holen? Quasi unsichtbar, die Excel-Datei weiterhin anzeigen und nur den Sound im Hintergrund abspielen?
-> jo das geht. Einfach SW_SHOWNORMAL durch SW_SHOWCMD ersetzen.
Top
#30
Hallöchen,

der erste Code alleine spielt auch nix ab. Das geschieht im Zusammenwirken mit dem dritten Code.
Im dritten Code greifst Du in der Zeile mit ShellExecute auf den ersten Code zu.

Der mittlere Code geht nicht, weil er beim Aufruf von sndPlaySound32 selbiges nicht findet. Das meint die Meldung mit ... nicht defineirt ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • o0Julia0o
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste