|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
[VBA Excel] aggiornare valore celle Before Save
Salve,
non so niente di VBA Excel, ma ho bisogno, in un foglio di calcolo, di aggiornare il valore di due celle al salvataggio delle mofiche apportate al foglio stesso. In particolare, essendo il foglio di calcolo locato in un server in lan a cui possono accedere più utenti, vorrei salvare in una cella la data del momento in cui viene effettuato il salvataggio e l'autore. Ho aperto Microsoft Visual Basic dal contesto del foglio di calcolo, ho selezionato come oggetto ThisWorkbook e ho trovato la routine BeforeSave che, ad intuito, credo risponda all'evento che fa al caso mio. Ora, molto francamente: cosa ci devo scrivere dentro? Codice:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) // ...? End Sub ![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Codice:
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets("Foglio1").Range("A1").Value = Now() Sheets("Foglio1").Range("A2").Value = Application.UserName End Sub
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Ciao zuper,
grazie funziona a meraviglia, ho fatto così: Codice:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets("RO100").Range("A1").Value = "Last Modified" Sheets("RO100").Range("A2").Value = Now() Sheets("RO100").Range("A3").Value = "By" Sheets("RO100").Range("A4").Value = Application.UserName End Sub Siccome tutti i pc sono dell'azienda e come tali sono registrati, comparirebbe sempre la stessa stringa, ergo non si riuscirebbe ad identificare l'utente che ha editato per ultimo il file. E' invece possibile, se non è troppo complicato, recuperare il nome dell'utente che ha effettuato il login a Windows? Oppure usare qualche altro oggetto/proprietà, che non conosco? @EDIT: mi spiegeresti il significato dei due parametri booleani passati alla Sub? Cosa indicano?
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 18-12-2009 alle 13:00. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Quote:
![]() cmq: Codice:
Private Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets("Foglio1").Range("A1").Value = Now() Sheets("Foglio1").Range("A2").Value = (Environ$("Username")) End Sub ![]() i due parametri credo gli servano per poter distinguere se è un save o un save as...e dare la pox di cancellare il save ![]()
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
![]() |
![]() |
![]() |
#5 | ||
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Quote:
![]() Ok, grazie del chiarimento.
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
||
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Mar 2001
Città: PV Milano Nord
Messaggi: 3851
|
Quote:
i vostri pc saranno stati standardizzati e poi ghostati e l'hanno messa così ![]() cmq sotto strumenti opzioni generale si può anche ovviare al problema ![]()
__________________
"W la foca, che dio la benedoca"
poteva risolvere tutto la sinistra negli anni in cui ha governato e non l'ha fatto. O sono incapaci o sta bene anche a "loro" cosi. L'una o l'altra inutile scandalizzarsi.[plutus] |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Cmq meglio di no: può capitare che l'utente Luigi si sieda alla scrivania dell'utente Antonio: per poter usare Windows deve comunque loggarsi con il suo nome utente, ergo è meglio per me usare quello. Se usassi quello associato alla applicazione installata mi ritroverei con un'informazione menzognera ![]() Grazie del tuo prezioso aiuto, a buon rendere ![]()
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:20.