Ciao grande Norman, grazie per l'interessamento!
Penso sia un problema di compatibibilità fra due tipologie di
salvataggio e l'uso dello stesso file in due versioni (2003 e 10).
Un file salvato con 2003 viene aperto con excel10 per essere poi
consultato.
Alla chiusura del file parte automaticamente una sub che effettua alcune
cose di poca importanza e, in ultimo, lancia l'istruzione
thisworkbook.save la quale con 2003 non da problemi con 10 tira fuori
l'errore in questione.
Ho lanciato la tua routine e non da errori nè messaggi.
Il file è molto corposo, è un grosso lavoro smontare i dati sensibili ma
sono certo che non si tratta altro che di un problema di compatibilità,
che devo studiare un pò di più.
Il file in 2003 era stato salvato nel formato Foglio di lavoro di
Microsoft Excel 97-2003 e questo parrebbe essere il problema per la
versione 10. Dovrei sostituire l'istruzione generica thisworkbook.save
con una che mantenga il formato precedente ma adesso non ho il materiale
con me.
Mi pare che questo problema lo aveva affrontato anche da Casanmaner ma
non ricordo quando e la conclusione.
Buona giornata Norman e ai compari del forum
Ale
Post by Norman JonesCiao Ale,
Post by Final Jobquale può essere un motivo per il quale, improvvisamente (nel senso
thisworkbook.save
mi blocca la sub in chiusura di una cartella excel?
metodo "save" dell'oggetto "_workbook" non riuscito
Unico indizio: il file che ha dato l'anomalia è stato aperto con
excel10 invece che con il solito 2003.
Non ho capito se tu stia salvando un file xls con una versione
successiva di Excel o se stia usando Excel 2003 per salvare un file che
è stato precedentemente salvato in una versione successiva.
A proposito, forse intendevi fare riferimento a Excel 2010 perché
Excel10 si riferisce normalmente a Excel 2002.
'=========>>
Option Explicit
'--------->>
Public Sub OverKill()
Dim sStr As String
On Error GoTo XIT
Application.DisplayAlerts = False
With ThisWorkbook
sStr = Split(.Name, ".")(0)
If Application.Version >= 12 Then
.CheckCompatibility = False
.SaveAs Filename:=.Name, FileFormat:=56
Else
.SaveAs Filename:=sStr
End If
End With
Application.DisplayAlerts = True
If Err.Number <> 0 Then
With Err
MsgBox "Errore & .Number & Space(1) & .description"
End With
With ThisWorkbook
Debug.Print "Filename = " & .Name _
& vbNewLine _
& "FileFormat =" & .FileFormat
End With
End If
End Sub
'<<=========
• Esegui questa macro
Premi Ctrl + G per accedere alla finestra Immediata
Fammi sapere il messaggio risultante che troverai lì
Se volessi inviarmi una copia del file problematico, privo di dati
sensibili, tenterò di replicare il tuo errore con una vecchia versione
di Excel 2003.
===
Regards,
Norman
---
Questa email è stata esaminata alla ricerca di virus da AVG.
http://www.avg.com