Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

LANCIARE MACRO VBA IN RETE LAN

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 20/09/11 10:37

Salve a tutti,
sottopongo al contributo di tutti il seguente problema:

Su una rete LAN, vorrei lanciare un macro VBA di un file Excel 2003 residente (p.es.) sul PC "remoto" tramite un'altra macro VBA (sempre di un file excle 2003) ma residente sul PC (p.es.) "mio".
L'operazione funziona se i due file sono sullo stesso stesso PC, ma sono invece in difficoltà quando i due file sono su due PC su una LAN.
Grazie a tutti
saluti
CaR (GO)
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Sponsor
 

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Anthony47 » 20/09/11 13:41

Non credo che tu possa mandare in esecuzione una macro su un pc diverso da quello su cui lavori; ovviamente potresti realizzare un meccanismo per cui una macro in esecuzione su un altro pc periodicamente controlla se ha ricevuto una richiesta di eseguire una cosa particolare e se Si la esegue; la sincronizzazione la puoi fare, ad esempio, con un file txt che resiede su un server di lan, che il Pc "A" compila e il Pc "B" periodicamente interroga per vedere se ci sono comandi da esguire.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 20/09/11 21:50

Salve Mr. Antony,
quella dell'interrogazione mi sembra una buona idea. Di attuazione non immediata per il mio livello ma da provare, anche se preferirei non "complicarmi la vita" con il server.
Potrebbe rilevarsi interessante utilizzare le funzioni di sincronia file. Ci penso su...........

In ogni caso rimane un "isteresi" rispetto al tempo reale uguale all'intervallo di interrogazione o sincronia.

Grazie 1K per i sempre preziosi suggerimenti e soluzioni
Saluti CaR
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 23/09/11 16:31

Salve a Antony e a tutti,

per superare il problema dell'isteresi nell'aggiornamento dei dati l'idea è di emulare, tramite con una macro VBA di Excel 2003, le funzioni di “download” da un sito senza però ricorrere ad applicazioni web e PC-server dedicati.

Nel caso specifico, semplificando, si tratta di un file Excel 2003 con un collegamento ipertestuale ad un file .pdf (p.es. “PDF .pdf”). Entrambe i file risiedono su un PC (p.es. “remoto”) collegato in rete LAN con un altro PC (p.es.“Locale”), al quale spetta il compito di generare e conservare gli aggiornamenti per il file "Pdf.Pdf", che andranno a sostituire edizioni precedenti dello stesso.

Ciò che serve è una macro VBA sul file excel che "gira" sul PC "remoto” con la quale copiare il file “PDF.pdf” dal PC "locale" al PC "remoto”. Questa operazione di copia-sostituzione attualmente viene fatta manualmente.
Si presuppone che il file PDF sul PC "remoto" sia chiuso. Nel caso generale, ciò non è vero ma per questa parte del problema credo di aver già la soluzione.

In questo modo avrei la possibilità di aggiornare il file PDF sul PC “locale” indipendentemente dallo “stato” (aperto/chiuso) del omonimo file PDF (in versione precedente) sul PC “remoto”.
Nel contempo, ad ogni "chiamata" della macro, il PC “remoto” carica (copia ed apre) un file sicuramente aggiornato all'ultima versione.
Inoltre il file PDF sarebbe comunque disponibile su PC "remoto" anche in condizione OFF-Line transitorie (ovviamente in questo caso decade la certezza sullo stato di aggiornamento).

Spero di essere stato sufficientemente chiaro nell’esporre l'idea (e difficoltà nel realizzarla)

Ringrazio anticipatamente per il prezioso supporto offerto.
Saluti, Ca.R. (GO)
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Anthony47 » 25/09/11 00:32

per superare il problema dell'isteresi nell'aggiornamento dei dati l'idea è di emulare, tramite con una macro VBA di Excel 2003, le funzioni di “download” da un sito senza però ricorrere ad applicazioni web e PC-server dedicati.
Quindi tu pensi che sia piu' semplice disporre di un web server che non di un server??

Altro dubbio: se il file pdf.pdf e' ospitato sul pc "remoto", allora non ti serve una macro per copiare il file “PDF.pdf” dal PC "locale" al PC "remoto”; volevi dire l' opposto, dal pc remoto al pc locale? Anche se questa ipotesi non e' confermata dalla frase successiva ("In questo modo avrei la possibilità etc etc") la ritengo la piu' probabile.

Pertanto, affinando il mio suggerimento iniziale:
-crei un' area condivisa tra il pc A (locale) e il pc B (remoto); questo puo' essere un' entita' che funziona da server di rete, oppure un' area del filesystem del pc A o B che poi mapperai come drive Z "sull' altro pc".
Poi nella macro che gira sul pc B (remoto) quando vuoi copierai il file pdf nell' area condivisa, con una istruzione del tipo
Codice: Seleziona tutto
FileCopy "C:\Users\Utente1\Desktop\DA_PC-FACILE\PDF.xls", "Z:\pippoXYZ.pdf"

(XYZ e' una numerazione progressiva gestita dal pc B; presuppone che l' area condivisa sia sul pc A e il relativo drive sia mappato come Z sul Pc B

"Periodicamente" il pc A controlla che sia presente un file "pippo*.pdf" nell' area shared e se Si lo archivia dove serve.

Come vedi rimane il problema dell' ipotetico ritardo tra la scrittura di un file pippoXYZ.pdf e la sua elaborazione da parte del pc A, che puoi ridurre a pochi secondi ad esempio schedulando la macro sul pc A ad es su 5 secondi; ma se i file in entrata vengono "accodati" con un progressivo crescente e la tua macro elabora tutti i file nella coda, questo ritardo e' realmente un problema?

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 25/09/11 21:57

Salve Antony,

.....certamente ritardi dell'ordine di 5 '' e fino a 1'-2' nel mio caso NON sarebbero un problema.
Comunque, confermo quanto detto nel mio messaggio precedente, che provo a riformulare meglio come segue:

Su Pc "locale" preparo e salvo un file PFD.
Subito dopo copio (a mano) lo stesso file PDF anche su PC "remoto", sostituendo il file precedente con lo stesso nome_file ivi memorizzato.
La copia PDF su PC "remoto" è quella "realmente utile" cioè quella che viene aperta (tramite un collegamento ipertestuale da excel 2003) su "PC remoto".

L'idea è quella copiare il file PDF da "locale" (ove è stato generato) a "remoto" (ove sarà utilizzato ), ad ogni "chiamata di apertura" (tramite collegamento ipertestuale).
In generale quindi il PDF su PC "locale" e "remoto" sono sempre identici a meno dell'intervallo di tempo che intercorre fra un'aggiornamento su "locale" e la prima apertura su "remoto", ma questa condizione è a tutti gli effetti irrilevante.

Riassumendo per fasi, averemmo allora che:
1) clic su collegamento ipertestuale = attivazione macro su PC "remoto";
2) chiusura file PDF PC "remoto";
3) copia/sostituzione file PDF da "locale" a "remoto";
4) apertura PDF su "remoto".

Come dicevo con la mail precedente per le fasi 2 e 4 dovrei avere già la soluzione, per la fase 1) vedrò cosa fare dopo la soluzione delle fase 3). Spero di uno aver generato altri dubbi.
Nel frattempo "studio" meglio la soluzione gentilmente suggerita, codice compreso.
Grazie per la pazienza.
Saluti CaR
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Anthony47 » 25/09/11 22:26

Quanto ti ho suggerito nel post di ieri sera e' applicabile anche al processo che descrivi, con la sola variante che:
-il pc "locale" crea in un' area condivisa una copia del file Pdf con altro nome es pippo.pdf; l' istruzione vba e' ancora quella di ieri sera
-la maro sul pc remoto:
--chiude il pdf corrente, che resiede sull' area condivisa tra i due pc, controlla che ci sia pippo.pdf; se Si cancella PDF.pdf, rinomina pippo.pdf in PDF.pdf; per quest' ultima cosa userai l' istruzione Name, nella sintassi
Codice: Seleziona tutto
Name vecchionomepercorso As nuovonomepercorso


Mi immagino che l' area condivisa debba essere sul pc remoto, per consentire alla sua applicazione di funzionare anche senza il pc locale.

Che cosa non quadra?
Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 26/09/11 08:24

Ok Mr. Antony,
ringrazio per le sempre sollecite e precise risposte.
la soluzione era chiara già da ieri, ho preferito ri-esporre la situazione solo a scanso di equivoci.

Aggiungo che tutto sarebbe più semplice ribaltando i termini del problema ovvero facendo in modo che sia una macro lanciata su PC “locale” a copiare il file PDF su PC “remoto”.
In questo caso però sorge l’inghippo di come chiudere “a comando” il file PDF eventualmente aperto su “remoto” per permetterne la sostituzione con la versione aggiornata. Era questa in definitiva la domanda originale del Topic alla quale hai già risposto.

Nei prox gg provo a integrare quanto suggerito.

Grazie infinite, saluti
CaR (GO)
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 26/09/11 21:02

Salve Antony,
tutto quadra!
E' stata sufficiente l'istruzione Filecopy per sbrogliare la situazione.
Grazie, e come si dice .. alla prox domanda
passo e chiudo (questo topic)
Saluti CA.R (GO)
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Anthony47 » 27/09/11 01:33

Salve Antony,
tutto quadra!
:)

Se hai scelto la condivisione di una risorsa, allora dovresti perfezionare il codice inserendo anche il controllo che il drive di rete sia disponibile.
Inoltre, invece di usare il drive, es Z:, potrebbe essere utile usare il cosidetto UNC (Universal Naming Convention), nella forma \\SharedUnit\subdirectory\nomefile.abc; questo consentirebbe di indirizzare il pc che condivide la risorsa senza sapere come viene mappato sul proprio pc.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 28/09/11 09:56

Ok provo grazie saluti
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 31/05/12 20:19

Mr Antony,

riprendo il topic di qualche tempo fà perchè effetivamente è sorta la necessita di verificare la disponibilità del drive di rete prima di lanciare l'istruzione filecopy.
sulla quida in linea di VBA ho trovato del codice che utilizza l'istruzione file search + .execute.
Con questa funzione vado a cercare un determinato file nel drive di rete. se il file c'è allora il drive è disponibile altrimenti no. Funziona ma è lento (sopratutto in rete wireless 54kbps).

Per favore potresti suggerirmi qualche routine più efficiente.
Grazie saluti
CaR
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Anthony47 » 31/05/12 21:33

Non ho una rete e non posso fare prove, pero' vorrei essere certo che il problema sia controllare che il server di cui si conosce l' UNC e' correttamente accessibile (e non, ad esempio, controllare se quel server e' mappato come drive di rete e con quale lettera).
Vorrei intanto sapere se un approccio di questo tipo aiuta:
Codice: Seleziona tutto
Set FSo = CreateObject("Scripting.FileSystemObject")
SiNo = FSo.folderexists("\\myserver\mypath")  '<< il tuo indirizzo unc

SiNo dovrebbe essere Vero se quel percorso unc esiste, Falso in caso opposto.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 01/06/12 08:54

Antony,
Grazie per la sollecita risposta,

confermo che il PC da verificare come "disponibile" in rete, è identificato tramite un percorso tipo "\\Myserver\mypath\", e non tramite drive "X"
Più tardi proverò ad utilizzare il codice suggerito.
Grazie, saluti
CaR (GO)
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22

Re: LANCIARE MACRO VBA IN RETE LAN

Postdi Ca.R » 08/06/12 05:41

MR ANTONY,
Confermo tutto ok
Grazie molt...issime saluti
CaR
Ca.R
Utente Junior
 
Post: 45
Iscritto il: 16/02/11 23:22


Torna a Applicazioni Office Windows


Topic correlati a "LANCIARE MACRO VBA IN RETE LAN":


Chi c’è in linea

Visitano il forum: Nessuno e 15 ospiti