Condividi:        

excel 2007 variabili dentro formula

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 2007 variabili dentro formula

Postdi scacco al re » 07/12/11 07:19

Ho questa macro che mi calcola la media
e funziona
Codice: Seleziona tutto
Sub macro_media()
    Dim rg As Integer
    Dim cl As Integer
    Dim pr As Integer
    Dim ul As Integer
    pr = 4
    ul = Range("valori!A" & Rows.Count).End(xlUp).Row
    rg = 4
    cl = 3
    Sheets("medie").Select
    Cells(cl, rg).FormulaLocal = "=media(valori!C4:C37)"
    Cells(cl, rg + 1).FormulaR1C1 = "=ROUND(+(RC[-1]+86)/33.3333,1)"
End Sub


ora volevo sostiuire nella formula media il 4 con la variabile pr e il 37 con la variabile ul, ma ho fatto molteplici tentativi e non ci riesco
scacco al re
scacco al re
Utente Senior
 
Post: 524
Iscritto il: 10/05/02 19:18
Località: Sestri Levante

Sponsor
 

Re: excel 2007 variabili dentro formula

Postdi maxmula » 07/12/11 10:01

Non credo di aver capito bene...

Allora: tu nel foglio calcoli la media tra le celle di colonna C, righe da 4 a 37; Vorresti invece rendere "dinamica" la formula, indicando di volta in volta le celle di inizi e fine dell'intervalo da mediare.
E' così?

Se sì, la soluzione potrebbe essere questa:

Codice: Seleziona tutto
Cells(cl, rg).FormulaLocal = "=media(valori!C" & pr & ":C" & ul)"


Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: excel 2007 variabili dentro formula

Postdi maxmula » 07/12/11 10:03

Rettifico:
Codice: Seleziona tutto
Cells(cl, rg).FormulaLocal = "=media(valori!C" & pr & ":C" & ul & ")"


MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: excel 2007 variabili dentro formula

Postdi scacco al re » 07/12/11 10:13

Grazie, sai c'ero molto vicino sbagliavo a mettere i doppi apici....
scacco al re
scacco al re
Utente Senior
 
Post: 524
Iscritto il: 10/05/02 19:18
Località: Sestri Levante

Re: excel 2007 variabili dentro formula

Postdi Anthony47 » 07/12/11 11:24

Pero' mi pare che ti stai complicando inutilmente la vita: visto che vuoi calcolare in D4 la media dei valori presenti da C4 in giu' puoi anche scrivere direttamente
Codice: Seleziona tutto
 Cells(3,4).FormulaLocal = "=media(Sheets2!C4:C65000)"

Infatti nel calcolo della media eventuali celle vuote saranno ignorate.
Idem sulla formula dell' arrotondamento:
Codice: Seleziona tutto
Cells(3,5).Formula = "=ROUND(D4)"

A meno che la macro pubblicata fosse solo un esperimento.

Ciao

Ps: e perche' scrivi rg = 4 / cl = 3 se poi rg e' usato come "colonna" e cl come "riga"? Ti piace tenderti delle trappole qua e la?
Avatar utente
Anthony47
Moderatore
 
Post: 19221
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel 2007 variabili dentro formula

Postdi scacco al re » 07/12/11 12:03

non mi sto tirando dei trabocchetti...
fa tutto parte del progetto che sto imbastendo passo passo...
la macro finale (non questa che ancora parziale) dovrebbe scrivere la media e altre formule fino a 120 righe (120 giorni o 4 mesi) del foglio valori e inserire i risultati in determinate celle del foglio medie, allo scoccare del 121 giorno si scende di una riga sul foglio medie e si ricomincia il loop di 120 righe del foglio valori, e così via...
un po' contorto...
scacco al re
scacco al re
Utente Senior
 
Post: 524
Iscritto il: 10/05/02 19:18
Località: Sestri Levante

Re: excel 2007 variabili dentro formula

Postdi ricky53 » 07/12/11 12:31

Ciao,
però Anthony intendeva dire che hai invertito (nelle tue istruzioni) la varibialee che conteneva le righe con quella che conteneva la colonne ----->> Controlla quanto ti riporto del tuo codice:
Codice: Seleziona tutto
    ul = Range("valori!A" & Rows.Count).End(xlUp).Row  ----->> contiene l'ultima riga con dati
    cl = 3 ------>> è la colonna
    Cells(cl, rg).FormulaLocal = "=media(valori!C4:C37)"
    Cells(cl, rg + 1).FormulaR1C1 = "=ROUND(+(RC[-1]+86)/33.3333,1)"

I parametri di "Cells" sono
prima la riga
e
poi la colonna,
quindi:
Codice: Seleziona tutto
Cells(rg, cl).xxxxxxxx
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-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel 2007 variabili dentro formula

Postdi scacco al re » 07/12/11 12:55

hai ragione, funzionava perchè gli errori (inversioni) che ho fatto erano due e quindi si annullavano...
la colonna che voglio io è la 4 (D) e la riga è la 3
scacco al re
scacco al re
Utente Senior
 
Post: 524
Iscritto il: 10/05/02 19:18
Località: Sestri Levante


Torna a Applicazioni Office Windows


Topic correlati a "excel 2007 variabili dentro formula":


Chi c’è in linea

Visitano il forum: Nessuno e 76 ospiti