Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Sapere chi sta attualmente condividendo il file (Excel 2003)

Ultimo Aggiornamento: 25/03/2020 13:13
Post: 28
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
06/03/2020 17:42

Buon pomeriggio a tutti,
vorrei proporre un quesito un po insolito, sicuro di trovare uno "geniaccio" che sappia trovare la soluzione.
Lavoro su un file di una cartella di lavoro condivisa con altri 4 utenti; se voglio sapere chi è attualmente "collegato" alla cartella di lavoro, basta andare sul menù strumenti e cliccare su "Condividi cartella di lavoro..." e si apre la finestra con scritto: "Attualmente la cartella di lavoro è utilizzata da...".
La mia domanda è la seguente: è possibile avere questo elenco (che si aggiorni in tempo reale) predisponendo delle celle direttamente sui fogli del file stesso, senza dover ogni volta consultare il menù strumenti?
Praticamente come una piccola finestra sempre attiva che dia la possibilità di avere sempre sotto controllo la situazione.
Confido in tutti voi e so di stare nel posto giusto!
Grazie infinite.
Elio
P.S. Lavoro con Excel 2003.
[Modificato da elioeco 06/03/2020 17:51]
EcoBand
Post: 28
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
10/03/2020 15:35

Sapere chi sta attualmente condividendo il file....
...non ditemi che non c'è soluzione,,,🙏😓
EcoBand
Post: 2.565
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
10/03/2020 16:09

menu revisione > condividi cartella di lavoro

saluti





Domenico
Win 10 - Excel 2016
Post: 29
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
11/03/2020 09:18

Dodo47
Ciao e ti ringrazio per aver risposto; ma mi hai segnalato quello che gia sapevo. Io chiedevo se c'è un modo di avere quello schema (utilizzando e formattando adeguatamente le celle) direttamente sul foglio su cui si sta lavorando: una sorta di finestra sempre aperta che aggiorna in tempo reale chi attualmente sta lavorando e su quale foglio. Mi chiedevo se sosse possibile, utilizzando anche VBA....
[Modificato da elioeco 11/03/2020 09:21]
EcoBand
Post: 2.568
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
11/03/2020 11:23

ciao

1) Users = ActiveWorkbook.UserStatus
non sono sicuro che li elenchi tutti, guarda in debug cosa contiene la variabile Users nella finestra immediata del vb.
Edit confermo che nell'array Users() vanno a finire tutti gli utenti che al momento utilizzano il file.
NOTA: i tre dati esposti per ciascun utente sono:
User(x,1)=Nome
User(x,2)=data e ora
User(x,3)=Parametro 1(Esclusivo) oppure 2(Condiviso)


2) Set mInfo = Application.Dialogs(xlDialogFileSharing)
assegna alla variabile mInfo i valori della finestra di dialogo (quellaa che apri dal menu di cui al precedente post); ma non so se si possano estrarre i vari dati.

In debug e sempre nella finestra delle variabili locali guarda se tra gli elementei di "Application" o di "Parent" trovi quello che ti serve.

Vedo se trovo qualcosa.....

saluti




[Modificato da dodo47 11/03/2020 13:26]
Domenico
Win 10 - Excel 2016
11/03/2020 12:29

Se Vuoi provare...(spero vada bene col 2003)
Post: 30
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
11/03/2020 13:52

dodo47
Ciao Dodo47, adesso va di meglio in peggio 😀😀😀, nel senso che io sono alle primissime armi con il VBA e quello che mi hai scritto, per me, è quasi paragonabile all'arabo (mi hai sopravvalutato... e pure di tanto 😀).
Puoi provare a spiegarmi, passo passo, come devo operare?
(sempre che non ti rubi troppo tempo).
Ti ringrazio infinitamente, comunque vada.
EcoBand
Post: 31
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
11/03/2020 13:57

ABCDEF@Excel
Grazie per la risposta.
Ci do un'occhiata per vedere come adattarlo al mio foglio (sperando di capirci qualcosa) e ti farò sapere...
Siete straordinari!!!
Grazie di cuore.
EcoBand
Post: 2.570
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
12/03/2020 10:08

@elioeco
avventurarsi nella programmazione senza avere una minima base di conoscenza è un rischio elevato in quanto se non capisci non puoi gestire.

Ciò premesso:

sub xxxx()
vUtenti = ActiveWorkbook.UserStatus
For i = 1 To UBound(vUtenti, 1)
 Cells(i, 1) = vUtenti(i, 1)
 Cells(i, 2) = vUtenti(i, 2)
 if vUtenti(i,3)=1 then 
   Cells(i, 3).Value = "Exclusivo"
 else
   Cells(i, 3).Value = "Condiviso"
 end if
next i
end sub


questo scrive, per ogni utente attivo, quanto detto in colonna A,B,C adatta a quanto ti occorre.

saluti




[Modificato da dodo47 12/03/2020 10:09]
Domenico
Win 10 - Excel 2016
12/03/2020 12:59

Complimenti dodo47
Perfetto anche se non ho files condiviso.

@elioeco
Il mio allegato non và bene, si può vedere solo l'utente che lo apre. Poi bisognava vedere se Msgbox = Environ("Username") funziona in 2003
Post: 32
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
16/03/2020 15:50

dodo47
Grazie per avermi risposto. Con il codice che hai postato sto cercando di adattarlo alle mie esigenze e, avendo fatto delle prove, ho cambiato così:

vUtenti = ActiveWorkbook.UserStatus
For i = 1 To UBound(vUtenti, 1)
Cells(i, 1) = vUtenti(i, 1)
Next i

poichè mi interessa solo il nome di chi è attualmente collegato.
Adesso sto cercando di capire come elencare gli utenti collegati, visualizzandoli partendo dalla cella P10 alla P20.

...poi creerò un pulsante sul foglio "Menù principale" per associarle la macro.
EcoBand
Post: 33
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
16/03/2020 15:50

dodo47
Grazie per avermi risposto. Con il codice che hai postato sto cercando di adattarlo alle mie esigenze e, avendo fatto delle prove, ho cambiato così:

vUtenti = ActiveWorkbook.UserStatus
For i = 1 To UBound(vUtenti, 1)
Cells(i, 1) = vUtenti(i, 1)
Next i

poichè mi interessa solo il nome di chi è attualmente collegato.
Adesso sto cercando di capire come elencare gli utenti collegati, visualizzandoli partendo dalla cella P10 alla P20.

...poi creerò un pulsante sul foglio "Menù principale" per associarle alla macro.
[Modificato da elioeco 16/03/2020 15:54]
EcoBand
Post: 34
Registrato il: 01/06/2016
Città: PISA
Età: 64
Utente Junior
2003
OFFLINE
25/03/2020 13:13

dodo47
Ciao dodo47,
ho impiegato un pò di tempo a rispondere perchè, con tutto questo casino del Covid-19, si è stravolto tutto il tempo per fare le cose quando ci sono priorità più importanti.
Grazie a te, però, sono riuscito a risolvere il mio problema.
Ho modificato il tuo codice (ma non più di tanto) in questo modo:

Sub ControlloUtentiInLinea()
'
' ControlloUtenti Macro
' Macro registrata il 17/03/2020
Sheets("INTRO").Select
Range("P10:P20").ClearContents
vUtenti = ActiveWorkbook.UserStatus
p = 10
For i = 1 To UBound(vUtenti, 1)
Cells(p, 16) = vUtenti(i, 1)
p = p + 1
Next i
End Sub

... e va alla grande!!!
Grazie ancora e grazie anche a ABCDEF@Excel per essersi interessato al problema.
Non immaginate quanto siete preziosi tutti voi di questo forum, che riuscite a risolvere qualsiasi problema proponiamo noi, "miseri mortali", con una pazienza esemplare (a volte mi capita di leggere altri post su questo forum e mi rendo conto di quanta pazienza e semplicità di spiegare le cose siete capaci).
Grazie, grazie, grazie,
per esserci sempre e comunque!
🔝🔝🔝🔝🔝🔝🔝
[Modificato da elioeco 25/03/2020 13:15]
EcoBand
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 07:32. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com