Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

collegamento a celle in remoto

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

collegamento a celle in remoto

Postdi pippovba » 13/09/10 17:47

Buon giorno a tutti i participanti del Forum.
Vorrei sapere se è possibile creare dei collegamenti a celle situate su un server. Mi spiego...
Ho una lista di 1000 numeri e ogni ora si aggiorna, cioè l'ultimo valore che si trova alla cella 1000 viene spostato sopra di una cella, quindi al valore 999, e così via.... chiaramente il valore che si trova alla cella numero 1 viene eliminato.

Attualmente questo file si trova sul mio pc, pero' dispongo di un server ( se dovesse servire ).
Vorrei poter accedere a questa lista di numero da un altro pc chiaramente collegato a internet.

Praticamente carico il foglio di excel da un altro pc e questo si aggiorna automaticamente con i 1000 valori del file excel in remoto. E possibile ? quali comandi si usano ?

Grazie.
pippovba
Utente Junior
 
Post: 18
Iscritto il: 08/01/10 16:52

Sponsor
 

Re: collegamento a celle in remoto

Postdi Anthony47 » 13/09/10 23:55

Non mi e' chiaro che ambiente pensi di poter avere a disposizione.
Se il server di cui parli e' accessibile tramite internet immagino che sia allora un web server, in questo caso le sue informazioni sono accessibili, da excel, tramite una "query web", che puoi predisporre affinche' aggioni i dati ogni xx minuti.

Se invece si tratta di un server all' interno i una rete locale, allora puoi importare i suoi dati tramite "Importa dati esterni", e anche qui potrai impostare l' opzione aggiorna ogni xx minuti.

Se servono maggiori dettagli siamo qua, ma devi chiarire quale architettura hai in mente.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: collegamento a celle in remoto

Postdi pippovba » 15/09/10 07:07

Grazie Antony_47 per il consiglio, ho fatto qualche prova con "l'importa dati" e ritengo questa funzione di excel molto interessante, ma credo che possa non andar bene per la mia idea perchè volevo poter personalizzare i dati da importare.
Ho su un server web supponiamo che si chiami http://www.pippo.it\file_1.csv con dei file's in csv, vorrei collegarmi a questi file e prelevare alcuni campi del file csv. I campi del file csv possono variare per questo ho pensato a creare delle variabili.
In un foglio di calcolo potrei mettere delle celle con all'interno il valore delle variabili, che sono: NOME DEL FILE CSV, PRIMO O SECONDO O TERZO DATO DA IMPORTARE, NUMERO DI VALORI DA IMPORTARE, CELLA DI PARTENZA PER COPIARE E VALORI.

Quello che vorrei tentare di fare è questo e lo' diviso in tre parti:

1) Assegnare a delle variabile i dati per l'importazione dei dati.

2) Marco o query web per importare i dati.

3) Protezione da pasword.

Faccio un esempio, variabili impostate come esempio, prelevare solo dal "file_1.csv" il "primo dato" per 500 valori e copiarli nella scheda chiamata "prova" dalla cella "A1".

Il file csv è fatto così e contiene molti righe, io dovrei selezionare solo le ultime 500 (come nell'esempio)

2010.07.08,16:30,6048.5,6052.5,6026.0,6028.0,574
data,ora,primo dato, secondo datro,terzo dato, quarto dato, quinto dato
..........................
..........................

in questo caso dovrei prelevare solo il "primo dato" e per gli ultimi 500 valori.
pippovba
Utente Junior
 
Post: 18
Iscritto il: 08/01/10 16:52

Re: collegamento a celle in remoto

Postdi Anthony47 » 16/09/10 00:28

Il mio suggerimento e' che fai una procedura di "Importa dati esterni" per portare tutto il file su un foglio excel; poi userai i tuoi parametri "PRIMO O SECONDO O TERZO DATO DA IMPORTARE" (immagino voglia dire prima, seconda o terza colonna) e " NUMERO DI VALORI DA IMPORTARE" per determinare quale range copiare e incollare nella CELLA DI PARTENZA PER COPIARE E VALORI.

Se vuoi farlo con macro:
a) imposta ed esegui manualmente la procedura di "Importa dati esterni" in modo che importi regolarmente i dati a partire da A1 di Foglio1: Menu /Dati /Importa dati esterni /Importa dati; come nome file inserirai http://www.pippo.it/NomeFile.csv; in Step 3 sceglierai, in Avanzate, il separatore decimale pari a "punto" (salvo che non sia cosi' gia' di default); sempre in step 3 imposta per ogni colonna importata il formato giusto (mi pare che A sia "Data AMG", gli altri sono Generale).
b) Quando il risultato dell' importazione e' in linea con quanto vuoi ottenere, seleziona Foglio2 e avvia la registrazione macro mentre
-attivi Foglio1
-selezioni una cella dei dati importati, tasto dx e scegli "Modifica testo importato";
- come nome file inserisci nuovamente http://www.pippo.it/NomeFile.csv; premi Fine
- Interrompi la registrazione

Vai al codice generato:
-alt-F8, seleziona il nome della macro prima generata (probabilmente Macro1, se non hai scelto un altro titolo nella fase di Registra macro), premi Modifica.
Ci sara' una riga del tipo .Connection = "TEXT;http://www.pippo.it/NomeFile.csv"
Sostituisci questa riga con
Codice: Seleziona tutto
Connec = "TEXT;http://www.pippo.it/" & Sheets("YYYYYY").Range("XXXX").Value
.Connection = Connec
Al posto di YYYY e XXXX metterai il nome del foglio e l' indirizzo cella che contiene il "Nome del file csv"
Infine, subito prima di End Sub aggiungerai:
Codice: Seleziona tutto
RowO = Cells(Rows.Count, 1).End(xlUp).Row - Sheets("YYYY").Range("ZZZZ").Value
Range("A1").Offset(RowO, Sheets("YYYY").Range("WWWW").Value - 1).Resize(Sheets("YYYY").Range("ZZZZ").Value).Copy _
    Destination:=Sheets("UUUU").Range(Sheets("YYYY").Range("VVVV").Value)

YYYY sai che cosa e'; ZZZZ e' la cella che contiene Quante righe vuoi importare; WWWW la cella che contiene quale colonna vuoi importare (1=A, 2=B, etc); VVVV e' la cella con l' indirizzo in cui vuoi importare i dati; UUUU e' il nome del foglio in cui vuoi importare i dati.

Infine associ questa macro a un pulsante (trovi questa forma nella barra degli strumenti Modulo) in modo che ti bastera' premere quel pulsante per avere i dati aggionati.

Prova e fai sapere dove arrivi, 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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: collegamento a celle in remoto

Postdi pippovba » 16/09/10 07:46

Grazie Antony per la risposta, adesso ci provo.....
pippovba
Utente Junior
 
Post: 18
Iscritto il: 08/01/10 16:52

Re: collegamento a celle in remoto

Postdi pippovba » 16/09/10 16:21

Ho fatto vari tentativi ma non ho ben compreso come impostare la variabili che nel tue esempio hai chiamato YYYY, ZZZZ, ecc. ecc. sono riferimento a celle oppure no?
Il programma mi da errore sulle ultime 2 righe, mentre per quanto riguarda l'importazione dei dati tramite server web funziona.
Il codice risulta così:
Codice: Seleziona tutto
Sheets("Foglio1").Select
    With Selection.QueryTable
       ' IL NOME DEL SERVER LO' CHIAMATO PIPPO COME ESEMPIO
       '.Connection = "TEXT;http://www.pippo.com/sito/dati.csv"
      Connec = "TEXT;http://www.pippo.com/sito/" & Sheets("Foglio3").Range("K3").Value
      .Connection = Connec
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(4, 1, 1, 1, 1, 1, 1)
        .TextFileDecimalSeparator = "."
        .TextFileThousandsSeparator = ","
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
    RowO = Cells(Rows.Count, 1).End(xlUp).Row - Sheets("Foglio3").Range("K4").Value
' SULLE RIGHE SOTTO MI DA ERRORE
Range("A1").Offset(RowO, Sheets("Foglio3").Range("A1").Value - 1).Resize(Sheets("Foglio3").Range("100").Value).Copy _
    Destination:=Sheets("Foglio2").Range(Sheets("Foglio3").Range("B1").Value)

End Sub
pippovba
Utente Junior
 
Post: 18
Iscritto il: 08/01/10 16:52

Re: collegamento a celle in remoto

Postdi Anthony47 » 16/09/10 23:22

Le formule e le istruzioni hanno riferimenti a dati del tuo foglio, se non descrivi dove sono i tuoi dati posso solo darti formule "di principio".
XXXX, WWWW, ZZZZ, VVVV sono tutti indirizzi di celle.
Noto che ZZZZ una volta l' hai tradotto "K4" e un' altra "100"; poiche' 100 non e' un indirizzo di cella ne' puo' essere il nome di un range esso e' certamente errato (tanto e' vero che il compilatore ti segnala errore nell' istruzione); se K4 contiene il numero di righe da importare allora e' giusto K4.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: collegamento a celle in remoto

Postdi pippovba » 17/09/10 09:53

Grazie Antony per la grande pazienza.
Ancora alcune informazioni...... quando eseguo la Macro1 si apre una finestra di dialogo e mi chiede il percorso del file e devo digitare l'indirizzo sul server del file csv. In questo caso http://www.pippo/sito/dati.csv. Invece vorrei che fosse automatico questo passaggio.

Ancora una informazione.... sto' leggendo alcuni articoli che spiegano come trasformare la macro in dll. Credi che sia possibile in futuro compilare questa macro creata in dll ? Chiaramente utilizzando VS6 o VB6.

Grazie
pippovba
Utente Junior
 
Post: 18
Iscritto il: 08/01/10 16:52

Re: collegamento a celle in remoto

Postdi Anthony47 » 17/09/10 19:51

quando eseguo la Macro1 si apre una finestra di dialogo e mi chiede il percorso del file e devo digitare l'indirizzo sul server del file csv.
Fai tasto dx su una delle celle in cui importi i dati, scegli "Proprieta' intervallo dati", controlla che NON SIA spuntata la voce "Richiedi nome file per l' aggiornamento".
Per quanto riguarda l' eventuale conversione in una dll, non vedo nessuna semplificazione a procedere in quel modo; tra l' altro una dll non consente nessun debug, per cui dovresti organizzare il codice in modo che testi le possibili situazioni di errore e si comporti di conseguenza.
Non so se ci sono righe di codice incompatibili con la sintassi di vb o vs.

Cio' detto, credo che la cosa sia fattibile, ma e' comunque al di fuori della mia specializzazione.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "collegamento a celle in remoto":


Chi c’è in linea

Visitano il forum: fabrizio2001, Marius44, patel e 8 ospiti