Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

copiare formula con riferimenti

Ultimo Aggiornamento: 11/01/2023 23:46
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
😉
Vota: 15MediaObject5,00112 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 01:35. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com