+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 6 su 6

Forzare il formato di salvataggio in Excel

  1. #1
    musciu64 non è in linea Novello
    Buon pomeriggio a tutti,

    devo far in modo di forzare il salvataggio di un file Excel contenente macro utilizzando il formato 'xlsm'.
    Su altri forum ho visto che si può usare il metode BeforseSave dell'oggetto Workbook e da lì richiamare il metodo GetSaveAsFileName dell'oggetto Application, specificando quale è il formato di file consentito.
    Fin qui tutto bene: ma non riesco a catturare (e poi passare al metodo GetSaveAsFileName) la cartella che viene selezionata quando viene selezionato il comando "Salva con nome".

    Qualche suggerimento ?

    Grazie,
    Antonino

  2. #2
    alfrimpa non è in linea Scolaretto
    Potresti provare con questo codice che memorizza nella variabile myPath il percorso della cartella di lavoro attiva oppure puoi utilizzare una InputBox per immettere un percorso alternativo.

    Dim myPath as String
    myPath = ActiveWorkbook.Path
    
    Alfredo

  3. #3
    musciu64 non è in linea Novello
    Grazie del feedback, ma non è quello che intendevo.

    Cerco di dare ulteriori dettagli.

    Quando si seleziona il comando "Salva con nome" si ha la possibilità di selezionare una cartella dalla lista delle ultime cartelle utilizzate. Una volta selezionata la cartella, viene aperto il Dialog Box di salvataggio posizionato sulla cartella appena selezionata.

    Il primo parametro del metodo GetSaveAsFileName consente di specificare un percorso (e nome di file) da proporre all'apertura del Dialog Box.
    Nella soluzione che ho trovato in qualche forum, e che riporto alla fine del messaggio, nella call al metodo non ho l'informazione con cui inizializzare il primo parametro e quindi la finestra di salvataggio si posiziona sulla cartella del Workbook corrente, che potrebbe essere diversa da quella selezionata dall'utente.

    Quello che mi manca è pertanto come poter catturare il nome della cartella selezionata nel pannello del comando Salva con nome.

    Antonino


    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    
    Dim fso As scripting.FileSystemObject
    
    
        If SaveAsUI Then
            FileNameVal = Application.GetSaveAsFilename(, "Cartella di lavoro con attivazione macro di Excel (*.xlsm), *.xlsm")
            Cancel = True
            If FileNameVal = "Falso" Then
                Exit Sub
            End If
    
            Set fso = New scripting.FileSystemObject
            FileNameVal = fso.GetAbsolutePathName(FileNameVal)
    
            Application.EnableEvents = False
            ThisWorkbook.SaveAs fileName:=FileNameVal, FileFormat:=xlOpenXMLWorkbookMacroEnabled
            Application.EnableEvents = True
        
        End If
    
    End Sub
    

  4. #4
    L'avatar di gibra
    gibra non è in linea Very Important Person
    La cartella selezionata la ricavi usando il fso:

        Dim sPathFolder As String
        sPathFolder = fso.GetParentFolderName(FileNameVal)
    
    ℹ️ Leggi di più su gibra ...

  5. #5
    musciu64 non è in linea Novello
    Quote Originariamente inviato da gibra Visualizza il messaggio
    La cartella selezionata la ricavi usando il fso:

        Dim sPathFolder As String
        sPathFolder = fso.GetParentFolderName(FileNameVal)
    
    Ciao gibra,

    quello che proponi tu presuppone che sia stato già selezionato il file.
    La call al metodo GetSaveAsFileName serve proprio a selezionare il file, quindi non ho ancora nessuna info sul file.

  6. #6
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Quote Originariamente inviato da musciu64 Visualizza il messaggio
    Ciao gibra,
    quello che proponi tu presuppone che sia stato già selezionato il file.
    Infatti è così.

    Quote Originariamente inviato da musciu64 Visualizza il messaggio
    La call al metodo GetSaveAsFileName serve proprio a selezionare il file, quindi non ho ancora nessuna info sul file.
    Allora abbiamo difficoltà a capire cosa intendi dire TU.

    GetSaveAsFileName restituisce il percorso completo del file in FileNameVal.

    Cosa non ti è chiaro?
    ℹ️ Leggi di più su gibra ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Forzare il formato di salvataggio in Excel
    Da musciu64 nel forum Microsoft Word
    Risposte: 0
    Ultimo Post: 31-03-2016, 18:03
  2. Risposte: 11
    Ultimo Post: 03-08-2013, 13:08
  3. scansione file e salvataggio in altro formato
    Da francescop nel forum Microsoft Word
    Risposte: 2
    Ultimo Post: 15-10-2010, 10:07
  4. [excel]Forzare l´aggiornamento/calcolo
    Da arimans nel forum Microsoft Excel
    Risposte: 6
    Ultimo Post: 26-03-2008, 16:56
  5. Salvataggio in formato jpeg2000
    Da nightingales nel forum Visual Basic .Net
    Risposte: 0
    Ultimo Post: 28-02-2006, 09:40