Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

macro per copiare formula con variazione progressiva

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

macro per copiare formula con variazione progressiva

Postdi martin » 16/04/10 15:04

ciao a tutti
potete aiutarmi a risolvere grande problema??
dovrei copiare questa formula sulla cella w10 di 200 pagine
=CERCA(F2;riepilogo!A18:A22;riepilogo!B18:B22)+SOMMA.SE(riepilogo!B1:c1;F2;riepilogo!B15:c15)
ad ogni pagina pero le lettera segnata in rosso dovebbre incrementarsi di uno es. b,c,d,...etc
ho provato questa macro
Sub formul2()
For a = 6 To Worksheets.Count
Worksheets(a).Select
Range("w10").Select
ActiveCell.FormulaR1C1 = _
"=LOOKUP(R[-8]C[-17],riepilogo!R[8]C[-22]:R[12]C[-22],riepilogo!R[8]C[-21]:R[12]C[-21])+SUMIF(riepilogo!R[-9]C[-21]:R[-9]C[-17],R[-8]C[-17],riepilogo!R[5]C[-21]:R[5]C[-17])"
Next a
End Sub
dovrebbero incrementarsi le celle evidenziate tipo cosi:
' ( '"=LOOKUP(R[-8]C[-17],riepilogo!R[8]C[-22]:R[12]C[-22],riepilogo!R[8]C[-21]:R[12]C[-21])+SUMIF(riepilogo!R[-9]C[-21]:R[-9]C[-18],R[-8]C[-17],riepilogo!R[5]C[-21]:R[5]C[-18])")

ho cercato di sostituire le celle evidenziate con (-11+a) ma mi da errore sbagliero in qualcosa .!!!!
grazie martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04

Sponsor
 

Re: macro per copiare formula con variazione progressiva

Postdi Anthony47 » 17/04/10 01:37

La formula che vuoi inserire e' una stringa, e all' interno della stringa non puoi fare una somma tra un numero e una variabile; devi pertanto spezzare la tua stringa in tanti segmenti che "concatenerai" successivamente; qualcosa come ActiveCell.FormulaR1C1 = "=LOOKUP(R[-8]C[-17],Riepilogo!R[8]C[-22]:R[12]C[-22],Riepilogo!R[8]C[-21]:R[12]C[-21])+SUMIF(Riepilogo!R[-9]C[-21]:R[-9]C[-" & 20 + a & "],R[-8]C[-17],Riepilogo!R[5]C[-21]:R[5]C[-" & 20 + a & "])"

(gli indici di riga/colonna non sono corretti, devi mappare la modifica sulla tua formula, che non ho capito quale e')

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: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro per copiare formula con variazione progressiva

Postdi martin » 17/04/10 11:00

Anthony47 ha scritto:La formula che vuoi inserire e' una stringa, e all' interno della stringa non puoi fare una somma tra un numero e una variabile; devi pertanto spezzare la tua stringa in tanti segmenti che "concatenerai" successivamente; qualcosa come ActiveCell.FormulaR1C1 = "=LOOKUP(R[-8]C[-17],Riepilogo!R[8]C[-22]:R[12]C[-22],Riepilogo!R[8]C[-21]:R[12]C[-21])+SUMIF(Riepilogo!R[-9]C[-21]:R[-9]C[-" & 20 + a & "],R[-8]C[-17],Riepilogo!R[5]C[-21]:R[5]C[-" & 20 + a & "])"

(gli indici di riga/colonna non sono corretti, devi mappare la modifica sulla tua formula, che non ho capito quale e')

Ciao



ciao anthony47
allora ho risolto ...!!! la modifica nella mia macro è proprio quella che mi hai dato.
con :R[-9]C[-" & 23 - a & "] ho inserito la formula sulla cella w10 dal foglio n.6 al 23
con :R[-9]C[" & a - 23 & "] ho inserito la formula sulla cella w10 dal foglio n.24 al 200

la formula creata sulla cella w10 di ogni pagina alla fine è stata questa in sequenza cambiando nella parte evidenziata:
'=CERCA(F2;riepilogo!A18:A22;riepilogo!B18:B22)+SOMMA.SE(riepilogo!B1:F1;F2;riepilogo!B15:F15) 'foglio6
'=CERCA(F2;riepilogo!A18:A22;riepilogo!B18:B22)+SOMMA.SE(riepilogo!B1:g1;f2;riepilogo!B15:g15) 'foglio7
=CERCA(F2;riepilogo!A18:A22;riepilogo!B18:B22)+SOMMA.SE(riepilogo!B1:h1;f2;riepilogo!B15:h15) 'foglio 8 e cosi via fino al foglio 23 dove essendosi azzerato il valore :R[-9]C[-" & 23 - a & "] quindi 23-23
si fermava alla lettera W della colonna .la lettera x,y,z,aa,ab delle colonne del foglio di riepilogo li legge dalla posizione w10 non in negativo ma in positivo quindi 1,2,3,4..... allora sottraendo da "a" il 23 ottengo tali numeri
cambiando logicamente il for in For a = 24 To Worksheets.Count ansi che For a = 6 To Worksheets.Count.
alla fine nel foglio 24 sulla w10 vi è la fomula :'=CERCA(F2;riepilogo!A18:A22;riepilogo!B18:B22)+SOMMA.SE(riepilogo!B1:x 1;f2;riepilogo!B15:x15) e cosi via con y,z,aa,ab,ac... (quello che volevo)
mi serviva questa formula perche sul foglio riepilogo doveva sommare i totali delle colonne fino al giorno precedente a
quello in cui si sta lavorando nel foglio 6,7,8... quindi se facevo la somma di tutte le colonne mi calcolava anche i parziali del giorno di lavorazione che per un mio probleva non volevo venissero calcolati
cmq anche questa ok grazie mille alla prossima ;)
saluti Martin
martin
Utente Senior
 
Post: 108
Iscritto il: 03/12/08 17:04


Torna a Applicazioni Office Windows


Topic correlati a "macro per copiare formula con variazione progressiva":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti