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.
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.
@@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
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
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
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/
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!
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
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
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
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. 😥
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😖
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 😢
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.
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.
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.
@@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
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
@@excelpertutti Grazie
Salve posso creare là macro anche copiando il foglio singolo ?
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
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
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/
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!
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
@@excelpertutti Grazie mille ancora Damiano! Sei stato fondamentale per il progetto a cui sto lavorando.🤩
Grazie Mariangela! Felice di aver dato un contributo al tuo progetto🥳
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
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
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. 😥
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😖
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 😢
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.