View Full Version : [vba access] nome predefinito file excel al momento del salvataggio
john_revelator
11-12-2009, 23:14
Ciao a tutti. Lavorando su access mi ritrovo a generare tramite vba dei file excel. Una volta che il file è stato creato mi piacerebbe che l'utente, nel momento in cui decide di salvarlo, si trovasse un nome stabilito da me come predefinito anzichè cartel1.xls.
Ho provato a documentarmi un pò in rete e ho trovato il metodo GetSaveAsFilename ma non riesco a farlo funzionare. Potete darmi una mano? Grazie. :)
john_revelator
14-12-2009, 14:51
:fagiano:
john_revelator
14-12-2009, 19:30
Mi sa che mi devo arrendere. :rolleyes:
Ho girato in lungo e largo per la rete ma anche questo thread
http://www.ozgrid.com/forum/showthread.php?t=59118
riporta testualmente
The only way to rename an Workbook is to Save (if new) or Save as if already saved.
L'unica cosa che son riuscito a trovare è questo codice
ActiveWorkbook.Windows(1).Caption = "mio testo"
che però si limita a visualizzare il testo nella barra del titolo. Al momento di effettuare il salvataggio il nome "suggerito" rimane quello di default.
Ricordo che tempo fa avevo posto una domanda molto simile relativamente a word e in quel caso MarcoGG mi aveva fornito la soluzione ma a quanto pare in excel non si può fare. Pazienza. ;)
Ricordo che tempo fa avevo posto una domanda molto simile relativamente a word e in quel caso MarcoGG mi aveva fornito la soluzione ma a quanto pare in excel non si può fare. Pazienza. ;)
Postami il link di quel thread, e vedo di fare qualche prova appena ho tempo. Non vorrei averlo eliminato dalla mia lista... Eh eh, pazzesco, sto chiedendo il link ad una soluzione che ho dato io. :fagiano: :D
john_revelator
14-12-2009, 20:22
Postami il link di quel thread, e vedo di fare qualche prova appena ho tempo. Non vorrei averlo eliminato dalla mia lista... Eh eh, pazzesco, sto chiedendo il link ad una soluzione che ho dato io. :fagiano: :D
Ciao Marco. Ho fatto una ricerca ma non sono riuscito a trovare il thread.
Ho estrapolato il codice essenziale dall'applicazione in cui era integrato.
Private Sub Comando0_Click()
Set objword = CreateObject("Word.Application")
objword.Visible = True
Set objdoc = objword.Documents.Add
strNome = "prova.doc"
objword.ActiveWindow.Caption = strNome
With objword.Dialogs(wdDialogFileSummaryInfo)
.Title = strNome
.Execute
End With
Set objword = Nothing
End Sub
Mi pare mi avessi dato tu questa soluzione ma forse mi sbaglio. Non so se ci riconosci la tua arte. :)
Il thread era questo :
http://www.hwupgrade.it/forum/showthread.php?t=1624010
Purtroppo, da un rapido esame, in Word il set del title su wdDialogFileSummaryInfo, produce anche l'effetto desiderato di suggerire il nome del file voluto, mentre operando in modo analogo in Excel ( non esiste un corrispondente "xlDialogFileSummaryInfo" ) :
Dim MioExcel As Excel.Application
Set MioExcel = New Excel.Application
MioExcel.Visible = True
MioExcel.Workbooks.Add
Dim MioTitolo As String
MioTitolo = "TitoloCheVoglio.xls"
MioExcel.ActiveWindow.Caption = MioTitolo
MioExcel.ActiveWorkbook.BuiltinDocumentProperties("Title").Value = MioTitolo
questo non succede.
Bah, misteri di Office...
A questo punto hai più o meno 2 strade :
1. Andare a tentativi con le varie BuiltInDialogs di Excel...
2. Costruirti la tua UserForm ( cosa che farei io in ogni caso, ma NON in Access VBA... ) di richiesta salvataggio, da mostrare all'utente subito dopo la generzione del file Excel.
john_revelator
15-12-2009, 22:07
Ricordavo bene allora che anche in quel caso fosti tu a risolvere il mio problema. :)
Temo proprio che in excel il comportamento di word non sia riproducibile. Ho trovato diversi thread in forum stranieri in cui veniva posta la domanda ma nessuna soluzione.
Una delle alternative proposte era questa
xlApp.Dialogs(xlDialogSaveAs).Show ("mio_file.xls")
ma la finestra compare automaticamente, cosa che io non vorrei. Pazienza, l'utente nominerà manualmente il file come meglio gli aggrada.
Grazie Marco per la consueta disponibilità e competenza. ;)
ue ;)
http://www.rondebruin.nl/saveas.htm
stavo dando un occhio al link sopra e da una prima prova veloce pare funzionare...
ho provato la sub Copy_ActiveSheet_1() su office 2003 e funziona...
qui chiaramente modifichi tutto
TempFilePath = Application.DefaultFilePath & "\"
TempFileName = "Part of " & Sourcewb.Name & " " & Format(Now, "yyyy-mm-dd hh-mm-ss")
boh prova a dargli un occhio se ti serve :)
Temo proprio che in excel il comportamento di word non sia riproducibile. Ho trovato diversi thread in forum stranieri in cui veniva posta la domanda ma nessuna soluzione.
Prova a postare la domanda in inglese sul Forum Msdn dedicato a VBA :
http://social.msdn.microsoft.com/Forums/en-US/isvvba/threads
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.