Condividi:        

[Excel] Macro per creare File

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

[Excel] Macro per creare File

Postdi paaz » 30/05/11 10:41

Ciao a tutti,
dovrei creare una macro che mi permetta di creare diversi fogli di lavoro a partire da 1 foglio di lavoro che per semplicità chiamerò Foglio 1.

In pratica mi succede questo: il primo File che crea funziona benissimo, dal secondo la mcro non funziona.

Il problema sta nel nome del File che viene creato: infatti la Macro al primo tentativo crea un file "Carte1.xls" che collegandosi al Foglio 1 funziona bene.

Es.
...
Windows("Foglio1.xls").Activate
Range("A4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Cartel1").Activate
Range("A2").Select
...

Dal secondo tentativo in poi, il nuovo File creato si chiamerà Carte2, Carte3 e così via...ovviamente questo nuovo File non comunicherà con Fogloio 1 in quanto la Macro riporta esclusivamente Carte1.

Come posso dire alla macro di usare lo stesso nome del File creato??
paaz
Utente Junior
 
Post: 30
Iscritto il: 22/04/11 14:24

Sponsor
 

Re: [Excel] Macro per creare File

Postdi Avatar3 » 30/05/11 12:11

Scusami ma non mi è molto chiaro cosa vorresti fare
(se non ricevi risposta da altri utenti è meglio chiarire)
Per il funzionamento delle macro si deve impostare la protezione a Bassa o Media.
Menu Strumenti -> Macro -> Protezione...
Avatar utente
Avatar3
Utente Senior
 
Post: 569
Iscritto il: 04/04/11 09:04

Re: [Excel] Macro per creare File

Postdi paaz » 30/05/11 12:33

Infatti non sono stato molto chiaro;
provo a spiegarmi meglio.

Il file in cui sto lavorando si chiama prova;
in prova sto lavorando in un foglio chiamato codici
All'interno di codici ho creato una macro, assegnandola ad un pulsante, che mi permette di creare un nuovo file excel.

La macro creata seleziona determinate colonne del foglio "prova" e le incolla (con incolla speciale - solo valori) nel foglio 1 del nuovo file excel creato;

il nuovo file excel creato si chiama di default "Carte1" al primo tentativo, "Carte2" al secondo e così via

Cosa succede: nella macro quando devo incollare i valori nel richiamare il nuovo file excel creato, perciò nella macro ci sarà una riga che attiverà il file "carte1";

se però voglio creare un secondo nuovo file o faccio qualche errore e voglio ricreare il primo file, excel lo rinominerà "carte2", "carte3", pertanto la macro, non trovando "carte1" non funzionerà più.

A me servirebbe salvare con nome il file e fare in modo che la macro possa riconoscere tale nome;

inoltre mi servirebbe poter salvare i diversi files che via via creo in più percorsi , pertando "salva con nome" dovrebbe aprirmi la tendina per scegliere la directory nella quale salvare i files che creo.

Spero di essere stato maggiormente chiaro e che possiate essermi di aiuto. Posto di seguito la macro:


Sub Macro1()

Workbooks.Add ' creo il nuovo file'
windows("prova.xls").Activate
Range("A4").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Cartel1").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False ' lavoro il nuovo file incollando le colonne che servonoa a partire dal file prova.xls'

.......
paaz
Utente Junior
 
Post: 30
Iscritto il: 22/04/11 14:24

Re: [Excel] Macro per creare File

Postdi Anthony47 » 30/05/11 15:17

Penso ti convenga memorizzare il nome assegnato al file appena creato per poter poi richiamare, usando il suo nome, il file che ti interessa; per questo inserirai qualcosa come
Codice: Seleziona tutto
Workbooks.Add ' creo il nuovo file'
NewFN1 = ActiveWorkbook.Name    '<<< AGGIUNTA
Hai il nome del file nella variabile NewFN1 (una variabile per ogni file che crei), poi invece di Windows("Cartel1").Activate userai Windows(NewFN1).Activate

Per scegliere una directory in cui salvare puoi usare Application.FileDialog(msoFileDialogFolderPicker) oppure direttamente Application.FileDialog(msoFileDialogSaveAs) che ti consente di specificare anche il file name con cui salvare.
Ad esempio
Codice: Seleziona tutto
With Application.FileDialog(msoFileDialogFolderPicker)
    .Show
    PercCorr = .SelectedItems(1) & "\"
End With
In questo modo avrai la directory prescelta nella variabile PercCorr, che poi userai per comporre il tuo filename completo (e' un codice "grezzo", devi completarlo per inserire altre opzioni di tuo interesse della proprieta' FileDialog e l' abort in caso di mancata scelta; cerca nel forum altre macro basate su FileDialog per degli esempi, e ovviamente l' help on line del vba)

Non so se questi spunti ti sono sufficienti, se NO allora posta ancora.

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

Re: [Excel] Macro per creare File

Postdi paaz » 31/05/11 08:13

Grazie Anthony, è quello a cui avevo pensato ma non riuscivo a mettere insieme la cosa...fantastico come sempre.

Ora provo ad usare Application.FileDialog(msoFileDialogFilePicker) anche se mi servirebbe non specificare un percorso predefinito ma poterlo scegliere. Faccio qualche tentativo...
paaz
Utente Junior
 
Post: 30
Iscritto il: 22/04/11 14:24

Re: [Excel] Macro per creare File

Postdi paaz » 31/05/11 08:59

Ho ascoltato i tuoi consigli ed ho trovato la soluzione...ora rieco a rinominare il file ed a scegliere il percorso per il salvataggio.

Per chiudere con questo foglio di lavoro ti chiedeo una cosa:
è possibile inserire delle condizioni che se non verificate mi rimandano ad un punto precedente della macro...??
paaz
Utente Junior
 
Post: 30
Iscritto il: 22/04/11 14:24

Re: [Excel] Macro per creare File

Postdi Anthony47 » 31/05/11 23:40

mi servirebbe non specificare un percorso predefinito ma poterlo scegliere. Faccio qualche tentativo...
Questo e' proprio quello che ti consente di fare FileDialog, come hai scoperto facendo qualche prova.

è possibile inserire delle condizioni che se non verificate mi rimandano ad un punto precedente della macro...?
If Not Condizione_verificata Then Goto Label1
Avrai messo l' etichetta di riga "Label1:" (senza apici) nel punto in cui dovresti saltare; vedi help on line del vba alla voce " Istruzione GoTo".
Ovviamente ci sono 100 modi per testare se la/le condizioni sono verificate (tutte? qualcuna?); qualcosa in piu' te lo potro' dire solo dopo che spieghi "meglio" quali sono le condizioni.

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

Re: [Excel] Macro per creare File

Postdi alkorgiu » 02/06/11 14:26

ciao
alkorgiu
Newbie
 
Post: 8
Iscritto il: 01/06/11 11:14


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Macro per creare File":


Chi c’è in linea

Visitano il forum: Nessuno e 27 ospiti