Ho una serie di fogli uguali a struttura tridimensionali.
In una cella vorrei fare riferimento alla stessa cella del foglio precedente, indipendentemente dai nomi dei fogli.
:master: ma si può fare?
ciao![]()
Ho una serie di fogli uguali a struttura tridimensionali.
In una cella vorrei fare riferimento alla stessa cella del foglio precedente, indipendentemente dai nomi dei fogli.
:master: ma si può fare?
ciao![]()
Pietro
Sheets(ActiveSheet.Index - 1).Range("a1")
l'esempio mostrerà il contenuto della cella a1 del foglio 2 nel caso tu ti trovi nel foglio3, la cella a1 del foglio 1 nel caso tu sia nel foglio 2 e così via. Ovviamente dovresti gestire il caso in cui tu sia già nel primo foglio.
Ti ringrazio. Mi sembra codice vbscript. :master: o sbaglio?Originariamente inviato da nicola75ss
Sheets(ActiveSheet.Index - 1).Range("a1")
l'esempio mostrerà il contenuto della cella a1 del foglio 2 nel caso tu ti trovi nel foglio3, la cella a1 del foglio 1 nel caso tu sia nel foglio 2 e così via. Ovviamente dovresti gestire il caso in cui tu sia già nel primo foglio.
Pietro
E' VBA.
Se hai bisogno di qualche altro chiarimento chiedi pure.![]()
Ti ringrazioOriginariamente inviato da nicola75ss
E' VBA.
Se hai bisogno di qualche altro chiarimento chiedi pure.![]()
. Il fatto è che, ai tempi del DOS, usavo Lotus 123. Quello era un foglio veramente 3d. Pensavo che anche in Excel esistessero i riferimenti assoluti e relativi alla terza dimensione, ma vedo che mi sbagliavo. Qualcosa del genere
Foglio1:riga1:cella1, $Foglio1:$riga1:$cella1
Andando sul pratico, se nella cella A1 metto 1, e se voglio incrementare verso il basso, metto in A2, =+A1+1
Se ho 12 fogli e sul foglio1, nella cella A1 metto 1, nel foglio2, stessa cella, vorrei mettere il valore precedente incrementato di 1, e così per gli altri. Mi parrebbe che non si possa fare :master:![]()
![]()
Pietro
Ciao Pietro,
premetto che non conosco excel a fondo, ma forse puoi raggiungere il tuo scopo
usando la funzione INDIRECT (INDIRETTO) che data una stringa ti ritorna il riferimento all'oggetto.
Probabilmente però ti occorrrerà ugualmente una funzione vba (io non conosco altri modi per farlo) che ti ritorni il nome del foglio precedente o successivo.
HTH
Se nella cella a1 del foglio1 scrivi 1, nel foglio 2 basta scrivereOriginariamente inviato da pietro09
Se ho 12 fogli e sul foglio1, nella cella A1 metto 1, nel foglio2, stessa cella, vorrei mettere il valore precedente incrementato di 1, e così per gli altri. Mi parrebbe che non si possa fare :master:![]()
![]()
=Foglio1!A1+1
il valore della formula verrà automaticamente aggiornato al variare del valore della cella A1 del foglio1.
se ricopio questa formula nella cella A1 dei fogli da 2 a 12, per esempio, avrò sempre la stessa formula.Originariamente inviato da nicola75ss
Se nella cella a1 del foglio1 scrivi 1, nel foglio 2 basta scrivere
=Foglio1!A1+1
il valore della formula verrà automaticamente aggiornato al variare del valore della cella A1 del foglio1.
In un ambiente tridimensionale, nel foglio12 dovrei invece trovare = Foglio11!A1+1
E' questo che Excel non fa :master:![]()
![]()
Pietro
Ti faccio un altro esempio fatto con OpenOffice
in una cella di Foglio2 metto
=SOMMA($Foglio1.A1:Foglio2.A1)
e la ricopio nella stessa cella dei fogli rimanenti.
Ottengo ad ogni foglio un progressivo.
Mi pare impossibile che Excel non riesca a farlo![]()
![]()
Pietro
L'ultima volta che ho visto lotus123 avevo 16 anni.Originariamente inviato da pietro09
se ricopio questa formula nella cella A1 dei fogli da 2 a 12, per esempio, avrò sempre la stessa formula.
In un ambiente tridimensionale, nel foglio12 dovrei invece trovare = Foglio11!A1+1
E' questo che Excel non fa :master:![]()
![]()
![]()
La macro che ti ho scritto scorrerà tutti i fogli presenti a partire dal secondo e, in ciascuno di essi, riporterà la formula col riferimento alla cella A1 del foglio precedente incrementata di un'unità. Puoi provare a scrivere un valore numerico nella cella a1 del foglio1 e vedere tu stesso il risultato.codice:Sub precedente() Dim i As Long For i = 2 To Application.Sheets.Count Worksheets(i).Activate Range("a1").Formula = "=" & Worksheets(i - 1).Name & "!a1+1" Next i End Sub![]()