IALweb Homepage
Forum Home Forum Home > MS Office > Microsoft Office > Microsoft Excel
  New Posts New Posts RSS Feed - [RISOLTO] nome mese da data per salvataggio file
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

[RISOLTO] nome mese da data per salvataggio file

 Post Reply Post Reply Page  12>
Author
Message
antoniomlg View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 13/Gen/2009
Location: Italy
Status: Offline
Points: 464
Post Options Post Options   Thanks (0) Thanks(0)   Quote antoniomlg Quote  Post ReplyReply Direct Link To This Post Topic: [RISOLTO] nome mese da data per salvataggio file
    Posted: 07/Feb/2018 at 15:41
buonasera eccomi nuovamente a chiedere il vostro aiuto

in cella d5 inserisco la data del primo giorno del mese
in cella I2 con la formattazione inserisco il nome del mese
con codice eseguo il salvataggio con nome che è uguale a celal I2
 la copia salvata non mi mantiene l'estensione xlsm perche??

hiedo se è possibile che il nome del mese si incrementa nel senso che se in cella I2 ho come in questo caso "febbraio"  vorrei che il nome dato alla nuova cartella sia marzo.?

è possibile ??

grazie


Edited by antoniomlg - 12/Feb/2018 at 20:01
Back to Top
Sponsored Links


Back to Top
dodo47 View Drop Down
Moderatore
Moderatore
Avatar

Joined: 29/Dic/2008
Location: Italy
Status: Offline
Points: 11355
Post Options Post Options   Thanks (0) Thanks(0)   Quote dodo47 Quote  Post ReplyReply Direct Link To This Post Posted: 08/Feb/2018 at 10:53
Ciao
che excel hai???

Il tuo file ha formato xls, pertanto al momento del salvataggio mantiene questo formato.

Ora se lo vuoi salvare come xlsm, aggiungendo un mese a quello scritto in I2, visto che I2 proviene da D5, potresti fare:
Dim mData As Date
    
    Sheets("inserimento dati").Select
   mData = Range("D5")
    mData = DateAdd("m", 1, mData)
    nome = Format(mData, "mmmm") & ".xlsm"
    
    ChDir "C:\Users\Windows7\Desktop\"
    ActiveWorkbook.SaveAs Filename:=nome, _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False

Tieni presente che ho dettagliato come viene ricavato il nome del mese successivo affinchè sia più chiaro.
Se vuoi, elimina la parte in rosso e la sostituisci con:

nome = Format(DateAdd("m", 1, Range("D5")), "mmmm") & ".xlsm"

saluti
domenico
win 10- office 2016
Back to Top
antoniomlg View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 13/Gen/2009
Location: Italy
Status: Offline
Points: 464
Post Options Post Options   Thanks (0) Thanks(0)   Quote antoniomlg Quote  Post ReplyReply Direct Link To This Post Posted: 09/Feb/2018 at 06:56
grazie appena rientro al lavoro proverò

grazie
Back to Top
antoniomlg View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 13/Gen/2009
Location: Italy
Status: Offline
Points: 464
Post Options Post Options   Thanks (0) Thanks(0)   Quote antoniomlg Quote  Post ReplyReply Direct Link To This Post Posted: 09/Feb/2018 at 20:12
Originally posted by dodo47 dodo47 wrote:

Ciao
che excel hai???

Il tuo file ha formato xls, pertanto al momento del salvataggio mantiene questo formato.


saluti

la versione di excel è la 2007...

-------
ho inserito le istruzioni suggerite e tutto alla perfezione 

grazie ancora.
Back to Top
antoniomlg View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 13/Gen/2009
Location: Italy
Status: Offline
Points: 464
Post Options Post Options   Thanks (0) Thanks(0)   Quote antoniomlg Quote  Post ReplyReply Direct Link To This Post Posted: 10/Feb/2018 at 10:25
Originally posted by dodo47 dodo47 wrote:

Ciao
che excel hai???

Il tuo file ha formato xls, pertanto al momento del salvataggio mantiene questo formato.

Ora se lo vuoi salvare come xlsm, aggiungendo un mese a quello scritto in I2, visto che I2 proviene da D5, potresti fare:
Dim mData As Date
    
    Sheets("inserimento dati").Select
   mData = Range("D5")
    mData = DateAdd("m", 1, mData)
    nome = Format(mData, "mmmm") & ".xlsm"
    
    ChDir "C:\Users\Windows7\Desktop\"
    ActiveWorkbook.SaveAs Filename:=nome, _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False

Tieni presente che ho dettagliato come viene ricavato il nome del mese successivo affinchè sia più chiaro.
Se vuoi, elimina la parte in rosso e la sostituisci con:

nome = Format(DateAdd("m", 1, Range("D5")), "mmmm") & ".xlsm"

saluti

-------------------------------
Tutto bene grazie al tuo suggerimento, tuttavia  ti chiedo :

l'esecuzione di questa macro và a buon fine,
 essa duplica la cartella di lavoro e gli dà come nome, il mese della data inserita in cella D5

alla fine della macro mi trovo con la cartella origine chiusa.... è possibile 
rimanere o ritornare sulla cartella di lavoro dalla quale si è lanciato la macro?? 


inserisco il file con solo il foglio interessato


grazie

Back to Top
dodo47 View Drop Down
Moderatore
Moderatore
Avatar

Joined: 29/Dic/2008
Location: Italy
Status: Offline
Points: 11355
Post Options Post Options   Thanks (0) Thanks(0)   Quote dodo47 Quote  Post ReplyReply Direct Link To This Post Posted: 10/Feb/2018 at 10:56
Ciao 
basta che tu riapra il documento originale;
Ora, pichè non hai specificato se li vuoi aperti entrambi o solo l'originale:

nel caso li vuoi entrambi:
Sheets("inserimento dati").Select
nome = Format(DateAdd("m", 1, Range("D5")), "mmmm") & ".xlsm"    
mDoc=activeworkbook.path & "\" & activewoekbook.name

    ChDir "C:\Users\Windows7\Desktop\"
    ActiveWorkbook.SaveAs Filename:=nome, _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
workbooks.open "mDoc"

nel caso vuoi chiudere quello salvato e riaprire l'originale:
Sheets("inserimento dati").Select
nome = Format(DateAdd("m", 1, Range("D5")), "mmmm") & ".xlsm"    
mDoc=activeworkbook.path & "\" & activewoekbook.name

    ChDir "C:\Users\Windows7\Desktop\"
    ActiveWorkbook.SaveAs Filename:=nome, _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
activeworkbook.close
workbooks.open "mDoc"
Tieni presente che ho scritto manualmente e ci potrebbe essere qualche errore di sintassi.

saluti


Edited by dodo47 - 10/Feb/2018 at 11:23
domenico
win 10- office 2016
Back to Top
antoniomlg View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 13/Gen/2009
Location: Italy
Status: Offline
Points: 464
Post Options Post Options   Thanks (0) Thanks(0)   Quote antoniomlg Quote  Post ReplyReply Direct Link To This Post Posted: 10/Feb/2018 at 12:08
Grazie del tuo interesse incondizionato 

il mio intendo è chiudere, come in effetti chiude il file appena creato , ritornare al file originale
da dove è stata lanciata la macro.

ho provato il codice proposto, ma non funziona , non dà errori ma non apre nulla.

grazie

Back to Top
dodo47 View Drop Down
Moderatore
Moderatore
Avatar

Joined: 29/Dic/2008
Location: Italy
Status: Offline
Points: 11355
Post Options Post Options   Thanks (0) Thanks(0)   Quote dodo47 Quote  Post ReplyReply Direct Link To This Post Posted: 10/Feb/2018 at 18:03
riporta quanto hai scritto per favore

saluti
domenico
win 10- office 2016
Back to Top
antoniomlg View Drop Down
Utente Senior
Utente Senior
Avatar

Joined: 13/Gen/2009
Location: Italy
Status: Offline
Points: 464
Post Options Post Options   Thanks (0) Thanks(0)   Quote antoniomlg Quote  Post ReplyReply Direct Link To This Post Posted: 11/Feb/2018 at 12:04
Originally posted by dodo47 dodo47 wrote:

riporta quanto hai scritto per favore
saluti

Grazie della tua disponibilità e della tua pazienza
di seguito il codice completo ma considera che anche se metto solo il codice suggerito in un pulsante 
non ritorna dove era.
-----------------
Sub Salva_con_nome()

ThisWorkbook.Save       '<<<salva la cartella aperta prima della duplicazione

azione = MsgBox("PROCEDO CON LA DUPLICAZIONE DEL FILE ?", vbYesNo, "Messaggio da MELIGENI")
If azione = vbNo Then GoTo finesub
    Range("E5:M35,Q5:T35").Select  '<<<seleziona le celle da cui cancellare i dati
    Selection.ClearContents
    '------------------------------ inizia routine per eseguire copia della cartella-------------
    Dim mData As Date
        Sheets("inserimento dati").Select
   mData = Range("D5")
    mData = DateAdd("m", 1, mData)
    nome = Format(mData, "mmmm") & "" & Format(mData, " - yyyy") & ".xls"
    mDoc = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
    
    ChDir "C:\Users\Windows7\Desktop\contabilità\"
    Application.DisplayAlerts = False '<<< se file già esiste evita di chiedere conferma di sovrascrittura
        ActiveWorkbook.SaveAs Filename:=nome, _
        FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
        Application.DisplayAlerts = True
                
        Range("D5").Activate     '<<nella nuova cartella seleziona la cella e cancella i dati
    Selection.ClearContents
                              
Dim obj As Object
Dim strMsg As String
Set obj = CreateObject("WScript.Shell")
strMsg = obj.PopUp("DUPLICAZIONE ESEGUITA CON SUCCESSO!!!", 1, vbOKCancel)
     ThisWorkbook.Close savechanges:=False    '<<<-----------chiude e salva solo questa cartella-----------
     Workbooks.Open "mDoc"
finesub:
End Sub
-------------
grazie ancora


Edited by antoniomlg - 11/Feb/2018 at 12:09
Back to Top
dodo47 View Drop Down
Moderatore
Moderatore
Avatar

Joined: 29/Dic/2008
Location: Italy
Status: Offline
Points: 11355
Post Options Post Options   Thanks (0) Thanks(0)   Quote dodo47 Quote  Post ReplyReply Direct Link To This Post Posted: 11/Feb/2018 at 13:19
Ciao
la macro non apre nulla perchè chiudi il file che la contiene. Inoltre perchè disturbare WScript.Shell per un semplice msgbox?

aggiungi le Dim mancanti e una gestione degli errori.

Saluti

Sub Cancella_Dati()
Dim mData As Date
    ThisWorkbook.Save       '<<<salva la cartella aperta prima della duplicazione
    azione = MsgBox("PROCEDO CON LA DUPLICAZIONE DEL FILE ?", vbYesNo, "Messaggio da MELIGENI")
    If azione = vbNo Then GoTo finesub
    Range("E5:M35,Q5:T35").ClearContents  '<<<seleziona le celle da cui cancellare i dati
    Sheets("inserimento dati").Select
    mData = Range("D5")
    mData = DateAdd("m", 1, mData)
    nome = Format(mData, "mmmm") & "" & Format(mData, " - yyyy") & ".xls"
    mDoc = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
    mDir = "C:\Users\Windows7\Desktop\contabilità\"
    
    ChDir mDir
    Application.DisplayAlerts = False            '<<<-----------evita di chiedere conferma di sovrascrittura
    ActiveWorkbook.SaveAs Filename:=nome, _
     FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
     ReadOnlyRecommended:=False, CreateBackup:=False
     Application.DisplayAlerts = True
                
    Range("D5").ClearContents         '<<----------nella nuova cartella seleziona la cella da cacellare i dati

    MsgBox "DUPLICAZIONE ESEGUITA CON SUCCESSO!!!" 'inserisce messaggio
    Workbooks.Open mDoc
    Workbooks(nome).Close True
finesub:
End Sub



Edited by dodo47 - 11/Feb/2018 at 13:25
domenico
win 10- office 2016
Back to Top
 Post Reply Post Reply Page  12>
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,063 seconds.