Vai al contenuto
PLC Forum


Excel: Sincronizzazione File - Come aggiornare i contenuti


Messaggi consigliati

Inserito: (modificato)

Ciao a tutti,

so che il titolo sembra un po strano...

cercherò di chiarirvi un po le idee, riassumendo il più possibile.

Ho un file excel (un super archivio (so che non è lo strumento migliore... ma di fatto è così!)) su un server,

sul quale possono accedere (e quindi modificare) vari utenti.

Il file viene modificato anche durante le trasferte di ogni singolo utente... ed è proprio qui che nasce il problema.

Cioè... come fare ad aggiornare al rientro della trasferta?

In pratica... l'utente Pippo che parte per la trasferta, si fa una copia in locale del file, che modificherà in alcune sue parti durante la trasferta stessa.

Nel frattempo, a casa, gli altri utenti continuano a lavorare/modificare il file sul server: quando Pippo rientra, vorrebbe aggiornare le sue modifiche effettuate, sul file madre.

Com'è fattibile questa cosa?

Se fosse un'aggiornamento monodirezionale... non avrei problemi a fare una macro che verifichi le singole diversità fra cella e cella per poi aggiornare,

ma essendo il file madre in continua evoluzione... rischierei di cancellare informazioni modificate dagli utenti a casa... sovrascrivendo con quelle di Pippo (che magari... lui non aveva neanche toccato).

Io pensavo ad una cosa del genere:

Pippo modifica le celle che gli interessano, inserendo in esse un carattere particolare. La macro, a quel punto, scannerebbe tutte le celle fino a trovare quel carattere; una volta trovata... la cella verrebbe copiata sul file madre.

Ma se Pippo dimentica il carattere... rischierei una perdita di dati.

C'è un sistema più semplice? Non è che magari... c'è una proprietà dell'oggetto cella che mi indica la data dell'ultima modifica? Magari fosse così semplice... :)

Avete un qualche suggerimento?

Ciao e grazie,

Cesco.

Modificato: da Cesco

Ospite bingobongo
Inserita:

il problema sta nel fatto che le modifiche che si apportano al file excel sono fatte partendo da una origine che può cambiare nel tempo e nel formato. a parte lo strumento che usi (excel, access ...) io lavorerei sulle variazioni apportate ai vari record invece che sui valori assoluti.

mi spiego meglio (improvviso perchè non conosco il tipo di foglio e el informazioni contenute):

se un determinato record contiene la qta di un articolo da fatturare al cliente e quando il tuo venditore parte per il giro clienti ed ha un totale ordini per quell'articolo di 1000 pz ed al suo ritorno in sede ne ha venduti 200 pz la variazione da scrivere nel record del file principale sarà quella presente in quel momento + 200 pz venduti (e non 1200 che è il totale!!!). in questo modo le variazioni apportate dai vari venditori terranno conto di quelle già scaricate nel file da parte degli altri venditori.

naturalmente la macro si occuperà di caricare le variazioni nei record giusti.

ho improvvisato un pò.......

Inserita:

La tua idea, rigilandola un po, potrebbe essere buona per un tipo di dato contenuto nell'archivio:

come un campo "Note", in cui ogni utente aggiunge una sua nota, appunto.

Una volta che Pippo rientra dalla trasferta, la macro confronta quella colonna non la relativa del file su server.

Verifica cosa è uguale, e "copia" per poi "incollare" alla fine delle cella del file server.

Es.

al momento della copia la cella è "pluto.",

il nostro Pippo parte per la trasferta.

A casa modificano la cella in modo che sia "pluto. paperino.",

Pippo modifica la cella in modo che sia "pluto. minnie".

Al rientro di Pippo, la macro troverò le differenze... e correggerà in modo da avere come risultato "pluto. paperino. minnie".

Il vero problema... è per le celle "assolute":

per quelle il valore è uno ed uno solo soltanto, e lì la macro dovrebbe trovare un modo per verificare qual'è stata la modifica più recente.

Suggerimenti...? :blink:

Ciao e grazie.

Cesco.

Ospite bingobongo
Inserita:

per quelle assolute o :

- realizzi un'interfaccia (VB...) al tuo file excel attraverso la quale immetti i valori nelle celle e che si fa carico di aggiungere data e ora di variazione in un foglio che poi viene elaborato a casa dal 'server' che aggiornerà il file 'master'

- crei una macro in excel che faccia una cosa simile.

rimane aperto il problema dell'eventuale data/ora sbagliata su uno dei pc che vanno in trasferta. qui non credo ci sia nulla da fare se non fidrsi del trasfertista.

Inserita:

Esatto...

concordo pienamente con i tuoi consigli: anche io, alla fine, pensavo ad una soluzione del genere.

Bene...

grazie bingobongo!

Ciao,

Cesco.

Inserita: (modificato)

1) Interfaccia VB ti semplifica la vita nella scrittura del codice, perché il codice VBA di excel è ridotto rispetto alle potenzialità del linguaggio.

2) convertire excel in un file access (per esempio). Access ha proprio all'interno la funzione per importare le informazioni da un file excel.

3) controllare sul computer come si scrive Access se con una o due esse. :D

4) le modifiche assolute sincronizzate. Ciò comporta che tutti i computer siano sincronizzate come orario.

Ma le modifiche assolute che campi riguardano? altrimenti corri il rischio che gli utenti continuino a modificarsi i dati uno con l'altro. o che gli utenti operino con quel record convinti che il dato letto sia l'ultimo disponibile, ma nella realtà quelli informazione è già stata modificata da qualcun altro. A quel punto l'unica strada è la centralizzazione del DB o del file tramite una interfaccia di rete in modo che tutti gli utenti operino sulle informazioni a "real time" e non su dati "vecchi come il cucco".

Modificato: da omabra
Inserita:

Esiste anche la possibilità di creare delle precedenze e quindi consentire, previo avviso, la modifica della cella, con variazioni in conflitto, secondo una indicata priorità (file condiviso). Certo che questo funziona bene se si opera fisicamente sullo stesso file. Le modifiche fatte da altri utenti vengono segnalate e l'amministratore del file ha la facoltà di accettarle o di rifiutarle, in caso di conflitto.

Ho 3 file in queste condizioni e per me nessun problema, visto che l'amministratore sono io, non so cosa ne pensano gli altri quando cancello le loro modifiche :P

Inserita:

Sono giustissime tutte le vostre osservazioni, e vi ringrazio per aver postato.

In particolare...

A quel punto l'unica strada è la centralizzazione del DB o del file tramite una interfaccia di rete in modo che tutti gli utenti operino sulle informazioni a "real time" e non su dati "vecchi come il cucco".

Inserita:

avevo trovato del codice per lavorare direttamente su foglie excell... appena li ritrovo te li posto.

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...