Condividi:        

Formattazione condizionale con messaggio sonoro

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Formattazione condizionale con messaggio sonoro

Postdi ilcle » 07/03/17 13:11

Con Windows 7, in Excel 2010, vorrei che ad una formula con risultato “VERO”, la formattazione condizionale applicata restituisca, contemporaneamente al colore prescelto, anche un suono, per esempio un beep. Come fare? Grazie. Il.cle2326@gmail.com
ilcle
Newbie
 
Post: 7
Iscritto il: 07/03/17 12:59

Sponsor
 

Re: Formattazione condizionale con messaggio sonoro

Postdi alfrimpa » 07/03/17 15:23

Ciao ilcle

la formattazione condizionale applica solo formati e quindi non può generare un suono.

Forse ci si può arrivare per altra strada con il VBA ma devi allegare un file di esempio con dati e spiegazione di quello che vuoi fare/ottenere.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Formattazione condizionale con messaggio sonoro

Postdi ilcle » 07/03/17 19:30

Ciao alfrimpa, grazie per aver risposto.
L’esempio che sto postando spero posso essere chiaro e intuitivo:
Posizione iniziale:
1. Dispongo di due celle dove inserire dati sensibili;
a. I dati sensibili della prima cella, A6 nell’esempio, contengono dati variabili in evoluzione continua in quanto incollati automaticamente, in tempo reale; sono dunque dati sempre diversi che cambiano continuamente.
b. I dati sensibili della seconda cella, B6 nell’esempio, contengono dati fissi che non subiscono alcuna variazione.
2. In una cella qualsiasi, colonna D6 nell’esempio, inserisco una formula “SE” che mi restituisca “VERO” quando A6>B6.
3. In questo caso specifico, se la cella A6 contiene meno di 10, il risultato è “FALSO”; ma se, per effetto della variazione dei dati in A6, il valore inserito cambia da 5 a oltre 10, la formula inserita mi restituisce “VERO”, come nell’esempio.
4. In una cella qualsiasi, G6 nell’esempio, inserisco una formattazione condizionale configurando il riempimento della cella con il colore verde, qualora il risultato della formula inserita in D6 risulti essere “VERO”. Quindi: apparizione del verde se “VERO”, nessun colore se “FALSO”.
5. E qui sta il punto: quello che vorrei ottenere è l’apparizione in contemporanea sia del verde, sia di un messaggio sonoro tipo beep, ottenuto dall’apertura di un file sonoro residente nel disco C o residente nel file in uso.
Spero di aver rappresentato il problema in maniera esauriente. Ti ringrazio della disponibilità. Ciao, ilcle.
ilcle
Newbie
 
Post: 7
Iscritto il: 07/03/17 12:59

Re: Formattazione condizionale con messaggio sonoro

Postdi ricky53 » 08/03/17 01:14

Ciao,
NON è necessario l'utilizzo della formattazione condizionale per far emettere un BEEP.

Se la cella che condiziona il VERO di "D6" è la cella "A6" allora basta mettere un controllo sulla variazione del contenuto di questa cella e sul VERO in "D6".

Come procedere:
1) in un modulo copia il seguente codice
Codice: Seleziona tutto
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Sub Emetti_Beep()
    If Range("D6") Then
        Beep 1500, 500   ' Frequenza in KHz= 1500, Durata in millisecondi=500
' Per cambiare frequenza del suono e durata varia i due valori presenti dopo "Beep"
    End If
End Sub


2) nel "Foglio1" (facendo tasto destro sul tab avente nome Foglio1, visualizza codice) copia questo codice
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A6")) Is Nothing Then
        If Range("D6") Then
            Emetti_Beep
        End If
    End If
End Sub


Adesso fai in modo che in "D6" sia presente "VERO" e ....
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Formattazione condizionale con messaggio sonoro

Postdi Anthony47 » 08/03/17 12:56

Si puo' fare anche piu' di un beep...
Ad esempio prova a guardare quanto suggerito in questa discussione; viewtopic.php?f=26&t=76725#p435862

Potrai usare la funzione PlaySound (dopo averla creata) sia su formula che su vba.
Il codice completo, da inserire su un modulo standard del vba facendo in modo che la Declare sia in testa a tutto:
Codice: Seleziona tutto
Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" _
    (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long


Function PlaySound(Suono)
    If Application.CanPlaySounds Then
        Call sndPlaySound32(Suono, 0)
    End If
End Function

Poi in una formula Excel potrai scrivere, ad esempio:
Codice: Seleziona tutto
=SE(D6; playsound("C:\Documents and Settings\Il-Path-Completo\CamcorderStop.wav");"")

(D6 mi pare sia la cella che nel tuo caso restituisce Vero)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Formattazione condizionale con messaggio sonoro

Postdi ilcle » 08/03/17 18:12

Ciao Ricky53, ti ringrazio per la tua disponibilità.
Ho inserito i codici che mi hai suggerito. Temo, però, di aver dimenticato di dire che il mio sistema è a 64 bit per cui, quando procedo, la risposta è “Errore di compilazione: il codice del progetto deve essere aggiornato per l’utilizzo in sistemi a 64 bit. Esaminare e aggiornare le istruzioni Declare, quindi contrassegnarle con l’attributo PtrSafe.”
Ti sarei molto grato se mi riproponi i codici aggiornati, nel dettaglio. Approfittando della tua cortesia, ti vorrei chiedere anche se il file beep il cui nome in questo caso è 0385, deve essere necessariamente formato .wav o può anche essere mp3; inoltre il file deve essere residente in hard-disk o deve essere inserito in excel o in vba? Ti ringrazio nuovamente e resto in attesa di ulteriore risposta.
ilcle
Newbie
 
Post: 7
Iscritto il: 07/03/17 12:59

Re: Formattazione condizionale con messaggio sonoro

Postdi ilcle » 08/03/17 18:33

Ciao Antony, grazie per aver risposto.
Ho provato ad inserire i tuoi codici ma non riesco a comprendere come usare la funzione Playsound e come fare per crearla. Ricordo che il nome del file è 0385 e che risiede nell’hard-disk. Il mio sistema è a 64 bit e mi richiede di aggiornare le istruzioni declare. Inoltre non so dove inserire il codice che tu suggerisci di scrivere in una formula excel. Mi potresti dare cortesemente maggiori delucidazioni, più dettagliate? Ti ringrazio e attendo altra risposta.
ilcle
Newbie
 
Post: 7
Iscritto il: 07/03/17 12:59

Re: Formattazione condizionale con messaggio sonoro

Postdi ricky53 » 09/03/17 02:02

Ciao,
anche il mio SO è a 64 bit con Windows 7 Ultimate però utilizzo Office 2003 che è a 32 Bit e la "Function" era stata scritta per questa versione.

Tu che versione di Office utilizzi?

Comunque prova con
Codice: Seleziona tutto
Public Declare PtrSafe Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

al posto della precedente che ti avevo inviato

Il BEEP NON è un file ma solo un suono che viene prodotto dalla funzione che ti ho indicato.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Formattazione condizionale con messaggio sonoro

Postdi Anthony47 » 09/03/17 15:09

Guarda i chiarimenti di Ricky per l'uso della Beep, sopra.

Per quanto riguarda la proposta "PlaySound", se hai Excel a 64 bit allora devi modificare le declare come segue (riporto il codice complessivo, compatibile sia 32 che 64 bits):
Codice: Seleziona tutto
#If VBA7 Then
Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" _
    (ByVal lpszSoundName As String, ByVal uFlags As LongPtr) As LongPtr
#Else
    Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" _
    (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
#End If

Function PlaySound(Suono)
    If Application.CanPlaySounds Then
        Call sndPlaySound32(Suono, 0)
    End If
End Function

Operativamente, partendo dal tuo file excel:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato

A questo punto puoi usare la funzione PlaySound, come si usano tutte le altre funzioni Excel, con l'avvertenza che playSound vuole come parametro la stringa col path + nome del file .wav; ad esempio la formula che "suona" il file CamcorderStop.wav (o un altro qualsiasi suono wav presente nel tuo disco) che ti avevo gia' indicato come esempio:
Codice: Seleziona tutto
=SE(D6; playsound("C:\Documents and Settings\Il-Path-Completo\CamcorderStop.wav");"")


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Formattazione condizionale con messaggio sonoro

Postdi ilcle » 09/03/17 19:37

Ciao Ricky53,
Ho inserito la modifica che mi hai suggerito ed ora, grazie a Te, funziona regolarmente. La versione di office che uso è la 2010; il sistema operativo è Windows 7 Professional a 64 bit. Ma c’è un’altra cosa che vorrei cortesemente chiederti, perché ne ho l’esigenza:
Che procedura e che codice devo inserire se, invece di applicare la regola dell’esempio alla sola cella D6, la debbo applicare, invece, alle prime 10righe o quant’altro; cioè sul foglio come segue
1) cella a1: dato variabile; cella b1: dato fisso; cella d1 con formula “Se” (vero se a1>b1) emetti beep se d1 vero;

2) cella a2: dato variabile; cella b2: dato fisso; cella d2 con formula “Se” (vero se a2>b2) emetti beep se d2 vero;

3) cella a3: dato variabile; cella b3: dato fisso; cella d3 con formula “Se” (vero se a3>b3) emetti beep se d3 vero;

idem per un certo numero di righi. Ti ringrazio per la pazienza. Ciao.
ilcle
Newbie
 
Post: 7
Iscritto il: 07/03/17 12:59

Re: Formattazione condizionale con messaggio sonoro

Postdi ilcle » 09/03/17 19:39

Ciao Antony 47,
Ho provato con il tuo suggerimento ma non funziona. Ti riepilogo allora come ho proceduto:
1) Ho inserito per intero il contenuto da Te riportato in un modulo (Modulo 1);
2) Ho inserito, sempre nel modulo 1, di seguito a quanto inserito prima, (dove va inserito in realtà?), il codice successivo avendo cura di inserire il dato del file in mio possesso, così:
=SE(D6; playsound("C:\Users\Aldo\Music\Musica_wav\0385.wav");"")

Dove ho sbagliato? Ti ringrazio. Ciao.
ilcle
Newbie
 
Post: 7
Iscritto il: 07/03/17 12:59

Re: Formattazione condizionale con messaggio sonoro

Postdi ricky53 » 10/03/17 00:57

Ciao,
prova il codice seguente:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A3")) Is Nothing Then
        If Target.Address(0, 0) = "A1" And Range("D1") Or _
            Target.Address(0, 0) = "A2" And Range("D2") Or _
            Target.Address(0, 0) = "A3" And Range("D3") Then
            Emetti_Beep
        End If
    End If
End Sub


Codice: Seleziona tutto
Sub Emetti_Beep()
    If Range("D1") Or Range("D2") Or Range("D3") Then
        Beep 1500, 500   ' Frequenza in KHz= 1500, Durata in millisecondi=500
' Per cambiare frequenza del suono e durata varia i due valori presenti dopo "Beep"
    End If
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-19-21
Avatar utente
ricky53
Utente Senior
 
Post: 4588
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Formattazione condizionale con messaggio sonoro

Postdi Anthony47 » 10/03/17 01:38

Non perdere il messaggio di Ricky, sopra.

Ho inserito, sempre nel modulo 1, di seguito a quanto inserito prima, (dove va inserito in realtà?), il codice successivo avendo cura di inserire il dato del file in mio possesso, così:
Codice: Seleziona tutto
=SE(D6; playsound("C:\Users\Aldo\Music\Musica_wav\0385.wav");"")

Quest'ultima e' una formula, va inserita sul foglio di lavoro.

Con i nuovi esempi che hai fatto, la formula in D1 potrebbe essere
Codice: Seleziona tutto
=SE(A1>B1; playsound("C:\Users\Aldo\Music\Musica_wav\0385.wav");"")
Poi puo' essere copiata verso il basso per gestire le coppie A2/B2 e A3/B3.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Formattazione condizionale con messaggio sonoro

Postdi ilcle » 11/03/17 18:55

Grazie a tutti per la collaborazione, Ciao.
ilcle
Newbie
 
Post: 7
Iscritto il: 07/03/17 12:59


Torna a Applicazioni Office Windows


Topic correlati a "Formattazione condizionale con messaggio sonoro":


Chi c’è in linea

Visitano il forum: Nessuno e 27 ospiti