Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Worksheet Change

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

Worksheet Change

Postdi miko » 29/03/13 13:09

buongiorno a tutti,
mediante una macro1 vengono inseriti dei valori distinti prima nella cella E3 e poi nella cella G3.
quando la E3 si riempie devo prelevare il suo valore, trasferirlo in una "macro calcolo" ed inserire il risultato
della "macro calcolo" nella cella F3.
successivamente la macro1 riempie la cella G3 devo prendere il suo valore, trasferirlo nella stessa "macro calcolo" ed inserire
il risultato della "macro calcolo" nella cella H3.
poi il procedimento deve ritornare alla macro principale, macro1.
devo quindi usare la stessa "macro calcolo" ma con due differenti valori.
per prendere i valori ho pensato all'evento change e realizzato questa macro inserita nel modulo del foglio:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Target, Me.Range("E3:E3,G3:G3")) Is Nothing Then Exit Sub
MsgBox Range("E3").Value  '"macro calcolo" <<<<<<<<<<<
MsgBox Range("E3").Value  '"macro calcolo"<<<<<<<<<<<
End Sub

l'evento change funziona, ma non riesco a prelevare volta per volta i valori di E3 e di G3
per inseririli nella "macro calcolo" e ad inserire i risultati in F3 e H3.
ciao e grazie
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: Worksheet Change

Postdi Anthony47 » 29/03/13 13:38

Nel processo che hai descritto non hai bisogno di usare l' evento WorksheetChange; infatti se la tua Macro1 carica dei valori in E3, G3 etc ti bastera' inserire, dopo l' istruzione che carica quelle celle, inserire l' istruzione Call Calcola; la macro Calcola fara' le sue cose e alla fine restituira' il controllo a Macro1.
Comunque se vuoi usare Worksheet_Change, metti la stessa Call Calcola dopo il primo controllo (quello con Intersect, dove ora hai inserito il Msgbox); ma secondo me cosi' si complicano gli affari semplici...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Worksheet Change

Postdi ricky53 » 29/03/13 14:17

Ciao,
per esempio potresti utilizzare uno schema del tipo
Codice: Seleziona tutto
Sub Macro1()
' ..... calcoli vari
    TuoCalcolo = 10
    Range("E3").Value = TuoCalcolo ' Qui ci sono i calcoli che impostano la cella "E3"
    Range("F3") = FUNZ_Calcolo(Range("E3").Value)
    MsgBox [F3]
' ..... altri calcoli
   
    TuoCalcolo_1 = 15
    Range("G3").Value = TuoCalcolo_1 ' Qui ci sono i calcoli che impostano la cella "G3"
    Range("H3") = FUNZ_Calcolo(Range("G3").Value)
    MsgBox [H3]

' ..... ulteriori calcoli
End Sub

Function FUNZ_Calcolo(Dato)
    FUNZ_Calcolo = 100 * Dato
End Function
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Worksheet Change

Postdi miko » 26/05/13 11:15

buon giorno,
mi ero perso in un bicchiere d'acqua, ma le indicazioni di anthony e la struttura della macro suggerita da ricky
mi hanno permesso di risolvere il problema;
è sufficiente inserire , come suggerito da anthony ed evidenziato da ricky nella sua macro,
una variabile che assume un diverso valore prima delle call.
grazie dei vostri suggerimenti, ed ancora scuse del ritardo.
saluti
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: Worksheet Change

Postdi ricky53 » 26/05/13 23:27

Ciao,
bene non è mai troppo tardi.

Alla prossima e ... non ti fare attendere due mesi per la conferma di quanto ti verrà proposto.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Worksheet Change

Postdi miko » 30/05/13 18:55

salve,
non avevo notato il tuo ultimo inserimento;
mi rendo conto che anche per altri utenti interessati è noioso attendere la conferma dell'esito
di una soluzione, perciò in futuro cercherò di abbreviare i tempi di risposta .
grazie ancora e saluti
windows xp-office 2003
miko
Utente Senior
 
Post: 422
Iscritto il: 29/12/09 10:44

Re: Worksheet Change

Postdi ricky53 » 30/05/13 20:23

Ciao,
alla tua prossima necessità e buon proseguimento.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "Worksheet Change":


Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti

cron