| | Post: 7.049 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
10/01/2023 11:36 | |
Ciao a tutti, come da titolo dovrei copiare una formula, non ricordo se ho già proposto lo stesso problema,, la formula fa riferimento ad un altro foglio, ed è questa
=SE(DatiGen!BE3="";"";DatiGen!AM3)
ma ho un problema, con questa formula la copio in basso per 10 righe perche i dati nell'altro foglio sono 10 è funziona a dovere
il problema che che devo fare copia incolla ammettendo che sono sul foglio1 in A1 e trascino la formula fino ad "A10" qui tutto ok ora devo copiare "A1:A10" in "A12", qui sorge il problema perche la formula diventa
=SE(DatiGen!BE12="";"";DatiGen!AM12)
invece vorrei che restasse nella copia,
=SE(DatiGen!BE3="";"";DatiGen!AM3)
perche alla riga 12 del foglio "DatiGen" e vuoto, quindi logicamente la formula non riporta niente
insomma la formula deve sempre far riferimento ad i primi 10 dati del foglio "DatiGen"
non so se sono riuscito a rendere l'idea
Ciao By Sal (8-D
[Modificato da by sal 10/01/2023 11:39] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
|
| | Post: 435 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | OFFLINE |
|
10/01/2023 12:09 | |
ciao Sal
anche io non so se ho capito bene, ma siccome anche a me capita spesso la stessa cosa, sai che faccio ?
=SE(DatiGen!BE3="";"";DatiGen!AM3)
mi metto nel rigo in alto dove è scritta la formula
faccio Seleziona tutto (la formula)
copio (appunto la formula)
e poi incollo dove mi serve senza che la formula si modifichi, neppure trascinandola
Leo [Modificato da L2018 10/01/2023 12:12]
LEO
https://t.me/LordBrum |
| | Post: 7.049 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
10/01/2023 12:21 | |
Ciao Leo devo farlo con il VBA in effetti la formula con il VBA diventa
Sh1.Range("A" & rp & ":A" & rf).FormulaR1C1 = "=IF(DatiGen!R[-11]C[56]="""","""",DatiGen!R[-11]C[38])"
dove rp =1 rf = 10 dopo diventa rp=12 rf = 22
dovrei usare rif.riga nella formula ma non so come fare.
Ciao By Sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 436 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | OFFLINE |
|
10/01/2023 12:24 | |
sorry, a questo punto non so aiutarti
Leo
LEO
https://t.me/LordBrum |
| | Post: 2.781 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
10/01/2023 14:01 | |
ciao
mica ho capito
se fai un esempio in una tabella magari è semplice
INDIRETTO()? |
| | Post: 7.050 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
10/01/2023 16:18 | |
Ciao sono riuscito a risolvere la formula, facendo riferimento alla celle soprastanti dello stesso foglio, quindi non faccio più riferimento ad altro foglio.
ma il problema rimane, e qui non posso usare la stessa tecnica, sto facendo un calendario, che fa riferimento a delle date su un altro foglio, questo lo schema semplificato, devo trovare il modo di fare la formula che mi serviva precedentemente.
come si vede copio la riga di Gennaio per i 12 mesi, e tutti i mesi logicamente sono Gennaio sul foglio "DatiGen" ho un calendario per le festività ed altro alla colonna "BO" ho usato gli stessi riferimenti
come si vedrà nella colonna "BW" vi è l'inizio mese e la formula fa riferimento a quella cella per la data di inizio mese, non posso inserirla fissa in quanto per alcuni motivi cambiando quella data di inizio mese nella colonna "BW" mi devono variare anche i giorni della settimana del mese interessato, nel foglio1
nella cella gialla ho visualizzato la formula che vi è nella cella sottostante
come detto non so che tipo di formula dovrei usare, indice, confronta, Indiretto, per poterla usare con il VBA in quanto dovrebbe far riferimento alla colonna BW
allego anche il File, vedete se si riesce a trovare una soluzione.
Ciao By Sal (8-D
[Modificato da by sal 10/01/2023 16:20] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 3.389 | Registrato il: 06/04/2013
| Utente Master | 2010 | | OFFLINE |
|
10/01/2023 16:28 | |
ciao Salvatore
non ho visto l'allegato e ti rispondo sulla base dei tuoi precedenti post
metti la formula in una variabile testo e poi la applichi utilizzando .formulaLocal
per esempio:
....
mFormula = "=SE(DatiGen!BE3="""";"""";DatiGen!AM3)"
Cells(1, 1).FormulaLocal = mFormula
'qui copy per 10 righe la cella a1
Cells(12, 1).FormulaLocal = mFormula
'qui copy per 10 righe la cella a1
etc etc
....
Sempre che abbia capito
saluti [Modificato da dodo47 10/01/2023 16:30] Domenico
Win 10 - Excel 2016 |
| | Post: 2.782 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
10/01/2023 19:34 | |
ciao
metti in B13
=SCARTO(DatiGen!$BW$1;CONTA.SE($A$12:A12;">0")+1;0)
poi copiala e incollala dove vuoi
|
| | Post: 7.051 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
11/01/2023 09:41 | |
Ciao Federico, purtroppo non funziona mi riporta sempre BW3, quindi Gennaio.
Però il metodo che mi ha detto Domenico con "FormulaLocal" funziona perche mettendo una variabile x del tipo "BW" & x riesco a prendere la riga successiva in BW, questa la formula aggiustata per il VBA
fo = "=DatiGen!BW" & x
Sh1.Cells(r, 2).FormulaLocal = fo
in un ciclo for..next riesco a valorizzare la x, e la r è la riga della riga calendario
quindi ho risolto in questo modo
Ciao e Grazie a tutti By Sal (8-D
[Modificato da by sal 11/01/2023 09:43] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 2.783 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
11/01/2023 11:51 | |
ciao
con il piffero
vorrai mica che ti metta formule che non funzionano😏
seleziona B13
copiala
e incollala dove ti pare
l'importante è che A12 sia vuota |
| | Post: 7.052 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
11/01/2023 15:49 | |
Ciao Federico, non mi hai mai dato una formula che non funzioni, guarda cosa facevo io
e come vedi facendo Copia-Incolla della formula mi riporta sempre il mese di Gennaio, poi ho copiato la formula per il VBA e la macro risultante, questa
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveCell.FormulaR1C1 = _
"=OFFSET(DatiGen!R1C75,COUNTIF(R12C1:R[-1]C[-1],"">0"")+1,0)"
Range("B18").Select
ActiveCell.FormulaR1C1 = _
"=OFFSET(DatiGen!R1C75,COUNTIF(R12C1:R[-1]C[-1],"">0"")+1,0)"
Range("B23").Select
ActiveCell.FormulaR1C1 = _
"=OFFSET(DatiGen!R1C75,COUNTIF(R12C1:R[-1]C[-1],"">0"")+1,0)"
Range("C23").Select
End Sub
mi sono reso conto che la formula è uguale per tutte le posizioni, quindi con il VBA funziona
perche guardando la formula sul foglio ho visto che cambia il riferimento alla cella nel conta.se, ma facendo copia incolla il Conta.se il primo parametro è assoluto ed il secondo resta fisso su "A12".
però mi sono accorto adesso che sono io che sbagliavo a fare il copia incolla, io copiavo la formula dalla barra della formula, invece facendo copia-incolla dalla cella funziona tutto bene
ti ringrazio e scusa, Ciao By Sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 2.785 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
11/01/2023 23:46 | |
ciao
e di che ti scusi
comunque per chiarire
il metodo che hai detto di usare
serve per riportare in una cella la formula senza cambiarne i riferimenti
ma si usa il taglia non il copia
😉
|
|
|