Condividi:        

Copiare fogli di lavoro da altro file al file corrente

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Copiare fogli di lavoro da altro file al file corrente

Postdi mau52 » 08/10/17 17:44

Ho creato un file (Modello), contenente diversi fogli.
Ho molti file clienti, sui quali vorrei copiare 2 fogli dal file Modello
Il nome del file corrente (singolo file cliente) varia in continuazione.
Tutte le macro che ho trovato in rete per copiare fogli fra file diversi, vogliono il nome di entrami i file.
Ma io di certo ho solo il file origine (Modello), perciò sto cercando una macro che copi i 2 fogli del Modello nel file corrente.
Troppo prolisso? Scusate ..... è la mia prima volta!
Grazie a chi vorrà aiutarmi! :)
mau52
Newbie
 
Post: 9
Iscritto il: 08/10/17 17:37

Sponsor
 

Re: Copiare fogli di lavoro da altro file al file corrente

Postdi Anthony47 » 08/10/17 22:37

Ciao mau52, benvenuto nel forum.
Allora il codice di una macro idonea potrebbe essere questo:
Codice: Seleziona tutto
Sub ShFroModel()
Dim modWb As String, cWb As String, tmpWb As String, mySplit
'
modWb = "C:\Percorso\NomeFileModello.xlsx"         '<<< 111 Il Modello
mySplit = Split(" " & modWb, "\", , vbTextCompare)
tmpWb = mySplit(UBound(mySplit))
'Chiudi il Modello, se aperto:
On Error Resume Next
    Workbooks(tmpWb).Close False
On Error GoTo 0
'
cWb = ActiveWorkbook.Name                   'Il file attivo:
Workbooks.Open Filename:=modWb              'Apri il Modello
'Copia 2 fogli da Modello:
Sheets("Foglio1").Copy Before:=Workbooks(cWb).Sheets(1)     '<<< Indicare il secondo Foglio da importare da Modello
Sheets("Foglio2").Copy Before:=Workbooks(cWb).Sheets(1)     '<<< Indicare il primo Foglio da importare da modello
Workbooks(tmpWb).Close False                'Chiudi il Modello
End Sub

Il codice e' da inserire all'interno del tuo Personal.xlsm. Se non hai un Personal, lo puoi creare avviando e fermando subito la registrazione di una nuova macro e facendo la scelta "Memorizza macro in: Cartella macro personale"; ti ritroverai cosi' nel vba un "VbaProject (Personal.xlsm)"
Se non sei pratico di registrazione macro, i primi rudimenti li puoi trovare qui: viewtopic.php?f=26&t=103893&p=622593#p622593

Creato Personal.xlsm, copia il codice e inseriscilo in un "modulo standard" del progetto, ad esempio lo stesso Modulo in cui e' stata registrata la macro vuota di cui abbiamo appena detto.

La riga marcata <<< 111 va personalizzata con l'indirizzo del file Modello da aprire. Nelle altre due righe marcate <<< devi indicare quali fogli vanno copiati dal Modello al file "corrente".

Il file Personal.xlsm viene automaticamente aperto tutte le volte che viene avviato Excel, e questo ti consentira' di avere la macro sempre disponibile.
Attenzione: alla chiusura di excel ti chiedera' se vuoi salvare il file Personal.xlsm, ovviamente risponderai (questa prima volta) "Salva".

Quando vuoi lanciare la macro, partendo dal file in cui vuoi aggiungere i fogli prelevandoli da Modello:
-premi Alt-F8
-accertati che l'elenco a discesa "Visualizza Macro in:" sia su Personal.xlsm (oppure Tutte le cartelle di lavoro aperte)
-seleziona ShFroModel dall'elenco di macro disponibili
-premi Esegui
La macro chiude il file Modello, se fosse aperto; poi lo apre e copia i due fogli nel file attivo al momento in cui la macro e' stata avviata; infine chiude il Modello.

Se hai XL2007 o sucessive puoi facilmente aggiungere una icona alla tua "Barra di accesso rapido" (in genere e' un insieme di comandi disponibili nell'estremo Alto /Sx dello schermo, sopra i Tab del menu), in modo da eseguire la macro premendo una icona.
Se la macro funziona potremo valutare anche questa opzione; indica la versione di Excel con cui lavori.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare fogli di lavoro da altro file al file corrente

Postdi mau52 » 09/10/17 07:51

Grazie Anthony.
Ha funzionato al primo colpo! Fantastico... :)
ho già creato l'icona per la macro come suggerivi tu e l'ho testata su una decina di file.
Sei stato veramente gentile.
Uso Excel 2016
Un saluto
Maurizio
mau52
Newbie
 
Post: 9
Iscritto il: 08/10/17 17:37


Torna a Applicazioni Office Windows


Topic correlati a "Copiare fogli di lavoro da altro file al file corrente":


Chi c’è in linea

Visitano il forum: Nessuno e 23 ospiti