xam99
00venerdì 17 marzo 2017 22:19
Ciao a tutti.
Nel workbook allegato in Private Sub WorkBook_Open() c'è una macro Sub ExpirationCode() che all'avvio controlla la scadenza del workbook.
Fino a qui funziona.
Se è inserita una password sbagliata dovrebbe chiudersi il workbook ma purtroppo alla chiusura va in conflitto con gli avvisi che sono dentro a
Private Sub Workbook_BeforeClose(Cancel As Boolean) che non dovrebbero comparire se la password è sbagliata.
Un aiuto per correggere?
xam
patel45
00sabato 18 marzo 2017 08:04
prima di Sub ExpirationCode() inserisci
Public FLAG As Integer
poi modifica così
avviso = MsgBox("Sign. " & Environ("UserName") & Chr(13) & _
"password errata o non inserita," & Chr(13) & _
"il workbook verrà chiuso!!!", vbCritical + vbOKOnly, "ERRORE!")
FLAG = 1 ' <<<<<<<<<<<<<<<<<
ThisWorkbook.Close savechanges:=False
e così
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim risposta As String, sPath As String
If FLAG = 1 Then Exit Sub ' <<<<<<<<<<<<<<<
If ThisWorkbook.Saved = False Then
If MsgBox("Sign. " & Environ("UserName") & Chr(13) & _
"hai salvato il/i modulo/i?", vbQuestion + vbYesNo + vbDefaultButton2, "AVVISO!") = vbNo Then
Cancel = True
Exit Sub
End If
End If
End Sub
xam99
00sabato 18 marzo 2017 08:54
Grazie patet45,
qui a casa funziona.
Lunedì lo provo in ufficio con vari workbook.
ma penso sia perfetto.
Grazie tantissime.
xam
xam99
00sabato 18 marzo 2017 14:50