Precedente :: Successivo |
Autore |
Messaggio |
hunter32 Comune mortale
Registrato: 04/09/08 19:18 Messaggi: 4
|
Inviato: 04 Set 2008 19:47 Oggetto: * Excel - incollare collegamento con formula...è possibile? |
|
|
Non so come copiare un collegamendo ad una cella copiando la formula scritta al suo interno invece del valore (come accade di predefinito).
Mi spiego: se scrivo "='Foglio 1'!$A$1" nella cella A1 nel Foglio 2, copio il valore della cella A1 presente nel Foglio 1, se la cella copiata contiene una formula che calcola, per es., una somma nel Foglio 1, viene copiato solo il risultato e non la formula che calcola la somma.
Il mio obiettivo è quello di creare un riferimento che copi la formula e NON il valore in modo tale da poter collegare parecchi fogli di lavoro che utilizzano la medesima formula ad un unico foglio che contiene le formule originali le quali, se errate, non devono essere ricopiate in tutti i fogli in cui vengono utilizzate ma diventa sufficiente correggerle nel foglio contenente le formule originali.
Spero di essere stato sufficientemente chiaro.
Grazie. |
|
Top |
|
|
chemicalbit Dio maturo
Registrato: 01/04/05 17:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 05 Set 2008 10:13 Oggetto: |
|
|
Non ricordo molto bene Microsoft Excel (è tanto che non lo uso),
ma hai provato con menù "modifica" -> "incolla speciale .." ? |
|
Top |
|
|
hunter32 Comune mortale
Registrato: 04/09/08 19:18 Messaggi: 4
|
Inviato: 05 Set 2008 12:15 Oggetto: |
|
|
chemicalbit ha scritto: | Non ricordo molto bene Microsoft Excel (è tanto che non lo uso),
ma hai provato con menù "modifica" -> "incolla speciale .." ? |
Purtroppo sì...praticamente se spunto l'opzione "Formule" il pulsante "Incolla collegamento" si disattiva automaticamente, per questo mi chiedevo se fosse possibile, che so, aggiungendo manualmente qualcosa nella formula "='Foglio 1'!$A$1"...
Grazie comunque! |
|
Top |
|
|
GrayWolf Dio maturo
Registrato: 03/07/05 16:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 05 Set 2008 12:46 Oggetto: |
|
|
OK
ipotizziamo che nel Foglio1, in B5, ci sia la formula:
=SOMMA(A1:A3)
.1 copia la formula
.2 vai sul Foglio2 e posizionati sulla stessa cella B5
.3 incolla
.4 anteponi a ogni coordinata di cella: "Foglio1!" in modo che appaia così: =SOMMA(Foglio1!A1:Foglio1!A3)
In questo modo copi il risultato della formula nel Foglio1
se non anteponi niente, la formula fa riferimento al Foglio2, cercando di fare la somma delle stesse celle [sempre che tu abbia l'abbia copiata nella stessa cella in cui è presente nel Foglio1]
se la copi in una cella diversa [sempre del Foglio2] il range di calcolo è lo stesso ma cambiano le coordinate:
la formula copiata in B6 sarà =SOMMA(A2:A4) |
|
Top |
|
|
hunter32 Comune mortale
Registrato: 04/09/08 19:18 Messaggi: 4
|
Inviato: 05 Set 2008 16:30 Oggetto: |
|
|
GrayWolf ha scritto: | OK
ipotizziamo che nel Foglio1, in B5, ci sia la formula:
=SOMMA(A1:A3)
.1 copia la formula
.2 vai sul Foglio2 e posizionati sulla stessa cella B5
.3 incolla
.4 anteponi a ogni coordinata di cella: "Foglio1!" in modo che appaia così: =SOMMA(Foglio1!A1:Foglio1!A3)
In questo modo copi il risultato della formula nel Foglio1
|
Mi scuso per non essere stato sufficientemente chiaro ma non è quello che sto cercando di fare...
Cercherò di spiegarmi meglio con un esempio più diretto:
ho progettato un file excel capace di calcolare diversa roba, per calcolare alcune cose, ho dovuto utilizzare delle formule particolarmente lunghe e complesse.
Le suddette formule, servono per calcolare alcuni particolari dati e sono caratterizzate anche da decine di annidamenti "SE".
Ogni foglio di lavoro è identico e viene compilato un tot di volte l'anno.
Nell'utilizzare i primi fogli di lavoro sono usciti fuori un po' di errori che possono sembrare stupidi (per es. celle non incluse in controlli in cui dovevano esserlo) ma sono comunque errori.
Ho corretto gli errori ma, una volta fatto, ho dovuto ricopiare tutte le formule modificate in tutti i tot fogli di lavoro, il che è una vera e propria seccatura, soprattutto se riscontro nuovi errori o miglioro le formule che utilizzo, per mostrare più dati.
Ora, il mio obiettivo consiste nel scrivere le suddette formule SOLO in un foglio di lavoro, supponiamo il Foglio1, i restanti dovrebbero avere, al posto delle formule, un collegamento alle celle del Foglio1 contenenti le formule. Ogni foglio di lavoro, escluso il primo, non dovrà fare riferimento al Foglio1 per i dati contenuti in esso ma solo per le formule, l'esempio potrebbe essere riproposto come segue:
1) Valorizzo la cella B5 del Foglio1 in "=SOMMA(A1:A3)"
2) Inserisco una formula che spero esista ma che non conosco nella cella B5 del Foglio2 che mi crea un collegamento alla formula presente nella cella B5 del Foglio1
3) Modifico la cella B5 del Foglio1 da "=SOMMA(A1:A3)" a "=MAX(A1:A3)"
4) Automaticamente, attraverso la formula del punto 2, anche la cella B5 del Foglio2 si ritroverà con la formula "=MAX(A1:A3)" senza che io l'abbia modificata direttamente nel Foglio2
Se rapportato a 2 fogli di lavoro, può sembrare inutile, rapportato a 40 fogli che utilizzano le medesime formule dovrebbe essere più che utile, oltre, forse, a diminuire le dimensioni del file che ha raggiunto un peso che potrei definire "insolito"...
P.S.: se può essere d'aiuto, credo che il mio obiettivo sia venuto fuori dalla programmazione ad oggetti che ormai è entrata nella mia testa che, in questo caso, porta alla creazione di un oggetto contenente le formule e di numerosi altri oggetti che si riferiscono ad esso
Spero di essere stato più chiaro....grazie per il supporto! |
|
Top |
|
|
chemicalbit Dio maturo
Registrato: 01/04/05 17:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 05 Set 2008 17:43 Oggetto: |
|
|
hunter32 ha scritto: | che so, aggiungendo manualmente qualcosa nella formula "='Foglio 1'!$A$1"... | Ma la formula nel foglio 2 deve prendere i dati dal folgio 2, la formula nel foglio 3 deve prenderli dal foglio 3 e così via,
oppure -come sembra dalla tua idea di usare "Foglio1!" tutte le formule devono prendere i dati dallo stesso foglio (foglio1)? |
|
Top |
|
|
hunter32 Comune mortale
Registrato: 04/09/08 19:18 Messaggi: 4
|
Inviato: 05 Set 2008 18:25 Oggetto: |
|
|
chemicalbit ha scritto: | Ma la formula nel foglio 2 deve prendere i dati dal folgio 2, la formula nel foglio 3 deve prenderli dal foglio 3 e così via, |
Esatto. Aggiungo che la formula per effettuare i calcoli nel Foglio 2 deve essere identica a quella del Foglio 3 ecc, tutte le formule, poi, devono essere prese automaticamente dal Foglio1 e, se modifico le formule del Foglio1, cambiano automaticamente anche quelle del Foglio2 così come del Foglio3 e così via.
chemicalbit ha scritto: | oppure -come sembra dalla tua idea di usare "Foglio1!" tutte le formule devono prendere i dati dallo stesso foglio (foglio1)? |
No. Mi scuso per l'imprecisione ma non sapevo che inserendo "Foglio1!" davanti alle coordinate le riprendesse da un dato foglio (come ha descritto GrayWolf: "=SOMMA(Foglio1!A1:Foglio1!A3)").
Quello che volevo intendere nel mio primo post con "='Foglio 1'!$A$1" era il fatto che io sia alla ricerca di una formula in grado di copiare automaticamente e dinamicamente le formule così come quella riportata ("='Foglio 1'!$A$1") ne copia i valori. |
|
Top |
|
|
carmelo.pec Mortale pio
Registrato: 28/10/07 15:06 Messaggi: 28
|
Inviato: 19 Set 2008 13:38 Oggetto: |
|
|
Se non ho capito male, quello che vuoi fare, è semplicemente creare dei fogli separati, copiando le formule che che hai scritto nel primo.
Senza che le modifiche fatte nel primo, si propaghino nei foglio successivi.
Per fare quest'operazione basta copiare normalmente quello che c'è nel primo foglio.
e utilizzare l'opzione incolla speciale.
selezionando la voce incolla formule.
Ovviamente se copi una cella la sua formula deve essere inserita in una cella.
Se copi un'intero foglio le celle contenute vanno inserite in un foglio da solo.
Un'altra procedura è questa.
-Puntare il puntatore del Muose sul foglio che vuoi copiare, tasto destro.
-Selezionare la voce "Sposta e Copia" (si apre una finestra scegliere sposta alla fine e ceccare la voce crea una copia)
così si crea una copia del foglio, di conseguenza basta solo renominarlo.
Spero di aver centrato il problema.
Ciao |
|
Top |
|
|
chemicalbit Dio maturo
Registrato: 01/04/05 17:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 19 Set 2008 14:26 Oggetto: |
|
|
Ma tu, , vuoi fare in modo che la formula sia incollata come collegamento, quindi se si modificherà successivamente la formula nel foglio 1, anche tutte le sue copie negli altri fogli verranno modificate? |
|
Top |
|
|
ioSOLOio Amministratore
Registrato: 12/09/03 18:01 Messaggi: 16342 Residenza: in un sacco di...acqua
|
Inviato: 19 Set 2008 17:11 Oggetto: |
|
|
chemicalbit ha scritto: | Ma tu, , vuoi fare in modo che la formula sia incollata come collegamento, quindi se si modificherà successivamente la formula nel foglio 1, anche tutte le sue copie negli altri fogli verranno modificate? |
eh si, credo proprio voglia quello....
costruire un foglio di "sole formule" e poi gli altri fogli che utilizzano le formule create nel foglio 1
In questo modo se deve modificare o correggere una formula, lo farà una volta sola nel foglio 1
Infatti dice
hunter32 ha scritto: |
Ora, il mio obiettivo consiste nel scrivere le suddette formule SOLO in un foglio di lavoro, supponiamo il Foglio1, i restanti dovrebbero avere, al posto delle formule, un collegamento alle celle del Foglio1 contenenti le formule. Ogni foglio di lavoro, escluso il primo, non dovrà fare riferimento al Foglio1 per i dati contenuti in esso ma solo per le formule, l'esempio potrebbe essere riproposto come segue:
1) Valorizzo la cella B5 del Foglio1 in "=SOMMA(A1:A3)"
2) Inserisco una formula che spero esista ma che non conosco nella cella B5 del Foglio2 che mi crea un collegamento alla formula presente nella cella B5 del Foglio1
3) Modifico la cella B5 del Foglio1 da "=SOMMA(A1:A3)" a "=MAX(A1:A3)"
4) Automaticamente, attraverso la formula del punto 2, anche la cella B5 del Foglio2 si ritroverà con la formula "=MAX(A1:A3)" senza che io l'abbia modificata direttamente nel Foglio2
|
|
|
Top |
|
|
GrayWolf Dio maturo
Registrato: 03/07/05 16:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 22 Set 2008 20:16 Oggetto: |
|
|
hunter32 ha scritto: |
...
...
Ora, il mio obiettivo consiste nel scrivere le suddette formule SOLO in un foglio di lavoro, supponiamo il Foglio1, i restanti dovrebbero avere, al posto delle formule, un collegamento alle celle del Foglio1 contenenti le formule. Ogni foglio di lavoro, escluso il primo, non dovrà fare riferimento al Foglio1 per i dati contenuti in esso ma solo per le formule
..
... |
Non sono riuscito a trovare niente che dicesse come fare il link delle formule, quindi mi sono stancato e ho scritto questa piccola macro:
Codice: |
Sub PropagaFormule()
'
' PropagaFormule Macro
' Macro registrata il 22/09/2008
'
With Worksheets("Foglio1")
'struttura valida per UNA formula
'------------------------------------------
Range("B10").Select
Selection.Copy
For Each Foglio In Worksheets
If Not Foglio.Name = "Foglio1" Then
Foglio.Select
Range("B10").Select
ActiveSheet.Paste
End If
Next
'------------------------------------------
End With
End Sub
|
Cosa fa
.1 Si posiziona sulla cella B10 del Foglio1
.2 per tutti i fogli che NON sono Foglio1, replica la formula presente nella cella indicata.
Come si personalizza
.1 Aprire una cartella di Excel
.2 Creare il numero di fogli voluto
.3 Inserire tutte le formule necessarie Nel Foglio1
.4 Creare la macro assegnandogli il nome voluto e copia/incollando il codice succitato [nell'esempio la formula è stata chiamata: PropagaFormule]
.5 Duplicare per ogni formula inserita nel Foglio1, il codice racchiuso fra trattini modificando il riferimento della cella,
.6 Eseguire la macro
Nel caso in cui una formula cambiasse sarà sufficiente rieseguire la macro per propagare la nuova versione in tutti i fogli.
Ancora:
Nel caso il numero di formule fosse eccessivo e non si volesse propagarle tutte ogni volta che si modifica una sola formula, si può agire nel seguente modo:
Creare due macro, una che comprenda la propagazione di tutte le formule [da eseguirsi solo la prima volta] e una che ne propaghi solo una [tale e quale al codice in esempio], quando si modifica una formula in tempi successivi, sarà sufficiente modificare questa seconda macro indicando la cella che contiene la formula modificata e poi eseguire la macro per propagarla.
Spero che basti a risolverti il problema |
|
Top |
|
|
ioSOLOio Amministratore
Registrato: 12/09/03 18:01 Messaggi: 16342 Residenza: in un sacco di...acqua
|
Inviato: 23 Set 2008 19:42 Oggetto: |
|
|
GrayWolf ha scritto: |
Non sono riuscito a trovare niente che dicesse come fare il link delle formule, quindi mi sono stancato e ho scritto questa piccola macro: [..]
|
prelevata !
Appena ho un momento la testo...ho già in mente un paio di utilizzi sul lavoro
Eh il Lupone.. |
|
Top |
|
|
aldorote Eroe in grazia degli dei
Registrato: 01/06/07 13:33 Messaggi: 132
|
Inviato: 29 Set 2008 15:36 Oggetto: |
|
|
. |
|
Top |
|
|
maspi Mortale devoto
Registrato: 22/05/07 16:13 Messaggi: 6
|
Inviato: 29 Set 2008 16:32 Oggetto: |
|
|
Ciaotutti.
Mi domando se non sia possibile utilizzare una feature di Excel, vale a dire, il *nome*. Alle funzioni complesse, anche annidate, è possibile attribuire un nome (menu Inserisci->Nome->Definisci), poi diventa molto più facile scrivere (o anche copiare), nei vari fogli, formule altrimenti lunghissime...
In pratica, è come se passassi un parametro (o anche più) alle varie funzioni, che puoi definire con un nome e radunare in un unico foglio. Così se cambi una formula "originale", questa cambierà ovunque essa è richiamata, appunto, dal suo *nome*...
Ma forse non ho capito bene il problema... |
|
Top |
|
|
GrayWolf Dio maturo
Registrato: 03/07/05 16:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 01 Ott 2008 10:24 Oggetto: |
|
|
maspi ha scritto: | Ciaotutti.
Mi domando se non sia possibile utilizzare una feature di Excel, vale a dire, il *nome*. Alle funzioni complesse, anche annidate, è possibile attribuire un nome (menu Inserisci->Nome->Definisci), poi diventa molto più facile scrivere (o anche copiare), nei vari fogli, formule altrimenti lunghissime...
In pratica, è come se passassi un parametro (o anche più) alle varie funzioni, che puoi definire con un nome e radunare in un unico foglio. Così se cambi una formula "originale", questa cambierà ovunque essa è richiamata, appunto, dal suo *nome*...
Ma forse non ho capito bene il problema... |
Ottimo metodo, è più facile rintracciare parti di formula o formule intere, ma...
.1 riporta il valore risultante dalla formula che comunque si riferisce al foglio in cui è inserita.
.2 Il nostro amico ha un'esigenza diversa:
.2.1 creare formule nel Foglio1
.2.2 ripetere tali formule in un numero elevato di fogli
.2.3 ogni formula deve fare riferimento al foglio in cui è inserita
L'ipotesi più ovvia è: "Crea il primo foglio e poi duplicalo quante volte vuoi"
Ok, corretto, ma...
se modifico una o più formule nel primo foglio, come cavolo faccio a far si che le modifiche siano riprodotte in tutti i fogli, copia del primo?
P.S.
Naturalmente, potrebbe essermi sfuggito qualcosa e sono io a non aver capito fino in fondo ciò che volevi dire. |
|
Top |
|
|
brven Mortale devoto
Registrato: 01/06/06 14:27 Messaggi: 12
|
Inviato: 01 Ott 2008 12:42 Oggetto: |
|
|
Ciao a tutti! Non ho la soluzione però ho un'idea che vorrei esporre.
Si otterrebbe ciò se si potesse considerare la formula in questione come del testo e quindi dove serve si dovrebbe richiamare quel testo e farlo convertire da excel in una formula. Non so però se excel ha una funzione di conversione testo in formula così come può avvenire per i numeri.
Non so se una soluzione potrebbe essere la funzione stringa che consentirebbe di estrarre da un eventuale testo solo dei caratteri corrispondenti proprio ad una formula. |
|
Top |
|
|
Garp Mortale devoto
Registrato: 31/10/08 00:17 Messaggi: 16
|
Inviato: 31 Ott 2008 08:10 Oggetto: |
|
|
Ciao a tutti, sono nuovo.
Mi scuso in anticipo se ho capito male cosa vuoi fare, ma secondo me la soluzione potrebbe essere:
- seleziona tutti i fogli di lavoro del file
- vai sulla cella che vuoi modificare nel Foglio 1 (es b1)
- scrivi la formula che ti interessa (nel tuo esempio =max(a1:a3) )
- deseleziona tutti i fogli
In questo modo la formula di cui sopra apparirà in tutti i fogli nella cella b1
ciao |
|
Top |
|
|
chemicalbit Dio maturo
Registrato: 01/04/05 17:59 Messaggi: 18597 Residenza: Milano
|
Inviato: 31 Ott 2008 09:25 Oggetto: |
|
|
Garp ha scritto: | In questo modo la formula di cui sopra apparirà in tutti i fogli nella cella b1 | E se la modifichi in una dei fogli si modifica automaticamente in tutti,
oppure bsogna prima -con lo stesso metodo- selezionare tutti i fogli?
p.s.: Benvenuto Garp!
Se vuoi, fai un salto in questa discussione a presentarti agli utenti del forum. |
|
Top |
|
|
GrayWolf Dio maturo
Registrato: 03/07/05 16:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 03 Nov 2008 13:24 Oggetto: |
|
|
Garp ha scritto: | Ciao a tutti, sono nuovo.
Mi scuso in anticipo se ho capito male cosa vuoi fare, ma secondo me la soluzione potrebbe essere:
- seleziona tutti i fogli di lavoro del file
- vai sulla cella che vuoi modificare nel Foglio 1 (es b1)
- scrivi la formula che ti interessa (nel tuo esempio =max(a1:a3) )
- deseleziona tutti i fogli
In questo modo la formula di cui sopra apparirà in tutti i fogli nella cella b1
ciao |
Bravo Garp
Ottima soluzione alternativa [non la conoscevo]
così se voglio cambiare una formula ri-seleziono tutti i fogli e modifico solo l'originale
se, invece, voglio modificarla solo in un foglio non effettuo la multiselezione
[quest'ultima possibilità, pur non essendo attinente al problema, comporta comunque un grosso risparmio di tempo]
Bravo |
|
Top |
|
|
Garp Mortale devoto
Registrato: 31/10/08 00:17 Messaggi: 16
|
Inviato: 03 Nov 2008 22:41 Oggetto: |
|
|
Si, esatto, bisogna riselezionare tutti i fogli.
Occhio però dopo aver fatto la modifica a deselezionare i fogli, se te ne dimentichi finisci per fare casini sui vari fogli. |
|
Top |
|
|
|