Ho questi calcoli davvero lunghi in Excel. Vorrei distogliere la mia attenzione dallo schermo e fare qualcosa sulla mia scrivania, ma essere avvisato quando il calcolo è finito.
Qualche idea?
Ho questi calcoli davvero lunghi in Excel. Vorrei distogliere la mia attenzione dallo schermo e fare qualcosa sulla mia scrivania, ma essere avvisato quando il calcolo è finito.
Qualche idea?
Risposte:
OK, qualcosa da provare (le istruzioni presuppongono Excel 2007 o versioni successive):
.XLSM) con attivazione macro .yourbook.xlsm) e seleziona Inserisci → Modulo.Nel modulo incolla questo frammento:
Sub Auto_Open()
Application.OnKey "{F9}", "F9Handler"
End Sub
Questo farà sì che il tasto F9 venga riassegnato ogni volta che si apre SS. Quando premi F9 verrà eseguito F9Handlerinvece del solito calcolo.
Nel modulo, incolla questo frammento:
Sub F9Handler()
Application.Calculate
Beep
End Sub
Questo è ciò che verrà eseguito quando premi F9. La prima riga esegue il Application.Calculate(che è ciò che F9 esegue normalmente), quindi Bip.
Salva tutto.
Nota: probabilmente dovrai abilitare le macro e / o rendere il documento un documento "attendibile" per garantire che le macro vengano eseguite come previsto.
Ulteriori informazioni:
Proprio come gli altri menzionati, usa il beepcomando in Visual Basic (VB):
Function beepNow()
Beep
End Function
Per ottenere la codifica VB, è necessario disporre della Developer tabdisponibilità (vedere: Visualizzazione della scheda Sviluppatore )
Quindi, quando si verifica un cambiamento in una cella o condizione, verrà emesso un segnale acustico. Macro di esempio per chiamare il codice VBS sopra:=IF(C2<>C3,beepNow(),"")
In alternativa, posizionando il modulo in SS, è possibile inserirlo nel proprio Personal.xlsb. Ciò consentirebbe di avere il "segnale acustico" disponibile per tutti gli SMS. Per eseguirlo, modifica la barra di accesso rapido o inserisci un pulsante / forma per fare clic nel tuo SS e assegnare la macro ad esso.
La risposta postata da @ Ƭᴇcʜιᴇ007 è eccellente con un'eccezione che altri hanno commentato: il Beepmetodo si basa sull'altoparlante di bordo (e talvolta disabilitato) all'interno del computer e non utilizza gli altoparlanti, quindi potresti non sentire nulla.
Sto postando una soluzione alternativa basata su quella risposta. Se fossero stati coinvolti meno contenuti, avrei invece pubblicato un commento.
Ecco cosa uso per riprodurre un suono con VBA su Windows. Utilizza i normali altoparlanti del computer anziché quelli integrati e spesso disabilitati a cui si accede con il Beepmetodo.
Inizia con la risposta di @ Ƭᴇcʜιᴇ007. Passa Beepa questo:
PlaySound sound_Up
È possibile modificare l'audio passando sound_Upa un altro elemento dall'enumerazione (elenco) SoundType nel codice seguente come sound_Completeo sound_Notify.
Option Explicit
' --------------------------------------------------
' --------------------------------------------------
' REQUIRED DLL REFERENCE AND CONSTANTS
' --------------------------------------------------
' Reference to external procedure in DLL to play sounds
#If VBA7 Then
' 64-bit MS Office
Private Declare PtrSafe Function sndPlaySound32bit Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As LongPtr) As LongPtr
#Else
' 32-bit MS Office
Private Declare Function sndPlaySound32bit Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As LongPtr) As LongPtr
#End If
' --------------------------------------------------
' --------------------------------------------------
' CONSTANTS
' --------------------------------------------------
'
Public Const SOUND_DO_NOT_WAIT As String = "&H1"
Private Const SOUND_FILES_PATH As String = "C:\Windows\Media\"
' --------------------------------------------------
' --------------------------------------------------
' PUBLIC ENUMERATIONS
' --------------------------------------------------
'
Public Enum SoundType
sound_None = 0
sound_Up = 1
sound_Down = 2
sound_Attention = 3
sound_Blocked = 4
sound_Boop = 5
sound_Complete = 6
sound_Critical = 7
sound_Ding = 8
sound_Error = 9
sound_Exclamation = 10
sound_FastDown = 11
sound_Information = 12
sound_Notify = 13
sound_PhoneRing = 14
sound_RingOut = 15
sound_Stop = 16
sound_Tada = 17
sound_Tone = 18
End Enum
' --------------------------------------------------
' --------------------------------------------------
' PUBLIC METHODS
' --------------------------------------------------
'
Public Sub PlaySound(ByVal sound As SoundType)
' Plays a sound from a list (see the 'SoundType' Enum). Code execution continues
' while sound is playing.
Dim soundFileName As String
soundFileName = GetSoundFileName(sound)
If Not soundFileName = vbNullString Then
sndPlaySound32bit SOUND_FILES_PATH & soundFileName, SOUND_DO_NOT_WAIT
End If
End Sub
' --------------------------------------------------
' --------------------------------------------------
' PRIVATE DEPENDENCIES
' --------------------------------------------------
'
Private Function GetSoundFileName(ByVal soundToGet As SoundType) As String
' Returns a windows sound file name (not path) from a member of the custom
' 'SoundType' enumeration.
Dim fName As String
Select Case soundToGet
Case sound_Up: fName = "Speech On.wav"
Case sound_Down: fName = "Speech Off.wav"
Case sound_Attention: fName = "Windows Battery Low.wav"
Case sound_Blocked: fName = "Windows Pop-up Blocked.wav"
Case sound_Boop: fName = "Speech Misrecognition.wav"
Case sound_Complete: fName = "Windows Print complete.wav"
Case sound_Critical: fName = "Windows Critical Stop.wav"
Case sound_Ding: fName = "Windows Ding.wav"
Case sound_Error: fName = "Windows Error.wav"
Case sound_Exclamation: fName = "Windows Exclamation.wav"
Case sound_FastDown: fName = "Speech Sleep.wav"
Case sound_Information: fName = "Windows Information Bar.wav"
Case sound_Notify: fName = "notify.wav"
Case sound_PhoneRing: fName = "Windows Ringin.wav"
Case sound_RingOut: fName = "Windows Ringout.wav"
Case sound_Stop: fName = "chord.wav"
Case sound_Tada: fName = "tada.wav"
Case sound_Tone: fName = "Windows Balloon.wav"
Case Else: fName = vbNullString
End Select
GetSoundFileName = fName
End Function