Apire file e chiudi laltro



  • DIMENTICAVO
    di Bonz data: 10/05/2016 10:46:25

    Dimenticavo di precisare che il nome del file chiamato B per semplicità varia da cliente a cliente, sennò era facile!



  • di patel data: 10/05/2016 11:36:25

    allega un file di esempio e spiega meglio, così sembra un indovinello.





  • di Bonz data: 10/05/2016 14:43:30

    Hai ragione Patel, scusami ... ho un foglio excel in cui c'è una macro che mi salva la fattura in una cartella che ha il nome del cliente, crea dopo un file con il numero della fattura e la data sempre in questa cartella, in modo di avere per ogni cliente una cartella con tutte le fatture emesse per quel cliente.
    Il file principale crea un file personalizzato per que cliente con il proprio listino, questo file a sua volta crea un file con numero e data fattura da salvare nella cartella del cliente.
    La macro che ti allego salva la fattura, che h il numero in G2 e la data in G3, esce quindi dalla fattura salvandola, ma al momento dell'errore mi dovrebbe chiudere anche il file del cliente e riaprire quello principale della fatturazione ... invece si blocca Excel ... come fare
     
    Sub Salva_fattura() (siamo nel file del cliente, quindi variabile)
    
    Dim fso
    Dim fol As String
    ' salva il foglio
    Sheets("Fattura").Select
    Sheets("Fattura").Unprotect
       ...
         fol = "C:UsersBonifacioDesktopFatturazioneFatture" & Range("E9") & ""
        Set fso = CreateObject("Scripting.FileSystemObject")
        If Not fso.FolderExists(fol) Then
        fso.CreateFolder (fol)
        GoTo salva
        Else
        GoTo salva
    salva:
    Application.ScreenUpdating = False
        Sheets("Fattura").Select
        ... 
        Sheets("Fattura").Copy
        ActiveWorkbook.SaveAs fol & "n° " & Range("G2") & Format([G3], " dd-mm-yyyy") & ".xlsm", _
        FileFormat:=52, CreateBackup:=False (qui salva il file della fattura)
        ActiveWorkbook.Close savechanges:=False (esce dalla fattura)
        ...
        ActiveWorkbook.Close savechanges:=False (dovrebbe uscire dal file del cliente in cui opera la macro)
        Workbooks.Open Filename:="C:UsersBonifacioDesktopFatturazioneFatturazione.xlsm (Dovrebbe aprire iol file di fatturazione)
    Application.ScreenUpdating = True
    
        End If
    End Sub
    



  • di patel data: 10/05/2016 17:49:28

    non ho capito molto, avevo chiesto un file di esempio ma niente, comunque tu devi avere un file principale con le macro, da questo apri e chiudi tutti i file che vuoi e fai girare le macro su questi, quando hai finito chiudi il principale.




  • GRAZIE
    di Bonz data: 11/05/2016 16:50:39

    Grazie Patel, ho seguito il tuo consiglio ed ho suddiviso i diversi fogli in più file, a dire il vero sembrava chissà quanto difficile, ma in realtà è come dici tu, la strada più semplice ... grazie ancora!