Condividi:        

[EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

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

[EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 05/08/10 14:00

Ciao ragazzi,
premessa
leggendo qualche topic del forum ne ho trovati alcuni interessanti che parlano di come usare i BEEP e PLAYSOUND, mi hanno riportato indietro nel tempo e ricordo che all'epoca usavo il foglio elettronico di FRAMEWORK 3, per usare i BEEP con una serie di numeri (le frequenze).
Così seguendo i vostri consigli, ho provato a tirare giù 2 macro, che per la maggior parte (99,9%) :D :D , sono frutto del vostro sapere.
le macro sono le seguenti:
la prima
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
    Select Case Range("A1")
        Case 0
            PlaySoundDO1
        Case 1
            PlaySoundRE
        Case 2
            PlaySoundMI
        Case 3
            PlaySoundFA
        Case 4
            PlaySoundSOL
        Case 5
            PlaySoundLA
        Case 6
            PlaySoundSI
        Case 7
            PlaySoundDO2
    End Select
End If
If Target.Address = "$B$1" Then
    Select Case Range("B1")
        Case 0
            PlaySoundDO1
        Case 1
            PlaySoundRE
        Case 2
            PlaySoundMI
        Case 3
            PlaySoundFA
        Case 4
            PlaySoundSOL
        Case 5
            PlaySoundLA
        Case 6
            PlaySoundSI
        Case 7
            PlaySoundDO2
    End Select
End If
If Target.Address = "$C$1" Then
    Select Case Range("C1")
        Case 0
            PlaySoundDO1
        Case 1
            PlaySoundRE
        Case 2
            PlaySoundMI
        Case 3
            PlaySoundFA
        Case 4
            PlaySoundSOL
        Case 5
            PlaySoundLA
        Case 6
            PlaySoundSI
        Case 7
            PlaySoundDO2
    End Select
End If
If Target.Address = "$D$1" Then
    Select Case Range("D1")
        Case 0
            PlaySoundDO1
        Case 1
            PlaySoundRE
        Case 2
            PlaySoundMI
        Case 3
            PlaySoundFA
        Case 4
            PlaySoundSOL
        Case 5
            PlaySoundLA
        Case 6
            PlaySoundSI
        Case 7
            PlaySoundDO2
    End Select
End If
If Target.Address = "$E$1" Then
    Select Case Range("E1")
        Case 0
            PlaySoundDO1
        Case 1
            PlaySoundRE
        Case 2
            PlaySoundMI
        Case 3
            PlaySoundFA
        Case 4
            PlaySoundSOL
        Case 5
            PlaySoundLA
        Case 6
            PlaySoundSI
        Case 7
            PlaySoundDO2
    End Select
End If
If Target.Address = "$F$1" Then
    Select Case Range("F1")
        Case 0
            PlaySoundDO1
        Case 1
            PlaySoundRE
        Case 2
            PlaySoundMI
        Case 3
            PlaySoundFA
        Case 4
            PlaySoundSOL
        Case 5
            PlaySoundLA
        Case 6
            PlaySoundSI
        Case 7
            PlaySoundDO2
    End Select
End If
If Target.Address = "$G$1" Then
    Select Case Range("G1")
        Case 0
            PlaySoundDO1
        Case 1
            PlaySoundRE
        Case 2
            PlaySoundMI
        Case 3
            PlaySoundFA
        Case 4
            PlaySoundSOL
        Case 5
            PlaySoundLA
        Case 6
            PlaySoundSI
        Case 7
            PlaySoundDO2
    End Select
End If
If Target.Address = "$H$1" Then
    Select Case Range("H1")
        Case 0
            PlaySoundDO1
        Case 1
            PlaySoundRE
        Case 2
            PlaySoundMI
        Case 3
            PlaySoundFA
        Case 4
            PlaySoundSOL
        Case 5
            PlaySoundLA
        Case 6
            PlaySoundSI
        Case 7
            PlaySoundDO2
    End Select
End If
End Sub

lo applicata nel VBA del Foglio 1, che mi seleziona un range di 8 caselle, contenente dei numeri.
La 2 macro:
Codice: Seleziona tutto
'This function declaration must be entered onto a single line.
Declare Function sndPlaySound32 Lib "winmm.dll" Alias "sndPlaySoundA" _
    (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Sub PlaySoundDO1()
    If Application.CanPlaySounds Then
        'Substitute the path and filename of the sound you want to play
        Call sndPlaySound32("c:\documenti\....\Documenti\.....\......\DO1.wav", 0)
    End If
End Sub

mi esegue il file .wav., copiata in 8 moduli, una per nota
richesta
Ho 3 domande per voi.
1. nel vba di excel il BEEP in uso ha la possibilità di cambiare la frequenza??
Se SI.
2. Quali sono e come impostare i numeri usati dal BEEP?? (usando anche i bemolle e i diesis :D ;) )
3. Potete aiutarmi con una macro che legge i numeri nel foglio (tutto il foglio) e li esegue emettendo il BEEP a seconda del numero scritto, la frequenza del beep chiamato?
Come sempre, vi ringrazio,
un abbraccio
bianco55
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Sponsor
 

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi Flash30005 » 05/08/10 16:07

Puoi usare la funzione Beep

Codice: Seleziona tutto
Public Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Sub Melodia()
x = Beep(700, 1000)
End Sub

I parametri nella parentesi (freq, durata)
Puoi calcolare le righe o colonne a seconda della distribuzione di dati
e con un ciclo for... next scansionare i valori che diverranno suoni...

...e se proprio non è una MeLoDia, SeLoTenga così :lol:

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 05/08/10 21:03

Ciao Flash,
allora per il momento
MeLaPrendo e MeLaTengo così :lol: :lol: ;) ,
per il calcolo del range ho scritto questa
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:Z")) Is Nothing Or Selection.Count >= 8 Then Exit Sub
If Target.Value >= 0 And Target < 8 Then Melodia
End Sub
,
invece per i beep che corrispondo alle note e per il For Next, sono in alto mare. :cry: :cry: :cry:
Ho corretto la tua da Public a Private ;).
In attesa, un abbraccio
ciao
bianco55 Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 05/08/10 23:15

Ciao Flash,
in attesa di aiuto, ho provato a tirare giu anche questa con il for next
Codice: Seleziona tutto
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
-----------------------------------------------------------
Sub Melodia()
x = Beep(900, 1000)
End Sub
------------------------------------------------------------
Sub Melodia1()
x = Beep(800, 1000)
End Sub
-----------------------------------------------------------------
Sub Melodia2()
x = Beep(700, 1000)
End Sub
----------------------------------------------------------------
Sub Melodia3()
x = Beep(600, 1000)
End Sub
-----------------------------------------------------------------
Sub Melodia4()
x = Beep(500, 1000)
End Sub
--------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:Z")) Is Nothing Or Selection.Count >= 8 Then Exit Sub
If Target.Value >= 0 Then
Call Melodia
If Target.Value = 1 Then
Call Melodia1
If Target.Value = 2 Then
Call Melodia2
If Target.Value = 3 Then
Call Melodia3
If Target.Value = 4 Then
Call Melodia4
For x = 1 To 1000
a = a
Next x
End Sub

puoi rivederla e correggerla,
grazie
ciao
bianco55Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi Flash30005 » 06/08/10 01:19

Apri una cartella nuova
nel foglio1 da A1 fino a dove vuoi tu metterai la frequenza ad es:
    A1 = 900
    A2 = 800
    A3 = 700
    A4 = 600
    A5 = 700
    A6 = 800
    A7 = 900
    A8 = 1000
    ...
In B1 fino a B8 (nel mio caso) la durata in millisecondi
    B1 = 1000
    B2 = 500
    B3 = 1000
    B4 = 500
    B5 = 500
    B6 = 1000
    B7 = 500
    B8 = 1000
    ...
In un modulo metterai questo codice
Codice: Seleziona tutto
Public Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
Sub Melodia()
UR = Worksheets("Foglio1").Range("A" & Rows.Count).End(xlUp).Row
For RR = 1 To UR
x = Beep(Range("A" & RR).Value, Range("B" & RR).Value)
Next RR
End Sub

Avvia la Melodia
(ma ti avverto, non sono musicista :lol: )

download file



Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 06/08/10 21:11

Ciao Flash,
allora, questo è il risultato del tuo aiuto,
http://rapidshare.com/files/411449219/NOTE_MUSICALI4.zip
spero che ti piaccia. :lol: :lol: e che magari questo piccolo progetto si sviluppi
anche con l'aiuto degli altri amici del forum, chissa?, magari tireremo fuori un orchestra :lol: :lol:
comunque ti ringrazio e rimango in attesa per eventuali migliorie.
ciao ciao
a presto
bianco55

P.S. A chiunque sia interessato, chi può, allegare anche qualche spartito con i nomi delle note.
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi Flash30005 » 09/08/10 17:37

Complimenti!

Vedendo che hai corredato il foglio con la tabella frequenze rispetto ad ogni nota e codice nota
mi viene un'idea da realizzare per gli appassionati...
Se si potessero avere in excel delle tabelle (spartiti) con le sole note, o loro codici nota,
sarebbe sufficiente una macro per compilare la colonna A in funzione della canzone da suonare
(la macro ricercherà la nota della canzone e inserirebbe la relativa frequenza trovata in tabella),
occorrerebbe avere anche la durata della nota in quanto una croma o semicroma disegnata su uno spartito non fornirebbe alcuna informazione alla macro convertitrice.

Comunque hai lanciato l'idea e... rimaniamo ad aspettare ;)

Ciao e buone ferie a tutti
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 09/08/10 18:53

Ciao Flash,
ti ringrazio dei complimenti, anch'io non sono musicista è stato solo un pessimo arrangiamento.
Per la durata e la frequenza esatta delle note ho trovato 4 link interessanti:
1. http://macosa.dima.unige.it/lausci/exp/musica.htm
2. http://it.wikibooks.org/wiki/Teoria_musicale/Durata_e_figure_musicali
3.http://it.wikipedia.org/wiki/Durata_di_una_nota_musicale
4.http://pls.dima.unige.it/Logaritmo/Berto/musica.htm
da leggere attentamente e spero che ti aiutino a sviluppare la tua idea e l'interesse di qualche amico appassionato.
Come sempre un grande abbraccio.
bianco55Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 02/09/10 10:33

Ciao ragazzi,
mi scuso se ho riuppato il topic ma mi occorreva un "piccolo aiuto" e/o suggerimento, con uno dei miei progetti bislacchi, sto modificando una vecchia macro che dovrebbe fare questo: - leggere la nota nella colonna A, suonare la nota letta nella colonna C e mettere il colore corrispondente nella colonna D, riga per riga, nota per nota.

Codice: Seleziona tutto
sub note e colori()
For Each cell_in_loop In Range("A1:a125")
  If cell_in_loop.Value = "DO0" Then
    With cell_in_loop.Offset(0, 3).Interior
        .ColorIndex = 1
        .Pattern = xlSolid
    End With
    x = Beep("16,352", 500)
    End If
    If cell_in_loop.Value = "DO#0" Then
    With cell_in_loop.Offset(0, 3).Interior
        .ColorIndex = 2
        .Pattern = xlSolid
    End With
    x = Beep("17,324", 500)
    End If
next
end sub

nel codice che leggete ho inserito solo le prime due note, e credo di aver incominciato a tirar giu una macro "sporca" a dispetto di come ho creato la tabella :
colonna A: Nome della Nota, per es.: DO0
colonna B: Sigla della Nota, "" "" : C0
colonna C: Frequenza della Nota : 16,352
colonna D: Colore della Nota : ▄▄ ,
se la macro è giusta così come ho incominciato a scriverla "vabbè pazienza".
nella macro che ho postato in realta la colonna C non viene letta ed emette i beep inseriti nel codice,
potete aiutarmi correggendo la macro facendo in modo che legga la nota della colonna A e/o la sigla della colonna B ed emetta il beep della nota letta leggendo la frequenza della colonna C.
Come sempre un grazie ed un abbraccio.
bianco55
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi Flash30005 » 02/09/10 12:50

prova questa
Codice: Seleziona tutto
Sub noteecolori()
UR = Range("A" & Rows.Count).End(xlUp).Row
Range("D1:D" & UR).Clear
For Each cell_in_loop In Range("A1:a" & UR)
  If cell_in_loop.Value = "DO0" Then
    cell_in_loop.Offset(0, 3).Interior.ColorIndex = 1
       x = Beep(cell_in_loop.Offset(0, 2).Value, 500)  '<<< codice corretto
    'x = Beep("16,352", 500)  '<<<< (lasciare commentato o cancellare) attenzione qui stiamo parlando di 16 Hz non percepibili da orecchio umano
    End If
    If cell_in_loop.Value = "DO#0" Then
    cell_in_loop.Offset(0, 3).Interior.ColorIndex = 2
       x = Beep(cell_in_loop.Offset(0, 2).Value, 500) '<<< codice corretto
    'x = Beep("17,324", 500)   '<<<<idem come sopra
    End If
Next
End Sub



Fai attenzione al formato numerico che inserisci nella colonna C come valore frequenze
perché quelle postate da te corrispondono a pochi Hertz, vedi nota nel codice macro

Inoltre per evitare tante condizioni (If) potresti usare una "Select Case" vedi help in linea
fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 02/09/10 14:19

Ciao Flash,
grazie 10.000 per le correzioni,
a riguardo delle frequenze inserite nell'esempio erano "tali", solo un esempio :) ;), le note udibili vanno da DO3 a DO8 poi diventano ultrasuoni ed il pc invece di fare beep fa crash :lol: :lol: ,
per il Select Case ti chiedo un ulteriore aiuto, io per la grammatica in VBA sono una frana :-? :oops: , ma con un esempio riesco di più, puoi farmi vedere la conversione da un if ad un select case???
se mi converti l'if postato in codice:
Codice: Seleziona tutto
If cell_in_loop.Value = "DO#0" Then
    With cell_in_loop.Offset(0, 3).Interior.ColorIndex = 2
    End With
    x = Beep(cell_in_loop.Offset(0, 2).Value, 500)
    End If
, poi procedo con gli altri.
Grazie come sempre,
bianco55
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi Flash30005 » 02/09/10 15:03

Non dovresti mettere With e End With in quanto è una sola riga di formattazione, relativa al solo colore
(si usa per evitare di ripetere ad ogni riga relativa alla formattazione l'intera parte di codice)
"cell_in_loop.Offset(0, 3).Interior"
nella mia macro infatti non c'era

Codice: Seleziona tutto
If cell_in_loop.Value = "DO#0" Then
    With cell_in_loop.Offset(0, 3).Interior.ColorIndex = 2  '<<< non occorre
    End With      '<<<< non occorre
    x = Beep(cell_in_loop.Offset(0, 2).Value, 500)
    End If

quindi più valido così

Codice: Seleziona tutto
If cell_in_loop.Value = "DO#0" Then
        cell_in_loop.Offset(0, 3).Interior.ColorIndex = 2
         x = Beep(cell_in_loop.Offset(0, 2).Value, 500)
   End If


Per una macro con Select Case puoi usare questo esempio continuando con tanti "Case" quanti ne occorrono

Codice: Seleziona tutto
Sub noteecoloriCase()
UR = Range("A" & Rows.Count).End(xlUp).Row
Range("D1:D" & UR).Clear
For Each cell_in_loop In Range("A1:a" & UR)
Nota = cell_in_loop.Value
Select Case Nota
Case "DO0"  '<<< primo caso
    cell_in_loop.Offset(0, 3).Interior.ColorIndex = 1
       x = Beep(cell_in_loop.Offset(0, 2).Value, 500)
Case "DO#0"  '<<< secondo caso
    cell_in_loop.Offset(0, 3).Interior.ColorIndex = 2
       x = Beep(cell_in_loop.Offset(0, 2).Value, 500)
'Case ...    <<< terzo caso etc...
Case Else    ' alla fine altri valori (riga che puoi omettere)
 MsgBox "Non ci sono Note Valide" '<<<<  omettere se non serve
End Select
Next
End Sub


Fai sapere se Ok
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 02/09/10 20:21

Ciao Flash,Immagine
ti ringrazio, come sempre impagabile per la spiegazione, la macro tutto OK.
Ciao a pré
bianco55 Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi Flash30005 » 02/09/10 21:21

Una cosa mi è rimasta dubbia :roll:
Nella nostra prima macro avevamo anche una colonna che determinava la durata (ricordi?)
nella macro da te postata la durata è sempre 500 millisecondi
Codice: Seleziona tutto
x = Beep(cell_in_loop.Offset(0, 2).Value, 500)  '<<<< qui

Volendo puoi dedicare una colonna per la durata di ogni nota con lo stesso tipo di codice usato per la frequenza assegnando il corretto l'offset ;)

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 02/09/10 22:14

Ciao Flash,
In mente ho un piccolo progetto che sto cercando di sviluppare pezzo pezzo e ci sto arrivando per gradi avevo tralasciato momentaneamente la colonna della frequenza, all'inizio del topic abbiamo cominciato con frequenza e durata, poi ho aggiunto nome della nota e simbolo della nota (tralasciandolo momentaneamente), dopo ho voluto inserire una colonna colori e come già sappiamo per i primi 56 ho usato .Interior.ColorIndex, per i successivi colori ho usato .Interior.Color = 10830535 * Rnd(), che per il momento mi fornisce una gamma di colori diversi nota per nota, peccato che ogni volta che viene letta la nota cambiano i colori, sò già che questo accade per via del RND(), ma non sapevo come fare per aumentare la gamma dei colori.
Vorrei sviluppare un progetto in grado di leggere in 4 modi diversi le colonne ed emetta comunque il beep corrispondente, come avevamo sviluppato all'inizio:
1° modo
colonna A (frequenza), colonna B(durata)
2° modo
colonna A (nome della nota), colonna B (durata)
3°modo
colonna A (sigla della nota, per i spartiti in inglese e tedesco), colonna B (durata) (basta sostituire il nome della nota con la sigla della nota)
4° modo
qui apro una parentesi (spero di non preso per stupido o fuori di testa)
colonna A (colore della nota), colonna B (durata)
abbinare il colore alle note, mi è venuta in mente ricordando un vecchio film di fanta (incontri ravvicinati.......),
credo che anche questo possa avere una sua utilità, per ulteriori altri progetti.
Come sempre ti ringrazio per la tua spendita disponibilità.
Ciao a prè
bianco55
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi Flash30005 » 02/09/10 22:41

Per l'ultimo progetto ricorda solo che i colori in excel sono limitati (53) e le note?
12 base per ogni scala
Quindi c'è carenza di colori
Ti passo una macro che ti fornirà un colore per ogni riga
Codice: Seleziona tutto
Sub Colori()
For C = 1 To 53
Cells(C, 1).Interior.ColorIndex = C
Next C
End Sub

Oppure questa che assegnerà un colore per ogni valore trovato sulla cella
Codice: Seleziona tutto
Sub ColNum()
Ure = Cells(Rows.Count, 1).End(xlUp).Row
For C = 1 To Ure
VC = Cells(C, 1).Value Mod 53
If VC = 0 Then VC = 53
Cells(C, 1).Interior.ColorIndex = VC
Next C
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 02/09/10 22:55

Ciao Flash,
chiedo scusa , ma vista l'ora tarda e il sonno Immagine che avanza, aggiornando l'anteprima alla correzione della risposta a parziale correzione della risposta precedente, ho notato che c'è stato un accavallamento delle risposte, comunque,
bianco dice:
tralasciato momentaneamente la colonna della frequenza,
intendevo scriveve durata
ad incremento della risposta precedente, forse intendi dire cosi?
Codice: Seleziona tutto
x = Beep(cell_in_loop.Offset(0, 2).Value, Range("C" & RR).Value)


Ciao a presto e ancora grazie,
bianco55Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi Flash30005 » 02/09/10 23:18

No, perche RR è una variabile inesistente nell'ultima macro postata (con "For Each")
quindi assegnando la colonna "D" per la durata (visto che la C è per i colori)
dovresti mettere questo codice
Codice: Seleziona tutto
       x = Beep(cell_in_loop.Offset(0, 2).Value, cell_in_loop.Offset(0, 4).Value) '<<< 4 è la colonna "D"

Oppure mettere la durata sulla colonna "C" con
Codice: Seleziona tutto
x = Beep(cell_in_loop.Offset(0, 2).Value, cell_in_loop.Offset(0, 3).Value)

ma la riga relativa al colore sarà:
Codice: Seleziona tutto
Case "DO0"  '<<< primo caso
    cell_in_loop.Offset(0, 4).Interior.ColorIndex = 1 '<<<< nella colonna D
       x = Beep(cell_in_loop.Offset(0, 2).Value, cell_in_loop.Offset(0, 3).Value)  '<<<Durata nella colonna C
Case "DO#0"  '<<< secondo caso
'...


Buonanota
Ops! Buonanotte
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi biancocandido55 » 03/09/10 13:56

Ciao Flash,Immagine
effettuate correzioni ed adattamenti, queste sono le prime note della nott....sonata :
Ronf zz - ronf zz - ro ro ro ronf zz zz :lol: :lol: (scherzetto), :lol: :lol: ,
tutto Oki,
grazie come sempre bianco
Immagine
biancocandido55
Utente Senior
 
Post: 305
Iscritto il: 03/03/06 10:15

Re: [EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI

Postdi By Sal » 08/08/12 19:31

Ciao, scrivo poco, ma vi seguo ogni tanto, un saluto a Tony, sarei interessato a recepire i 2 file proposti in questa discussione di Flash e Biancocandido, che purtroppo Mediafire ha preso la brutta l'abitudine di cancellarli dopo un certo tempo.

mica li avete conservati in qualche archivio?.

sto realizzando un chitarra con accordi, per il momento, ma mi serve il suono e vorrei vedere tramite i vostri file se è possibile realizzarlo.

Ciao By Sal
A rileggerci By Sal
Avatar utente
By Sal
Utente Junior
 
Post: 83
Iscritto il: 27/08/06 14:40


Torna a Applicazioni Office Windows


Topic correlati a "[EXCEL - VBA] Eseguire NUMERI e NOTE MUSICALI":


Chi c’è in linea

Visitano il forum: Nessuno e 54 ospiti