È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

salva workbook con nome utente

Ultimo Aggiornamento: 19/06/2022 17:36
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:
ThisWorkbook.Save
[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
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 09:49. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com