Seguo parecchi questo forum per creare i miei file excel e devo dire che senza di voi sarei indietro anni luce! quindi vi ringrazio a priori.
Vengo al nocciolo della questione, ho fatto un xlsm (nuovo preventivo.xlsm )per comporre dei preventivi, al suo interno utilizzo la seguente macro per la numerazione automatica ad ogni avvio del file:
----------------------------------------------------
- Codice: Seleziona tutto
Private Sub Workbook_Open()
mfilehandle = FreeFile
strpath = "c:\aperture.txt"
On Error GoTo ErrorHandler
Open strpath For Input As #mfilehandle
Close #mfilehandle
Ok:
Open strpath For Input As #mfilehandle
Input #mfilehandle, Numero
Cells(9, 5) = Numero + 1
Close #mfilehandle
Open strpath For Output As #mfilehandle
Print #mfilehandle, Numero + 1
Close #mfilehandle
Exit Sub
ErrorHandler: ' Error-handling routine.
Select Case Err.Number ' Evaluate error number.
Case 53 ' "File already open" error.
Open strpath For Output As #mfilehandle
Print #mfilehandle, 0
Close #mfilehandle
GoTo Ok
End Select
Resume ' Resume execution at same line
' that caused the error.
End Sub
e fin qui nessun problema, in quanto non necessito di una numerazione consegutiva in quanto sono lo preventivi (se manca qualche numero non c'è problema, l'importante è che non si ripetano.
Una volta composto il preventivo lo salvo in PDF e xlsm in una determinata cartella tramite questa macro collegata ad un tasto:
---------------------------------------
- Codice: Seleziona tutto
Public Sub Salvapdfrete()
Dim sPath As String
Dim sNome As String
Application.DisplayAlerts = True
On Error Resume Next
With ThisWorkbook
sPath = "c:\preventivi"
With .Worksheets("Preventivo")
sNome = .Range("D12").Value & _
" - Preventivo n." & .Range("E9").Value & _
" - " & Format(.Range("M9").Value, "dd-mm-yyyy")
.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=sPath & "\" & sNome & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End With
End With
Application.DisplayAlerts = True
nome = "c:\preventivi\" & [D12] & " - " & "Preventivo n." & [E9] & " - " & Format([M9], "dd-mm-yyyy") & ".xlsm"
ActiveWorkbook.SaveAs nome
Application.DisplayAlerts = True
End Sub
Salvo il file in questi due formati perchè il file PDF lo invio al cliente e attendo la conferma, una volta confermato il preventivo, andrò ad aprire il file xlsm relativo e aggiungerò delle modifiche ( una scontistica o note o semplicemente la dicitura accettato) per poi stamparlo nuovamente in pdf e reinviarlo al cliente con le modifiche apportate.
Il problema risiede sul file xlsm, derivando dal primo file (nuovo preventivo.xlsm) la macro per la numerazione progressiva è attiva! e aprendolo avrò un numero preventivo diverso!
Vorrei capire da voi guru come eliminare la relativa macro durante il salvataggio del nuovo xlsm e magari aggiungere/rimuovere un nuovo tasto con relativa macro .
Spero di essermi spiegato bene, se vi serve qualche altra info non esitate a chiedermi!
CIAO e ancora!
EDIT:ore 01:40 - Inserito il codice Vba in Tag CODE come dovrebbe fare ogni utente quando posta tale codice e/o formule