Macro per salvare ciascun foglio come nuovo file Excel

Поділитися
Вставка
  • Опубліковано 7 лют 2025
  • 📌 In questo video ti mostrerò come creare una semplice macro per salvare ciascun foglio come nuovo file Excel.
    📌 Se desideri portare le tue competenze di Excel al livello successivo, scopri il potere delle Macro Excel per automatizzare le tue attività lavorative con il corso Macro e VBA! Visita la pagina del corso:
    ✔ area51.excelpe...
    📌 Potrai inoltre seguirmi su …
    ✔ Facebook: / excelpertutti
    ✔ Instagram: / excelpertutti
    ✔ LinkedIn: / damiano-causale-08412289
    ✔ LinkedIn: / excel-per-tutti
    📌 Se il video ti è piaciuto metti un 👍🏻 e condividilo😉
    📌 Iscriviti al canale per non perdere le lezioni successive😉

КОМЕНТАРІ • 19

  • @acemusic2895
    @acemusic2895 Рік тому

    Buon pomeriggio, macro utilissima :) Volevo chiederti se fosse possibile modificare questa macro facendo un copia incolla valori sui nuovi file. Sostanzialmente ho una pivot per ogni foglio ed utilizzo la tua macro per creare tanti file quanti sono i fogli di lavoro. Nei nuovi fogli, tuttavia, copia la pivot con le fonti. A me interessa solo il dato filtrato. Ringrazio anticipatamente.

    • @excelpertutti
      @excelpertutti  Рік тому +1

      Ciao, grazie per aver apprezzato il mio video;)
      Spero di aver capito la tua esigenza ... pertanto ti suggerisco il codice per selezionare una tabella pivot e fare il copia incolla dei solo valori:
      ActiveSheet.PivotTables(1).TableRange1.Select
      Selection.Copy
      Selection.PasteSpecial Paste:=xlPasteValues
      Puoi adattarlo alle tue esigenze.

    • @MatteoFregnani
      @MatteoFregnani Рік тому

      @@excelpertutti ciao, ottima macro. se avessi una tabella di powerquery all'interno di ogni foglio come potrei copiare e incollare i 'valori' della tabella nel nuovo file creato dalla macro?
      Grazie

    • @excelpertutti
      @excelpertutti  Рік тому +1

      Ciao Matteo,
      ecco un suggerimento per copiare una tabella e incollare i valori da un foglio all'altro di due file differenti:
      Workbooks(1).Activate
      Worksheets(1).ListObjects(1).Range.Select
      Selection.Copy
      Workbooks(2).Activate
      Worksheets(1).Select
      Range("A1").PasteSpecial Paste:=xlPasteValues
      Adatta il codice alle tue esigenze

    • @MatteoFregnani
      @MatteoFregnani Рік тому +1

      @@excelpertutti Grazie

  • @markoxantos5175
    @markoxantos5175 Рік тому +1

    Complimenti per la lezione, molto chiara, vorrei chiedere come fare una macro per creare alla fine di ogni riga un link o pulsante che cliccandoci sopra mi consenta di creare un nuovo file di Excel col nome riportato su una cella. chiaramente il link rimarrebbe valido per aprire il file Excel creato all'occorrenza. Esempio: File principale Excel "lista della spesa.xlsx" all'interno elenco delle volte che faccio la spesa, alla fine della linea cella che contenga link/pulsante che crea nuovo foglio Excel "Dettagli cose da comprare 001.xlsx" così nel foglio principale rimane solo l'elenco e quando vorrei sapere i dettagli per ogni spesa clicco sul pulsante che mi aprirà il foglio coi dettagli degli acquisti fatti. Grazie tante e complimenti ancora

    • @excelpertutti
      @excelpertutti  Рік тому

      Ciao Marko, grazie per aver apprezzato il video. Per creare dei link posso suggerirti un articolo dedicato del mio blog che puoi sfruttare per la tua soluzione:
      www.excelpertutti.com/guida-completa-ai-collegamenti-ipertestuali-con-vba-excel/

  • @MariangelaM3
    @MariangelaM3 9 місяців тому

    Lezione utilissima! Ma ho una domanda a riguardo. Io dovrei estrarre tre fogli alla volta da un unico file, cioè dovrei creare da un file excel (con più di 100 fogli) più file con 3 fogli ciascuno in ordine così come sono stati salvati sul file principale. Cosa devo scrivere tra le parentesi di: Sheets(????).Name ? Grazie in anticipo!

    • @excelpertutti
      @excelpertutti  9 місяців тому +1

      Salve Mariangela,
      grazie per aver apprezzato il mio video.
      La modifica non va fatta all'interno del Sheets(????).Name ma all'interno del ciclo.
      For f = 1 To Sheets.Count Step 3
      Sheets(Array(f, f + 1, f + 2)).Copy
      ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & Sheets(1).Name
      ActiveWorkbook.Close
      Next f
      Questa modifica ti consente di copiare tre fogli alla volta in un nuovo file.
      L'aspetto importante è che il numero dei fogli contenuti nel file principale siano multipli di tre

    • @MariangelaM3
      @MariangelaM3 9 місяців тому

      @@excelpertutti Grazie mille ancora Damiano! Sei stato fondamentale per il progetto a cui sto lavorando.🤩

    • @excelpertutti
      @excelpertutti  9 місяців тому

      Grazie Mariangela! Felice di aver dato un contributo al tuo progetto🥳

  • @giuseppetramonta6252
    @giuseppetramonta6252 2 роки тому +1

    Salve posso creare là macro anche copiando il foglio singolo ?

    • @excelpertutti
      @excelpertutti  2 роки тому

      Ciao Giuseppe,
      puoi utilizzare il codice:
      Sheets(n).Copy
      Al posto della n inserisci il numero o il nome del foglio tra le doppie virgolette

  • @CristianNasoni
    @CristianNasoni Рік тому

    salve, io ho realizzato una macro che mi permette di generare in automatico dopo tot minuti dall'apertura del file un file pdf per ogni foglio di lavoro e li va a scrivere all'interno di una specifica cartella, verificando preventivamente se vi fosse gia una versione precedente. La macro di per se funziona ma dopo un primo test avvenuto con successo, senza aver apportato alcun tipo di modifica alla stessa, mi sono imbattuto in un errore che di fatto ha smesso di far funzionare solo l'automatismo di timing, vanificando di fatto il senso di co che stavo creando.
    Qualcuno di più esperto potrebbe aiutarmi a capire i cosa incappo e che mi impedisce di far funzionare il tutto?
    Grazie

    • @excelpertutti
      @excelpertutti  Рік тому

      Salve Cristian,
      per capire dove la macro produce l'errore ti suggerisco di eseguirla passo dopo passo utilizzando il tasto funzione F8.
      Questo ti consente di individuare il punto preciso in cui genera l'errore

  • @paxiragusa5690
    @paxiragusa5690 10 місяців тому

    Salve, grazie per la lezione, tra l'altro non ho trovato molto in giro quindi utilissima per quello che vorrei creare. Premetto che dovrei usare questa macro per l'ufficio e purtroppo da adattare su Libreoffice. Ho provato con diverse soluzioni ma si blocca con questo messaggio . Errore di runtime BASIC. '1' Si è verificata un'eccezione Type: com.sun.star.task.ErrorCodeIOException Message: SfxBaseModel::impl_store failed: 0x440a(Error Area:Sfx Class:AlreadyExists Code:10). Al massimo mi crea copia del file ma non nel formato desiderato e che non si riesce ad aprire. 😥

    • @excelpertutti
      @excelpertutti  10 місяців тому +1

      Ciao, non sono un esperto di Libre Office.
      La macro funziona con Excel che ragiona con il VBA.
      Mi spiace non poterti aiutare nella gestione dell'errore😖

    • @paxiragusa5690
      @paxiragusa5690 10 місяців тому

      Grazie per la risposta celere, devo dire non ci speravo. Cmq ho risolto in parte aggiungendo dopo Sheets(1).Name & ". ods" però... 1 si fermava al primo foglio e non completava il ciclo forse qualcosa di errato nel lancio con inputbox? 2 il file relativo al foglio, si è in formato ods e si apre ma risultava mancante di tutte le macro inserite nel file di origine un po' come succede quando si salva un file Excel in ods. Qualche idea a proposito per qualche soluzione? Capisco che non è il posto giusto per aprire una discussione ma non ho trovato altro in giro 😢

    • @excelpertutti
      @excelpertutti  10 місяців тому +1

      Ciao, parto dal punto 2 rispondendo che la macro del video genera tanti file, ciascuno senza codice.
      Pertanto anche nel mio esempio il risultato è identico al tuo.
      Per il punto 1 ... Sheets(1).Name & ".ods" non è parte di un ciclo ma potrebbe essere sostituito da Sheets(i).Name & ".ods" dove i rappresenta la variabile.
      Non so quanto il mio contributo possa esserti utile ma mentre Libre Office si basa su XML Excel su VBA. I due dialogano con linguaggi differenti.