PDA

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. ;)

MarcoGG
14-12-2009, 19:51
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. :)

MarcoGG
15-12-2009, 12:07
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. ;)

zuper
16-12-2009, 08:46
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 :)

MarcoGG
16-12-2009, 10:03
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