Discussione:
Condividere Macro
(troppo vecchio per rispondere)
Riddler ?
2006-12-12 10:58:47 UTC
Permalink
Salve a tutti,

il file in cui man mano sono state create le Macro di utilizzo ormai è
quasi in dirittura d'arrivo ...

E' possibile in modo efficace posizionere il file solo su una macchina
e condividerlo dalle altre in modo da poter richiamare dai vari Excell
aperti le stesse Macro "senza" duplicae il file o l'eventuale Add-In su
ogni postazione?

Grazie anticipatamente


Riddler ?
Maurizio Borrelli
2006-12-12 12:32:40 UTC
Permalink
Post by Riddler ?
il file in cui man mano sono state create le Macro di utilizzo ormai è
quasi in dirittura d'arrivo ...
E' possibile in modo efficace posizionere il file solo su una macchina
e condividerlo dalle altre in modo da poter richiamare dai vari Excell
aperti le stesse Macro "senza" duplicae il file o l'eventuale Add-In su
ogni postazione?
Ciao "Riddler ?".

Un modo: crei una cartella di nome "STARTUP" (o quello che preferisci)
in una cartella condivisa o comunque accessibile da tutti i pc in
questione (il cui percorso potrebbe essere per esempio
\\NOMESERVER\SharedDocs). Vi copi il file, per esempio col nome
"Utils.xls", quindi in ogni installazione di Excel:

Strumenti > Opzioni...
Generale
All'avvio apri tutti i file in: \\NOMESERVER\SharedDocs\STARTUP
[ OK ]

Attenzione: in versioni precedenti questa opzione si chiama "Posizione
file avvio alternativo".

Poi tutto sta a come sono scritte le macro in questione. Per esempio, se
fanno riferimento a percorsi locali del pc in cui sono state progettate
potrebbe essere necessario intervenire. Ecc.

Inoltre, chiarisci: parliamo di un file xls o di un file xla?

--
(Facci sapere se ed eventualmente come hai risolto. Grazie.)

Ciao :o)
Maurizio Borrelli, Microsoft Office Access MVP
-------- http://mvp.support.microsoft.com/
?SPQR(C)
X RIO - Risorse in italiano per gli utenti di office
-------- http://www.riolab.org/
Riddler ?
2006-12-12 14:09:00 UTC
Permalink
Post by Maurizio Borrelli
Ciao "Riddler ?".
Un modo: crei una cartella di nome "STARTUP" (o quello che preferisci)
in una cartella condivisa o comunque accessibile da tutti i pc in
questione (il cui percorso potrebbe essere per esempio
\\NOMESERVER\SharedDocs). Vi copi il file, per esempio col nome
Strumenti > Opzioni...
Generale
All'avvio apri tutti i file in: \\NOMESERVER\SharedDocs\STARTUP
[ OK ]
Attenzione: in versioni precedenti questa opzione si chiama "Posizione
file avvio alternativo".
Poi tutto sta a come sono scritte le macro in questione. Per esempio, se
fanno riferimento a percorsi locali del pc in cui sono state progettate
potrebbe essere necessario intervenire. Ecc.
Inoltre, chiarisci: parliamo di un file xls o di un file xla?
Grazie per avermi risposto,

Il file al momento è un file .xls e al suo interno le macro sono
divise in vari moduli, e a seconda della macro lanciata si accederà a
path differenti e modificabili al momento dell'installazione.

Con il metodo suggerito quindi non avrei il problema degli errori che
ci sono oggi a meno di duplicare la macro giusto?

Se due client lanciano la stessa macro, che opererà a partire da due
diversi file, ma che potrebbe andara a scrivere sullo stesso, come si
comporterebbe in quel caso?

Genererebbe valori attendibili o creerebbe disordine?

Nello specifico se devo copiare delle righe in un file che è la
raccolta di righe provenienti da più file questo mi creerebbe
problemi?

Grazie ancora

Riddler ?
Maurizio Borrelli
2006-12-12 14:57:32 UTC
Permalink
Post by Riddler ?
Post by Maurizio Borrelli
Un modo: crei una cartella di nome "STARTUP" (o quello che preferisci)
in una cartella condivisa o comunque accessibile da tutti i pc in
questione (il cui percorso potrebbe essere per esempio
\\NOMESERVER\SharedDocs). Vi copi il file, per esempio col nome
Strumenti > Opzioni...
Generale
All'avvio apri tutti i file in: \\NOMESERVER\SharedDocs\STARTUP
[ OK ]
Attenzione: in versioni precedenti questa opzione si chiama "Posizione
file avvio alternativo".
Poi tutto sta a come sono scritte le macro in questione. Per esempio,
se fanno riferimento a percorsi locali del pc in cui sono state
progettate potrebbe essere necessario intervenire. Ecc.
Inoltre, chiarisci: parliamo di un file xls o di un file xla?
Il file al momento è un file .xls e al suo interno le macro sono
divise in vari moduli, e a seconda della macro lanciata si accederà a
path differenti e modificabili al momento dell'installazione.
Con il metodo suggerito quindi non avrei il problema degli errori che
ci sono oggi a meno di duplicare la macro giusto?
Se due client lanciano la stessa macro, che opererà a partire da due
diversi file, ma che potrebbe andara a scrivere sullo stesso, come si
comporterebbe in quel caso?
Genererebbe valori attendibili o creerebbe disordine?
Nello specifico se devo copiare delle righe in un file che è la
raccolta di righe provenienti da più file questo mi creerebbe
problemi?
Ciao "Riddler ?"

Sei troppo vago. Per esempio quando scrivi "quindi non avrei il problema
degli errori che ci sono oggi a meno di duplicare la macro giusto?" come
faccio a dirti se e' giusto o no se non so di quali errori parli?

Cosa intendi con "accederà a path differenti e modificabili al momento
dell'installazione"? Di quale installazione parli?

Riguardo il fatto della possibilita' di scrivere sullo stesso file
immagino che non intendi "file" nel vero senso della parola (=grumo di
byte su disco) ma una cartella di lavoro aperta da due o piu' client.
Dei quali ciascuno lancia una macro che modifica ***la copia in
memoria*** della cartella di lavoro. Quindi il problema si presenterebbe
all'atto del salvataggio: in teoria l'ultimo a salvare sovrascrive i
salvataggi precedenti degli altri client. Ma, escluso il primo, ciascuno
di questi al momento dell'apertura avra' ricevuto la notifica che il
file e' gia' stato aperto in lettura/scrittura da un altro client.
Quindi o dovrebbero aspettare la notifica che possono usare il file
anche in scrittura o la tua macro dovrebbe gestire tale situazione.

--
(Facci sapere se ed eventualmente come hai risolto. Grazie.)

Ciao :o)
Maurizio Borrelli, Microsoft Office Access MVP
-------- http://mvp.support.microsoft.com/
?SPQR(C)
X RIO - Risorse in italiano per gli utenti di office
-------- http://www.riolab.org/
Riddler ?
2006-12-12 15:22:06 UTC
Permalink
Post by Maurizio Borrelli
Ciao "Riddler ?"
Sei troppo vago.
andiamo subito nell specifico ...
Post by Maurizio Borrelli
Per esempio quando scrivi "quindi non avrei il problema
degli errori che ci sono oggi a meno di duplicare la macro giusto?" come
faccio a dirti se e' giusto o no se non so di quali errori parli?
Ora a meno di duplicare il file macro e fare puntare da ogni postazione
su un identico file, ma con nome diverso non posso utilizzare le macro
per l'avviso che il file è già aperto da una istanza di excel.
Duplicando i file e facendo riferimento per ogni istanza di excel a un
file macro ( duplicazione del primo ) diverso l'errore non si presenta
e si può lavorare, ma se era possibile preferivo la versione di un
unico file condiviso da n istanze di Excel.
Post by Maurizio Borrelli
Cosa intendi con "accederà a path differenti e modificabili al momento
dell'installazione"? Di quale installazione parli?
Che se spostiamo il file Macor su un Server per esempio a cui i client
possono accedere, le path delle cartelle a cui la macro farà
riferimento devono essere assegnate in base a dove i dati saranno
posizionati.
Post by Maurizio Borrelli
Riguardo il fatto della possibilita' di scrivere sullo stesso file
immagino che non intendi "file" nel vero senso della parola (=grumo di
byte su disco)
No infatti ...
Post by Maurizio Borrelli
ma una cartella di lavoro aperta da due o piu' client.
esatto proprio questo ...
Post by Maurizio Borrelli
Dei quali ciascuno lancia una macro che modifica ***la copia in
memoria*** della cartella di lavoro.
sì proprio così
Post by Maurizio Borrelli
Quindi il problema si presenterebbe
all'atto del salvataggio: in teoria l'ultimo a salvare sovrascrive i
salvataggi precedenti degli altri client.
ok capito, bisogna serializzare le operazioni in modo che l'ultimo che
lo apre possa veder le modifiche che hanno fatto gli n prima di lui.
Post by Maurizio Borrelli
Ma, escluso il primo, ciascuno
di questi al momento dell'apertura avra' ricevuto la notifica che il
file e' gia' stato aperto in lettura/scrittura da un altro client.
ok
Post by Maurizio Borrelli
Quindi o dovrebbero aspettare la notifica che possono usare il file
anche in scrittura o la tua macro dovrebbe gestire tale situazione.
Posso mettere una macro in attesa che il file sia disponibile in
Modifica?
Se sì mi agevolerebbe parecchio e sarei un pò più tranquillo sul
risultato ...

Grazie ancora


Riddler ?
Maurizio Borrelli
2006-12-12 15:55:55 UTC
Permalink
Post by Riddler ?
Post by Maurizio Borrelli
Ciao "Riddler ?"
[...]
Post by Riddler ?
Post by Maurizio Borrelli
Quindi il problema si presenterebbe all'atto del salvataggio: in teoria l'ultimo a salvare sovrascrive i salvataggi precedenti degli altri client.
ok capito, bisogna serializzare le operazioni in modo che l'ultimo che
lo apre possa veder le modifiche che hanno fatto gli n prima di lui.
Post by Maurizio Borrelli
Ma, escluso il primo, ciascuno
di questi al momento dell'apertura avra' ricevuto la notifica che il
file e' gia' stato aperto in lettura/scrittura da un altro client.
ok
Post by Maurizio Borrelli
Quindi o dovrebbero aspettare la notifica che possono usare il file
anche in scrittura o la tua macro dovrebbe gestire tale situazione.
Posso mettere una macro in attesa che il file sia disponibile in
Modifica?
Se sì mi agevolerebbe parecchio e sarei un pò più tranquillo sul
risultato ...
Ciao "Riddler ?".

Potresti cominciare consultando la Guida di riferimento a Visual Basic
per Microsoft Excel alla pagina "Metodo Open" applicato all'oggetto
Workbooks. In particolare la descrizione dell'argomento "Notify" dove
dice che assegnando il valore False non si ottiene l'apertura della
cartella di lavoro ma un errore che potrai gestire nella tua macro.

--
(Facci sapere se ed eventualmente come hai risolto. Grazie.)

Ciao :o)
Maurizio Borrelli, Microsoft Office Access MVP
-------- http://mvp.support.microsoft.com/
?SPQR(C)
X RIO - Risorse in italiano per gli utenti di office
-------- http://www.riolab.org/
Riddler ?
2006-12-12 16:08:02 UTC
Permalink
"Riddler ?" wrote in message
Potresti cominciare consultando la Guida di riferimento a Visual Basic
per Microsoft Excel alla pagina "Metodo Open" applicato all'oggetto
Workbooks. In particolare la descrizione dell'argomento "Notify" dove
dice che assegnando il valore False non si ottiene l'apertura della
cartella di lavoro ma un errore che potrai gestire nella tua macro.
Quindi nella mia macro quando "tenterò" di aprire un determinato
WorkBook potenzialmente a riscio di scritture concorrenti potrei
mettermi in attesa con un ciclo while finchè ottengo l'errore, magari
visualizzando un pannello di cortesia all'utente e procedere
altrimenti.

Corretto?

Grazie del supporto


Riddler ?
Maurizio Borrelli
2006-12-12 16:44:13 UTC
Permalink
Post by Riddler ?
"Riddler ?" wrote in message
Potresti cominciare consultando la Guida di riferimento a Visual Basic
per Microsoft Excel alla pagina "Metodo Open" applicato all'oggetto
Workbooks. In particolare la descrizione dell'argomento "Notify" dove
dice che assegnando il valore False non si ottiene l'apertura della
cartella di lavoro ma un errore che potrai gestire nella tua macro.
Quindi nella mia macro quando "tenterò" di aprire un determinato
WorkBook potenzialmente a riscio di scritture concorrenti potrei
mettermi in attesa con un ciclo while finchè ottengo l'errore, magari
visualizzando un pannello di cortesia all'utente e procedere
altrimenti.
Corretto?
Ciao "Riddler ?".

Corretto ma il ciclo d'attesa progettalo con attenzione perche' chi ha
aperto il file potrebbe essersene andato a spasso senza chiuderlo.

--
(Facci sapere se ed eventualmente come hai risolto. Grazie.)

Ciao :o)
Maurizio Borrelli, Microsoft Office Access MVP
-------- http://mvp.support.microsoft.com/
?SPQR(C)
X RIO - Risorse in italiano per gli utenti di office
-------- http://www.riolab.org/
Riddler ?
2006-12-12 17:47:20 UTC
Permalink
Post by Maurizio Borrelli
Ciao "Riddler ?".
Corretto ma il ciclo d'attesa progettalo con attenzione perche' chi ha
aperto il file potrebbe essersene andato a spasso senza chiuderlo.
Sì sì vero ... potrei stabilire un termine massimo.

Comunque non è il mio caso, tale file viene aperto solo da determinate
Macro per aggiornarlo e da altre per leggerne i dati.

Domani a mente fresca comincio ad imbastire la cosa ...

Grazie per le dritte

Saluti a tutti


Riddler ?
Riddler ?
2006-12-13 11:09:17 UTC
Permalink
Post by Maurizio Borrelli
Potresti cominciare consultando la Guida di riferimento a Visual Basic
per Microsoft Excel alla pagina "Metodo Open" applicato all'oggetto
Workbooks. In particolare la descrizione dell'argomento "Notify" dove
dice che assegnando il valore False non si ottiene l'apertura della
cartella di lavoro ma un errore che potrai gestire nella tua macro.
Ok, bene con il metodo suggerito posso sfruttare una macro gia fatta ed
adattata grazie a i suggerimenti di Norman per una numerazione
condivisa
<http://groups.google.it/group/microsoft.public.it.office.excel/browse_frm/thread/c54bd022331913f0/a5bb8e8d1edb90d2?lnk=gst&q=workbook+open+notify&rnum=1#a5bb8e8d1edb90d2>

Ed inoltre ho trovato un post molto interessante di Mauro Gamberini che
studierò attentamente
<http://groups.google.it/group/microsoft.public.it.office.excel/browse_frm/thread/7cb0a8a6552b8d88/4eddee3b1ceca88c?lnk=gst&q=workbook+open+notify&rnum=2#4eddee3b1ceca88c>

Ora devo scappare ... appena rientro provo qualche alternativa ...

Ho segnalato i link nel caso in cui qualcun altro volesse approfondire
il discorso

Saluti a tutti

Riddler ?

Continua a leggere su narkive:
Loading...