Condividi tramite

VBA e salvataggio file

Anonimo
2023-01-09T17:09:11+00:00

Buonasera a tutti,

riporto una parte di codice della sub che in poche parole va a richiamare l’applicazione per la scelta del salvataggio di una cartella di lavoro (ripresa da un posto su questo forum), controlla se il nome non è vuoto e infine salva il file con il nome e nel percorso scelto. Ho provato a testare una casistica particolare che mi da un problema di debug. Ovvero dopo aver salvato un file una prima volta, rilancio la macro e inserisco lo stesso nome e lo stesso percorso di quello salvato in precedenza. A questo punto mi appare il messaggio dove viene comunicato la presenza di un file chiamato nello stesso modo e se voglio sovrascrivere o meno. Se premo su Si, nessun problema, ma se scelgo No o Annulla mi appare un messaggio di debug e la macro si blocca.

Come posso risolvere ed evitare che la routine si blocchi?

Grazie a tutti

Nome_Rep_Comp = Application.GetSaveAsFilename(InitialFileName:=File_Rep_Comp_no_ext, _

FileFilter:="Cartella di lavoro con attivazione macro di Excel(*.xlsm), *.xlsm", _

Title:="Seleziona la cartella e inserisci il nome del file da salvare")

While Nome_Rep_Comp = False

    Msg7 = MsgBox("Inserire un nome valido per il file di salvataggio", vbCritical)

    Nome_Rep_Comp = Application.GetSaveAsFilename(InitialFileName:=File_Rep_Comp_no_ext, _

    FileFilter:="Cartella di lavoro con attivazione macro di Excel(*.xlsm), *.xlsm", _

    Title:="Seleziona la cartella e inserisci il nome del file da salvare")

Wend

If Nome_Rep_Comp <> "" Then

    WB2.SaveAs Filename:=Nome_Rep_Comp, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End If

Microsoft 365 e Office | Excel | Per il lavoro | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2023-01-09T17:51:07+00:00

Ciao Dario,

Buonasera a tutti,

riporto una parte di codice della sub che in poche parole va a richiamare l’applicazione per la scelta del salvataggio di una cartella di lavoro (ripresa da un posto su questo forum), controlla se il nome non è vuoto e infine salva il file con il nome e nel percorso scelto. Ho provato a testare una casistica particolare che mi da un problema di debug. Ovvero dopo aver salvato un file una prima volta, rilancio la macro e inserisco lo stesso nome e lo stesso percorso di quello salvato in precedenza. A questo punto mi appare il messaggio dove viene comunicato la presenza di un file chiamato nello stesso modo e se voglio sovrascrivere o meno. Se premo su Si, nessun problema, ma se scelgo No o Annulla mi appare un messaggio di debug e la macro si blocca.

 

Come posso risolvere ed evitare che la routine si blocchi?

Grazie a tutti

 

Nome_Rep_Comp = Application.GetSaveAsFilename(InitialFileName:=File_Rep_Comp_no_ext, _

FileFilter:="Cartella di lavoro con attivazione macro di Excel(*.xlsm), *.xlsm", _

Title:="Seleziona la cartella e inserisci il nome del file da salvare")

   

While Nome_Rep_Comp = False

    Msg7 = MsgBox("Inserire un nome valido per il file di salvataggio", vbCritical)

   

    Nome_Rep_Comp = Application.GetSaveAsFilename(InitialFileName:=File_Rep_Comp_no_ext, _

    FileFilter:="Cartella di lavoro con attivazione macro di Excel(*.xlsm), *.xlsm", _

    Title:="Seleziona la cartella e inserisci il nome del file da salvare")

       

Wend

   

If Nome_Rep_Comp <> "" Then

    WB2.SaveAs Filename:=Nome_Rep_Comp, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

End If

Prova a sostituire l'istruzione

  WB2.SaveAs Filename:=Nome_Rep_Comp, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

con:

On Error Resume Next

WB2.SaveAs Filename:=Nome_Rep_Comp, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

On Error GoTo 0

===

Regards,

Norman

Immagine

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2023-01-10T21:52:32+00:00

    Ciao Dario,

    Grazie mille per l'aiuto!

    Grazie a te per il cortese riscontro.

    Alla prossima.

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-01-10T20:50:29+00:00

    Grazie mille per l'aiuto!

    La risposta è stata utile?

    0 commenti Nessun commento