Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    [exel] riferimento al foglio precedente

    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

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    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.

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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.
    Ti ringrazio. Mi sembra codice vbscript. :master: o sbaglio?
    Pietro

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    E' VBA.

    Se hai bisogno di qualche altro chiarimento chiedi pure.

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da nicola75ss
    E' VBA.

    Se hai bisogno di qualche altro chiarimento chiedi pure.
    Ti ringrazio . 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

  6. #6
    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

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Originariamente 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:

    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.

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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.
    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:
    Pietro

  9. #9
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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

  10. #10
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    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:
    L'ultima volta che ho visto lotus123 avevo 16 anni.

    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
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.