riepilogo totali da più fogli



  • riepilogo totali da più fogli
    di alexpag77 (utente non iscritto) data: 26/07/2015 11:56:33

    Salve ragazzi, come al solito ho bisogno del vostro aiuto....
    ho una cartella di excel dove ogni foglio corrisponde ad un ordine di merce....vorrei creare un foglio riepilogo dove venga riportata la riga dei totali di ciascun foglio ( riga 100). allego un file in cui adesso faccio l'operazione a mano ma visto che i fogli saranno sempre di più volevo automatizzare questo passaggio.....spero di essermi spiegato.
    allego file
    salutiiiiiiiiiiiiiiiiii



  • di cromagno data: 26/07/2015 12:47:42

    Ciao alex,
    per l'elenco dei nomi dei fogli converrebbe usare un codice in VBA (tipo quello messo sotto) da mettere all'interno del Foglio riepilogo (che si aggiorna ogni volta che viene selezionato quel foglio).
    Mentre per il resto della tabella puoi usare anche una formula...
    Nel foglio "riepilogo" alla cella A2 scrivi:
    =SE($O2="";"";INDIRETTO($O2&"!"&INDIRIZZO(100;RIF.COLONNA(K$100))))

    dopo la cella A2 la copi per tutta la tabella o anche più giù in previsione di nuovi fogli (nel caso attuale la cella A2 la copierai nel range A2:N6). 
     
    Private Sub Worksheet_Activate()
    Range("O2:O" & Sheets.Count - 2).ClearContents
        For i = 2 To Sheets.Count - 1
            If Sheets(i).Name <> "riepilogo" Then
                Range("O" & i).Value = Sheets(i).Name
            End If
        Next i
    End Sub
    



  • di cromagno data: 26/07/2015 13:14:19

    Comunque, la formula che usavi tu...
    =SE(B100<>0;DESTRA(CELLA("nomefile");LUNGHEZZA(CELLA("nomefile"))-TROVA("]";CELLA("nomefile");1));"")

    ...andava benissimo per poter recuperare i nomi dei fogli, ma come hai detto c'è sempre un'operazione "in manuale" da fare. Purtroppo anche le formule hanno i loro limiti.



  • di alexpag77 (utente non iscritto) data: 26/07/2015 13:15:14

    Ciao.....la formula funziona ma non riesco a creare la macro per avere l'elenco dei fogli



  • di cromagno data: 26/07/2015 13:30:05

    devi andare nell'editor VBA o dalla scheda "SVILUPPO" o premendo "Alt+F11" (se non dovessi ancora avere la scheda "SVILUPPO" devi attivarla):
    h t t p s://msdn.microsoft.com/it-it/library/bb608625.aspx

    Una volta in VBA, sulla sinistra vedrai la lista dei tuoi fogli. Clicca 2 volte sul foglio "riepilogo".
    Adesso avrai il prompt sulla destra nella finestra del codice.
    Apri il menu che si trova sopra il prompt e scegli "Worksheet", cancella il codice che è apparso e dal menu sulla destra scegli l'evento "Activate".
    Come vedi ti ha già scritto l'inizio e la fine della routine:

    Private Sub Worksheet_Activate()

    End Sub

    quindi, all'interno di queste righe copia il codice che ti ho postato (naturalmente, prima e ultima riga escluse).
    Salva il tutto ricordandoti che devi salvare il file come "Cartella di lavoro con attivazione macro di excel".



  • di alexpag77 (utente non iscritto) data: 26/07/2015 13:49:35

    fantastico......funziona tutto.....ma mi è sorto un nuovo problema......devo creare un nuovo file di riepilogo e non un foglio....sarà possibile?



  • di alexpag77 (utente non iscritto) data: 26/07/2015 14:26:50

    mi spiego meglio.....devo creare un file a parte con il riepilogo e non un foglio all'interno della cartella dove ci sono tutti gli ordini....sempre se è possibile



  • di cromagno data: 26/07/2015 14:36:06

    Possibile.. si, ma va oltre le mie attuali conoscenze (specialmente se l'aggiornamento deve essere fatto anche se non sono aperti entrambi i file), quindi dovrei documentarmi anche io...
    Magari ci verrà in aiuto qualcun altro

    Comunque, prima di complicare sempre di più il codice, cerca di farti una conoscenza, anche base, del VBA.

    Appena ho tempo libero, provo.
    Ciao  
     
     



  • di alexpag77 (utente non iscritto) data: 26/07/2015 15:28:26

    Beh aprire i file contemporaneamente non è un problema.....se questo facilita.....
    per il resto devo trovare un corso di excel avanzato .....
    grazie mille comunque