Precedente :: Successivo |
Autore |
Messaggio |
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 |
|
|
|