| | Post: 25 | Registrato il: 29/04/2021
| Città: CITTADELLA | Età: 62 | Utente Junior | 365/2007 | | OFFLINE | |
|
16/06/2022 13:28 | |
Ciao nel file allegato c'è un foglio in cui si inserisce chi accede al workbook.
C'è un problema.
Se faccio una modifica a uno dei fogli e poi alla fine dico non salvare questa modifica resta.
Se il workbook viene aperto il nome deve restare sia con salva si o no.
Nota:
inserire nel foglio utenti_errori colonna E il proprio nome utente
Spero di essermi spiegato.
Grazie
[Modificato da giova62 16/06/2022 13:32] |
|
| | Post: 1.208 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
16/06/2022 15:01 | |
Se vuoi mantenere il nome dell'accesso puoi scegliere due strade:
1) salvare il dato su un altro file esterno al progetto
2) salvare subito il progetto non appena aperto e prima di eventuali modifiche.
In entrambi i casi questo va fatto all'avvio nella macro WorkBook_Open non appena hai rilevato il nome, subito dopo queste righe, cambia solo l'elemento da salvare: '-----------------------------------------------------------------------
'per username - chi apre
Sheets("Utenti_Errori").Unprotect "987654"
Sheets("Utenti_Errori").Cells(2, 6).Value = Environ("UserName") 'F2
Sheets("Utenti_Errori").Protect "987654"
'------------------------------------------------------------------------
Se intendi utilizzare il 2' metodo ti basta inserire un: [Modificato da rollis13 16/06/2022 15:04]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 25 | Registrato il: 29/04/2021
| Città: CITTADELLA | Età: 62 | Utente Junior | 365/2007 | | OFFLINE | |
|
16/06/2022 15:15 | |
Ciao rollis.
Bisogna inserire nello stesso workbook chi lo apre.
Le modfiche che hai scritto ci sono già nell'allegato |
| | Post: 26 | Registrato il: 29/04/2021
| Città: CITTADELLA | Età: 62 | Utente Junior | 365/2007 | | OFFLINE | |
|
16/06/2022 15:33 | |
Il problema è :
se faccio una modifica e poi alla chiusura dico non salvare la modifica resta |
| | Post: 1.503 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
16/06/2022 19:44 | |
ciao a tutti,
mettendo un
Call a
nell'evento Worksheet_Change di ogni foglio,
prova a modificare così
nel modulo1
vb Option Explicit
Public SoloVisione As Boolean
Sub a()
SoloVisione = False
End Sub
nel BeforeClose
vb
Dim val1 As String
Dim val2 As String
Dim val3 As String
'=========================================================
Call a
'============================================================
'---------------------------------------------------------------------------
'ACCESSI
Dim nomefoglio As Variant
Dim Urec As String
Application.ScreenUpdating = False
Application.EnableEvents = False '<-aggiunta
With Sheets("ACCESSI") '<<< apre il foglio e sprotegge
.Unprotect "987654"
.Cells(10000, "II") = ActiveSheet.Name
'Urec = .Cells(Rows.Count, 52).End(xlUp).Row + 1
'.Cells(Urec, 52) = Application.UserName
'.Cells(Urec, 53) = Now
'.Cells(Urec, 54) = "FINE SESSIONE"
Urec = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(Urec, 1) = Application.UserName
.Cells(Urec, 2) = Now
.Cells(Urec, 3) = "FINE SESSIONE"
.Protect "987654"
End With '<<< ritorna al foglio
'ThisWorkbook.Save 'salva
'=============================================================================
If SoloVisione = False Then
ThisWorkbook.Saved = False 'se ci sono stati interventi proponi popup Salva
Else
ThisWorkbook.Save
End If
'========================================================================================
ciao
Frank [Modificato da tanimon 16/06/2022 19:52]
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
| | Post: 1.506 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
16/06/2022 20:46 | |
non riesco ad allegare il file
prova a cambiare il BeforeClose
ciao
Frank
vb Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim name1 As String, name2 As String, name3 As String, name4 As String, name5 As String
Dim sPath As String, sComm5 As String, sComm6 As String, sComm7 As String, sComm8 As String
Dim fogli As Worksheet
Dim iUserResponse As Integer
Dim risposta1 As String
Dim risposta2 As String
Dim risposta3 As String
Dim sStatus As String
Dim val1 As String
Dim val2 As String
Dim val3 As String
'---------------------------------------------------------------------------
'ACCESSI
Dim nomefoglio As Variant
Dim Urec As String
Application.ScreenUpdating = False
Application.EnableEvents = False '<-aggiunta
With Sheets("ACCESSI") '<<< apre il foglio e sprotegge
.Unprotect "987654"
.Cells(10000, "II") = ActiveSheet.Name
'Urec = .Cells(Rows.Count, 52).End(xlUp).Row + 1
'.Cells(Urec, 52) = Application.UserName
'.Cells(Urec, 53) = Now
'.Cells(Urec, 54) = "FINE SESSIONE"
Urec = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(Urec, 1) = Application.UserName
.Cells(Urec, 2) = Now
.Cells(Urec, 3) = "FINE SESSIONE"
.Protect "987654"
End With '<<< ritorna al foglio
'------------------------------------------------------------------------------------------------------
'------------------------------------------------------------------------------------------------------
'per utente autorizzato
Dim avviso As String
Dim cercarange As Range
Set cercarange = Foglio8.Range("E2:E11").Find(Foglio8.Range("F2"))
If Not cercarange Is Nothing Then
ThisWorkbook.Save 'salva
If SoloVisione = True Then ThisWorkbook.Saved = False 'se ci sono stati interventi proponi popup Salva
Application.ScreenUpdating = True
Application.EnableEvents = True '<-aggiunta
Else
' MsgBox "Value not found"
avviso = MsgBox(Environ("UserName") & " non sei autorizzato a modificare questo workbook", vbCritical + vbDefaultButton2, "AVVISO!")
If avviso = vbOK Then
Me.Saved = True
Exit Sub
End If
End If
' MsgBox "Value not found"
'ThisWorkbook.Saved = True
' ThisWorkbook.Close
'---------------------------------------------------------------------------
'---------------------------------------------------------------------------
Application.ScreenUpdating = False
'------------------------------------------------------------------------------------------
'backup
name5 = Foglio11.Range("A2").Value
sComm5 = "BACKUP"
sComm6 = Foglio11.Range("A2").Value
sComm7 = sComm6 'Foglio6.Range("B3").Value
sComm8 = sComm5 & " - " & sComm6 'Foglio6.Range("B3").Value
If MsgBox("Sign. " & Environ("UserName") & " vuoi il backup di:" & Chr(13) & Chr(13) & _
"< " & sComm6 & " >?", vbQuestion + vbYesNo + vbDefaultButton2, "AVVISO!") = vbYes Then
sPath = ThisWorkbook.Path & "\" & sComm8
If Dir(sPath, vbDirectory) = "" Then MkDir sPath
'sPath = sPath & "\" & sComm7
'If Dir(sPath, vbDirectory) = "" Then MkDir sPath
'sPath = sPath & "\" & sComm6
'If Dir(sPath, vbDirectory) = "" Then MkDir sPath
ThisWorkbook.SaveCopyAs sPath & "\" & Format(Now, "dd-mm-yyyy - hh.mm") & " - " & ActiveWorkbook.Name '<<< data/ora
End If
' End If
'--------------------------------------------------------------------------
'--------------------------------------------------------------------------
'
'--------------------------------------------------------------------------
Application.ScreenUpdating = True
End Sub
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
| | Post: 27 | Registrato il: 29/04/2021
| Città: CITTADELLA | Età: 62 | Utente Junior | 365/2007 | | OFFLINE | |
|
16/06/2022 20:49 | |
Ciao tanimon
il problema è sempre che il nome di chi accede al workbook nel foglio accessi deve restrare anche se alla chiusura scelgo non salvare.
Con la tua modifica scegliendo non salvare il nome non resta.
Allego il file con le tue modifiche. [Modificato da giova62 16/06/2022 20:54] |
| | Post: 1.507 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
16/06/2022 21:40 | |
prova
ciao
Frank
vb Private Sub Workbook_Open()
Dim fogli As Worksheet
Dim Ur As Long
'-----------------------------------------------------------------------
'per username - chi apre
Sheets("Utenti_Errori").Unprotect "987654"
Sheets("Utenti_Errori").Cells(2, 6).Value = Environ("UserName") 'F2
'=========================================
ThisWorkbook.Save
'============================================
Sheets("Utenti_Errori").Protect "987654"
'------------------------------------------------------------------------
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
| | Post: 1.508 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
16/06/2022 22:16 | |
ciao
sempre nel
Private Sub Workbook_Open()
forse è meglio così
vb With Sheets("ACCESSI") '<<< apre il foglio e sprotegge
.Unprotect "987654"
.Cells(10000, "II") = ActiveSheet.Name
.Unprotect "987654"
'Urec = .Cells(Rows.Count, 52).End(xlUp).Row + 1
'.Cells(Urec, 52) = Application.UserName
'.Cells(Urec, 53) = Now
'.Cells(Urec, 54) = "ACCESSO"
Urec = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(Urec, 1) = Application.UserName
.Cells(Urec, 2) = Now
.Cells(Urec, 3) = "ACCESSO"
'=========================================
ThisWorkbook.Save
'============================================
.Protect "987654"
End With
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
| | Post: 28 | Registrato il: 29/04/2021
| Città: CITTADELLA | Età: 62 | Utente Junior | 365/2007 | | OFFLINE | |
|
16/06/2022 23:00 | |
Ora inserisce l'accesso fisso, se all'uscita scelgo non salvare non inserisce "FINE SESSIONE"
Allego il workbook con le ultime modifiche |
| | Post: 1.509 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
17/06/2022 00:02 | |
All'evento Workbook_BeforeClose,
prova ad applicare la proposta del post #9.
Ciao
Frank
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
| | Post: 29 | Registrato il: 29/04/2021
| Città: CITTADELLA | Età: 62 | Utente Junior | 365/2007 | | OFFLINE | |
|
17/06/2022 08:21 | |
Ora è così, ma non cambia
'---------------------------------------------------------------------------
'ACCESSI
Dim nomefoglio As Variant
Dim Urec As String
Application.ScreenUpdating = False
Application.EnableEvents = False '<-aggiunta
With Sheets("ACCESSI") '<<< apre il foglio e sprotegge
.Unprotect "987654"
.Cells(10000, "II") = ActiveSheet.Name
'Urec = .Cells(Rows.Count, 52).End(xlUp).Row + 1
'.Cells(Urec, 52) = Application.UserName
'.Cells(Urec, 53) = Now
'.Cells(Urec, 54) = "FINE SESSIONE"
Urec = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(Urec, 1) = Application.UserName
.Cells(Urec, 2) = Now
.Cells(Urec, 3) = "FINE SESSIONE"
'=========================================
ThisWorkbook.Save
'============================================
.Protect "987654"
End With '<<< ritorna al foglio
'ThisWorkbook.Save 'salva
'If SoloVisione = True Then ThisWorkbook.Saved = False 'se ci sono stati interventi proponi popup Salva
'Application.ScreenUpdating = True
'Application.EnableEvents = True '<-aggiunta
'=============================================================================
If SoloVisione = False Then
ThisWorkbook.Saved = False 'se ci sono stati interventi proponi popup Salva
Else
ThisWorkbook.Save
End If
'========================================================================================
|
| | Post: 30 | Registrato il: 29/04/2021
| Città: CITTADELLA | Età: 62 | Utente Junior | 365/2007 | | OFFLINE | |
|
18/06/2022 16:11 | |
Ciao a tutti.
Mi sa che per quello che chiedo non ci sia una soluzione.
|
| | Post: 3.304 | Registrato il: 06/04/2013
| Utente Master | 2010 | | OFFLINE |
|
18/06/2022 19:07 | |
ciao
- perchè devi mettere in F2 di utenti_errori il nome dell'utente, visto che lo inserisci anche in ACCESSI ??
- perchè in II10000 di ACCESSI metti il nome del foglio attivo ? (che poi qual è ??)
saluti
[Modificato da dodo47 18/06/2022 19:10] Domenico
Win 10 - Excel 2016 |
| | Post: 31 | Registrato il: 29/04/2021
| Città: CITTADELLA | Età: 62 | Utente Junior | 365/2007 | | OFFLINE | |
|
18/06/2022 19:35 | |
Ciao dodo47
F2:
C'è in thisworkbook una parte di macro per autorizzare chi accede al workbook.
Chi addede è in F2 foglio utenti_errori se uno di questi è uguale alla colonna E continua altrimenti si chiude
qui:
perchè in II10000 di ACCESSI metti il nome del foglio attivo ? (che poi qual è ??)
mi sa che è rimasto qualcosa di altre macro
|
| | Post: 3.307 | Registrato il: 06/04/2013
| Utente Master | 2010 | | OFFLINE |
|
19/06/2022 17:36 | |
ciao
non puoi farlo.
Se in uscita devi scrivere chi ha utilizzato il file (ipotizziamo uno autorizzato), devi salvare per forza e pertanto l'utente non può dire ad excel di non salvare, di conseguenza si porterebbe appresso le modifiche.
L'unica via che hai te l'ha suggerita rollis (un caro saluto):
rollis13:
1) salvare il dato su un altro file esterno al progetto
saluti Domenico
Win 10 - Excel 2016 |
|
|