Apire file e chiudi laltro
Hai un problema con Excel? 
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!
Vuoi Approfondire?