Saveas addin



  • 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

    Sub salvaanalisi()


    Dim strName As String

    strName = Str(Int(Format(Now(), "0.00000") * 10000))
    strPath = "H:macro"

    'ThisWorkbook.IsAddin = True
    ThisWorkbook.SaveAs Filename:=strPath & "" & strName & ".xlam", FileFormat:=xlOpenXMLAddIn

    End Sub


    Qualcuno mi può aiutare?

    Grazie



  • di scossa data: 24/03/2015 16:10:37

    Ti consiglio di leggere il thread Salvare file in una cartella diversa quando aperto, perché potrai trovare uno spunto utile per la soluzione del tuo problema.

    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.

    scossa's web site
    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

    Sembra funzionare