Forum di Excel e VBA, per condividere esperienze e risolvere problemi su: Excel, Word, Access, Power Point, Microsoft Office, macro, Visual Basic e Visual Studio.
Saveas addin di Riccardo57 (utente non iscritto) data: 24/03/2015 15:08:12
Buongiorno, ho questo problema:
ho creato due programmi che periodicamente aggiorno (ANALISI.xlam e UTILITY xlam)
A volte capita che, in fase di salvataggio manuale, vada inavvertitamente a sovrascrivere il file sbagliato perdendo l'altro file.
Vorrei creare una subroutine che mi salvasse l'addin in una specifica cartella, aggiungendo al nome del file il seriale della data e dell'ora, in modo da avere uno storico delle varie versioni senza la possibilità di errore.
Ho provato questo codice ma mi salva la cartella corrente e non l'addin
Comunque, se rinunci a fare copie automatiche, te la puoi cavare con questa procedura che, per quanto possa sembrare "strana", ritengo sia la più sicura:
1) nell'editor del VBA selezioni il progetto ANALISI.xlam;
3) selezioni il modulo di classe ThisWorkbook (ovvero Questa_cartella_di_lavoro);
4) nella finestra delle proprietà (che puoi vedere premendo F4) imposta la proprietà IsAddin a False e poi a True;
5) nell'editor del VBA selezioni il progetto UTILITY.xlam;
6) selezioni il modulo di classe ThisWorkbook (ovvero Questa_cartella_di_lavoro);
7) nella finestra delle proprietà (che puoi vedere premendo F4) imposta la proprietà IsAddin a False e poi a True;
8) fai le modifiche che devi fare ai tuoi file;
9) chiudi l'editor;
10) chiudi Excel: ti verrà chiesto se salvare il file OpenFile_Event.xla, rispondi di sì.
In questo modo non corri rischi di sbagliare file.
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
di Riccardo57 (utente non iscritto) data: 24/03/2015 17:52:06
Ti ringrazio, ho comunque risolto così:
Private Sub SAVEADDIN()
Dim strName As String
strName = "H:garstoricoNEW" & "ANALISI" & strName & str(Int(Format(Now(), "0.00000") * 10000)) & ".xlam"
ThisWorkbook.IsAddin = True
ThisWorkbook.SaveAs Filename:=strName, FileFormat:=xlOpenXMLAddIn, CreateBackup:=True
End Sub