Condividi:        

salvare con nome variabile in formato excel

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

salvare con nome variabile in formato excel

Postdi Gianca532011 » 04/10/16 14:34

Ciao a tutti, ho questo problema sul quale sono fermo da 2 giorni nonostante numerosissimi tentativi e prove fatte; in pratica devo salvare un file excel sia in forma pdf , per invio come allegato mail, e in un archivio "interno" come file .xlsm.
La difficoltà con la quale mi sono scontrato è che devo salvarlo con un codice alfanumerico presente in P12 che varia da scheda a scheda , ovvero ad ogni nuova compilazione si introduce un nuovo codice, la macro poi aggiunge anche la data (solo l' anno) .
Ora, per il pdf tutto va bene, vedi macro sotto, ma con il file excel non ne vengo a capo. ovviamente ho tentato di duplicare il blocco centrale da with worksheet.. modificandolo opportunamente da PDf a XLSm, ma non và . dove sbaglio? é la procedura corretta , oppure...
grazie

.
probabilmente
Codice: Seleziona tutto
 Public Sub Crea_pdf()
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 InitialFoldr$ = "%HOMEPATH%\Desktop\" 'Startup folder
 With Application.FileDialog(msoFileDialogFolderPicker) 'User input for folder to look at
 .InitialFileName = Application.DefaultFilePath & "\"
 .Title = "Seleziona la cartella di salvataggio"
 .InitialFileName = InitialFoldr$
 .Show
 On Error GoTo errHandler
 If .SelectedItems.Count = 0 Then Exit Sub
 mfolder = .SelectedItems(1) & "\"
 End With
 MsgBox mfolder & " selected"
   
 With Worksheets("foglio1")
 sNome = .Range("P12").Value & _
 " " & Format(Now(), "-yyyy") & ""
 fname = mfolder & "\" & sNome & ".pdf"
 .ExportAsFixedFormat _
 Type:=xlTypePDF, Filename:=fname, _
 Quality:=xlQualityStandard, _
 IncludeDocProperties:=True, _
 IgnorePrintAreas:=False, _
 OpenAfterPublish:=False
 
 End With
   
  MsgBox "Il file PDF è stato salvato."

exitHandler:
        Exit Sub
errHandler:
        MsgBox "Non ho potuto salvare il file PDF"
Resume exitHandler


Call Chiudi_Excel
End Sub

Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18

Sponsor
 

Re: salvare con nome variabile in formato excel

Postdi Marius44 » 04/10/16 22:42

Ciao
Da quel che vedo nel tuo codice npn mi sembra che tu abbia "tentato" di salvare il file .xlsm
A mio avviso dovresti inserire il salvataggio qui

With Worksheets("foglio1")
sNome = .Range("P12").Value & _
" " & Format(Now(), "-yyyy") & ""

' CODICE PER IL SALVATAGGIO DEL FILE .xlsm

fname = mfolder & "\" & sNome & ".pdf"
.ExportAsFixedFormat _
Type:=xlTypePDF, Filename:=fname, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End With

Ciao,
Mario
Marius44
Utente Senior
 
Post: 655
Iscritto il: 07/09/15 22:00

Re: salvare con nome variabile in formato excel

Postdi Gianca532011 » 05/10/16 09:10

Ciao,
Da quel che vedo nel tuo codice npn mi sembra che tu abbia "tentato" di salvare il file .xlsm


vero, la macro postata è quella funzionante, ora provo con la tua soluzione poi ti so dire.
grazie .
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18

Re: salvare con nome variabile in formato excel

Postdi Gianca532011 » 05/10/16 09:32

Mario,leggendo meglio il tuo codice hai solo copiato pari pari il blocco che mi crea il PDf, ma la mia richiesta è di avere il salvataggio anche del file xlsm.
Per esempio il codice sotto funziona, solo che crea il file ma non "salva e chiude" correttamente, manca qualcosa ..

Ps questa macro è inserita in un modulo, ora provo ad spostarla nel foglio 1, poi vediamo .

Codice: Seleziona tutto
Public Sub Crea_pdf()
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 InitialFoldr$ = "%HOMEPATH%\Desktop\" 'Startup folder
 With Application.FileDialog(msoFileDialogFolderPicker) 'User input for folder to look at
 .InitialFileName = Application.DefaultFilePath & "\"
 .Title = "Seleziona la cartella di salvataggio"
 .InitialFileName = InitialFoldr$
 .Show
 On Error GoTo errHandler
 If .SelectedItems.Count = 0 Then Exit Sub
 mfolder = .SelectedItems(1) & "\"
 End With
 MsgBox mfolder & " selected"
   
 With Worksheets("foglio1") '<<< qui salva come pdf
 sNome = .Range("P12").Value & _
 " " & Format(Now(), "-yyyy") & ""
 fname = mfolder & "\" & sNome & ".pdf"
 .ExportAsFixedFormat _
 Type:=xlTypePDF, Filename:=fname, _
 Quality:=xlQualityStandard, _
 IncludeDocProperties:=True, _
 IgnorePrintAreas:=False, _
 OpenAfterPublish:=False
 
 End With
   
  MsgBox "Il file PDF è stato salvato."
 
 Sheets("Foglio1").Select  '<<< da qui salva normalmente il file come excel
    Range("P12").Select
    ChDir "C:\Users\gianca\Desktop\gev_schede\"
    ActiveWorkbook.SaveAs Filename:=ActiveCell, _
    FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
   
  MsgBox "Il file Excel è stato salvato."

exitHandler:
        Exit Sub
errHandler:
        MsgBox "Non ho potuto salvare il file Excel"
Resume exitHandler
        ActiveWindow.Close

   
End Sub
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18

Re: salvare con nome variabile in formato excel

Postdi Gianca532011 » 05/10/16 10:35

Chiarisco meglio"l'inghippo" con il quale mi sto scontrando:
1)la macro sopra, una volta lanciata crea e salva il mio file pdf attribuendogli il codice alfanumerico della cella p12 ;
2) poi parte la macro di salvataggio del file excel, attribuisce correttamente il codice alfanumerico, salva correttamente ma mi si sovrappone al mio foglio sorgente e ... stop, quindi devo fare "File- chiudi " per chiuderlo, ma cosi facendo chiudo anche il file sorgente.
In pratica è come se mancasse qualche istruzione che al pari del file pdf lo chiuda correttamente restando nel file sorgente.
Spero di aver meglio chiarito l'inconveniente .
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18

Re: salvare con nome variabile in formato excel

Postdi Gianca532011 » 05/10/16 13:37

Ho risolto in questo modo :
Codice: Seleziona tutto
Public Sub Crea_pdf()
 Set objFSO = CreateObject("Scripting.FileSystemObject")
 InitialFoldr$ = "%HOMEPATH%\Desktop\" 'Startup folder
 With Application.FileDialog(msoFileDialogFolderPicker) 'User input for folder to look at
 .InitialFileName = Application.DefaultFilePath & "\"
 .Title = "Seleziona la cartella di salvataggio"
 .InitialFileName = InitialFoldr$
 .Show
 On Error GoTo errHandler
 If .SelectedItems.Count = 0 Then Exit Sub
 mfolder = .SelectedItems(1) & "\"
 End With
 MsgBox mfolder & " selected"
   
 With Worksheets("foglio1") '<<< qui salva come pdf
 sNome = .Range("P12").Value & _
 " " & Format(Now(), "-yyyy") & ""
 fname = mfolder & "\" & sNome & ".pdf"
 .ExportAsFixedFormat _
 Type:=xlTypePDF, Filename:=fname, _
 Quality:=xlQualityStandard, _
 IncludeDocProperties:=True, _
 IgnorePrintAreas:=False, _
 OpenAfterPublish:=False
 
 End With
   
  MsgBox "Il file PDF è stato salvato."

   With Worksheets("foglio1").Select '<< qui salva come xlsx ma con nome pari alla scheda ultima compilata
    Range("A1:r35").Select
    Dim Perc, Nome, MioNome
    Perc = "C:\Users\gianca\Desktop\gev_schede\"
    Nome = Range("P12").Value '<<<  nome file da cella P12
    MioNome = Perc & "" & Nome & ".xlsx"
    ActiveWorkbook.SaveAs Filename:=MioNome, _
    FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
    ReadOnlyRecommended:=False, CreateBackup:=False
    ActiveWorkbook.Close
    End With
   
  MsgBox "Il file Excel è stato salvato."

exitHandler:
        Exit Sub
errHandler:
        MsgBox "Non ho potuto salvare il file Excel"
Resume exitHandler
        ActiveWindow.Close
     
End Sub





mancava l'istruzione "workbook.close ", unico aspetto negativo è che cosi la macro "chiude" sia il file nuovo - con codice alfanumerico- sia il file matrice. Nulla di male ma se dovessi avere un centinaio di schede da compilare perderei tempo inutilmente.
Va be che NON sono al lavoro però.... scoccia sempre.
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18

Re: salvare con nome variabile in formato excel

Postdi Anthony47 » 05/10/16 15:01

unico aspetto negativo è che cosi la macro "chiude" sia il file nuovo - con codice alfanumerico- sia il file matrice. Nulla di male ma se dovessi avere un centinaio di schede da compilare perderei tempo inutilmente
Se per file "matrice" intendi quello di partenza, allora dovresti fare non una ActiveWorkbook.SaveAs ma
Codice: Seleziona tutto
ActiveWorkbook.SaveCopyAs Filename:=nome

Questo ti lascera' il file iniziale aperto e col suo nome originale.

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

Re: salvare con nome variabile in formato excel

Postdi Gianca532011 » 05/10/16 18:20

Ok, grazie.
Giancarlo
win 10 - Office 2016 Ita
Gianca532011
Utente Senior
 
Post: 326
Iscritto il: 27/05/11 10:18


Torna a Applicazioni Office Windows


Topic correlati a "salvare con nome variabile in formato excel":


Chi c’è in linea

Visitano il forum: Nessuno e 79 ospiti