Salvare file con vba



  • Salvare file con vba
    di aleasti (utente non iscritto) data: 21/01/2015 18:32:36

    Ciao a tutti, non so esattamente come spiegare ma ci provo.
    Vorrei sapere come scrivere una macro che mi permetta di salvare il file nella stessa cartella da cui l'ho aperto. Ho provato con il registratore e naturalmente memorizza la cartella in cui ho aperto il file.

    Allego la macro

    Grazie.
     
        ChDir = ThisWorkbook.Path '"C:prova"
        ActiveWorkbook.SaveAs Filename:="C:provaMASTER COMPLETO DA MODIFICARE.xlsm", _FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            
    



  • di Lucas87 data: 21/01/2015 19:21:27

    Ciao
    Premesso che salvandolo nella stessa cartella dovrai cambiare il nome
     
    ThisWorkbook.SaveAs (ThisWorkbook.Path & "
    omefile")



  • di alemiasti (utente non iscritto) data: 22/01/2015 01:07:53

    Ti ringrazio per l'aiuto!



  • di Paolo (utente non iscritto) data: 22/01/2015 07:44:13

    Chiedo scusa se riapro la discussione ma la domanda è inerente...

    Se volessi salvare sempre nella stessa cartella, con lo stesso nome ma... Alla fine fargli aggiungere la data e l'ora in cui viene effettuato il salvataggo è possibile?

    Grazie



  • di Vecchio Frac data: 22/01/2015 10:49:56

    Il nome del salvataggio è una stringa di testo, che puoi comporre come vuoi (rispettando le convenzioni sui nomi di file del tuo sistema operativo) prima di darla al metodo SaveAs.
     
    'per esempio data e ora del salvataggio: --> nomefile_22-01-2015-10-49
    ThisWorkbook.SaveAs ThisWorkbook.Path & "
    omefile_" & Format(Now, "dd-mm-yyyy-hh-nn")
    






  • di Paolo (utente non iscritto) data: 22/01/2015 10:58:45



    GRAZIE Vecchio Frac



  • di Lucas87 data: 22/01/2015 11:37:48

    Ciao
    Così prende proprio il nome del file, aggiunge data e ora e mantiene l'estensione
     
    nome = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1) & "_" & Format(Now, "dd-mm-yyyy-hh-nn") & Right(ThisWorkbook.Name, Len(ThisWorkbook.Name) - InStrRev(ThisWorkbook.Name, ".") + 1)
    ThisWorkbook.SaveAs (ThisWorkbook.Path & "" & nome)
    



  • di Vecchio Frac data: 22/01/2015 11:43:11

    Occhio all'errore che si verifica se salvi un file che non era stato già salvato... che quindi non ha ancora un'estensione... quindi InstrRev non trova il punto... quindi si arrabbia ^_^





  • di Paolo (utente non iscritto) data: 22/01/2015 20:19:09

    Ragazzi... Sto' incontrando un nuovo problema...

    Io apro Prova.xls faccio le mie modifiche e ad un certo punto voglio fare la mia copia che.si chiama BACKUP giorno e ora.xls xche' devo fare delle modifiche al file che non so se conservare o no.
    Dopo aver fatto il salvataggio non sono più su Prova.xls a lavorare ma Backup giorno.e ora.xls...
    Come devo modifivare il VBA per dirgli di fare la.copia ma poi tornare a lavorare su Prova.xls?