Condividi tramite

Errore PtrSafe

Anonimo
2020-04-30T14:52:18+00:00

Buongiorno,

ho creato un file excel per il controllo di un magazzino all'interno del quale ho creato un piccolo codice VBA che quando richiamato deve emettere un suono e aprire una message box.

Sul mio pc funziona tutto correttamente, ma quando lo uso nel pc da lavoro mi da errore come da immagine.

Il codice che ho scritto è:

Private Declare Function PlaySound Lib "winmm.dll" _

Alias "PlaySoundA" (ByVal lpszName As String, _

ByVal hModule As Long, ByVal dwFlags As Long) As Long

Const SND_SYNC = &H0

Const SND_ASYNC = &H1

Const SND_FILENAME = &H20000

Public Function Allarme()

WAVFile = "c:\windows\media\Windows - Arresto critico.wav"

Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)

MsgBox "Superato il numero di Packaging"

End Function

Grazie a tutti

Christian

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2020-04-30T15:08:43+00:00

Ciao Christian,

ho creato un file excel per il controllo di un magazzino all'interno del quale ho creato un piccolo codice VBA che quando richiamato deve emettere un suono e aprire una message box.

Sul mio pc funziona tutto correttamente, ma quando lo uso nel pc da lavoro mi da errore come da immagine.

Il codice che ho scritto è:

Private Declare Function PlaySound Lib "winmm.dll" _

Alias "PlaySoundA" (ByVal lpszName As String, _

ByVal hModule As Long, ByVal dwFlags As Long) As Long

Const SND_SYNC = &H0

Const SND_ASYNC = &H1

Const SND_FILENAME = &H20000

Public Function Allarme()

WAVFile = "c:\windows\media\Windows - Arresto critico.wav"

Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)

MsgBox "Superato il numero di Packaging"

End Function

Grazie a tutti

Christian

Prova a sostituire

Private Declare Function PlaySound Lib "winmm.dll" _

Alias "PlaySoundA" (ByVal lpszName As String, _

ByVal hModule As Long, ByVal dwFlags As Long) As Long

con:

#If VBA7 And Win64 Then

    Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _

      Alias "PlaySoundA" (ByVal lpszName As String, _

      ByVal hModule As LongPtr, ByVal dwFlags As LongPtr) As LongPtr

#Else

    Private Declare Function PlaySound Lib "winmm.dll" _

      Alias "PlaySoundA" (ByVal lpszName As String, _

      ByVal hModule As Long, ByVal dwFlags As Long) As Long

#End If

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2020-04-30T15:31:24+00:00

    Ciao Norman,

    grazie mille!!!

    Lo testo e ti faccio sapere!

    La risposta è stata utile?

    0 commenti Nessun commento