Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

MACRO EXCEL COPIA - INCOLLA + AGGIORNA DATI DA WEB

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

MACRO EXCEL COPIA - INCOLLA + AGGIORNA DATI DA WEB

Postdi marcellochemin » 28/04/15 19:17

Carissimi, dopo aver provato senza risultati ad adattare alle mie esigenze le vostre numerose risposte su problemi simili mi trovo costretto a chiedervi aiuto con un nuovo topic dedicato.
Premetto che non ho nessuna conoscenza di basic e che il mio utilizzo delle macro fino ad oggi si era limitato a banali registrazioni.
Cercherò di essere il più chiaro possibile ma se avrete la pazienza di leggere e avete dei dubbi chiedete pure:
Sto costruendo un Data Base (finanziario) che vorrei venisse aggiornato giornalmente in automatico semplicemente facendo girare una macro.
Cerco di spiegare in due punti cosa vorrei ottenere:
1- Nel foglio "Import data" vengono importati da un sito internet i dati relativi ad alcuni titoli
http://s16.postimg.org/omf9356g5/import_data.jpg
In particolare i valori delle colonne D ed E si aggiornano automaticamente. Il valore di cui vorrei tenere traccia è "prec. chiusura" quindi per capirci le celle E5, E13, E21 e così via fino alla E 181.
Inoltre tali valori vorrei che venissero registrati in un DB, e qui viene il difficile:
2- Nel foglio "Data base" ho inserito un "flag" per fare in modo che venga riconosciuta la data e - per la colonna corrispondente - vorrei che venissero riportati i dati importati in "import data" (punto 1 precedente). Cerco di spiegarmi meglio con le immagini:
http://s23.postimg.org/fhohnz2rf/Database_valori.jpg
http://s16.postimg.org/r28ss97mt/Data_Base_formule.jpg
In pratica il programma, riconoscendo che oggi è il 28 aprile (day flag =1) mi riporta nella colonna indicata dal flag i dati scaricati in "import data". Il problema si porrà domani.. Il 29 aprile importerò le nuove quotazioni in import data e, aggiornandosi la funzione "oggi" tali dati saranno riportati nella colonna relativa al 29 aprile nel foglio "Data Base".. Ma non terrò più traccia dei dati che avevo importato il 28 aprile.. Insomma un pessimo database.

Per questo la macro che avevo ipotizzato dovrebbe fare le seguenti operazioni:
1. Nel foglio "Data base" Nelle colonne relative ai giorni precedenti (fino a quando il "cumulated day flag" è uguale a 1) copia ed incolla nelle medesime colonne i dati che trova
2. Nel foglio "import data" vengono aggiornati i dati tramite la query
3. Nel foglio "Data base", Relativamente alla colonna odierna (indicata dal day flag =1) vengono copiati ed incollati i valori appena ottenuti dalla query del foglio "import data".
In questo modo mi troverei ad avere il dato odierno aggiornato senza aver perso i valori storici.

Spero di essere stato sufficientemente chiaro ma se avete dubbi chiedete pure.
Grazie a tutti in anticipo,
Marcello

P.S. Se può essere d'aiuto la formula che utilizzo per pescare il dato relativo al giorno odierno nel foglio database è la seguente:
=INDICE(dati_import;CONFRONTA(B9;'Import Data'!$C$5:$C$187;0);3)
Di nuovo grazie
marcellochemin
Newbie
 
Post: 8
Iscritto il: 28/04/15 18:13

Sponsor
 

Re: MACRO EXCEL COPIA - INCOLLA + AGGIORNA DATI DA WEB

Postdi Anthony47 » 28/04/15 23:48

Ciao marcellochemin, benvenuto nel forum.
Il dettaglio che hai pubblicato va bene per un programmatore, noi nel forum ci limiteremo a dei suggerimenti che dovrebbero costituire un punto di partenza su cui lavorare.
Ovvio che per consolidare le chiusure precedenti bisogna procedere con una macro, che io strutturerei in questo modo:
-lavorando sul foglio Import_Data, colonna C, cercherei uno dopo l' altro i titoli; in Offset(0,2) c' e' il valore della precedente chiusura. Il primo lo selezioni con
Codice: Seleziona tutto
Sub MemOld()
    Sheets("Import Data").Select
    Range("C3").Select
reShare:
    Selection.End(xlDown).Select
    If Selection.value = "" then Exit Sub          'Finito di trovare
    myTit = Selection.Value
    myOld = Selection.Offset(0, 1).Value

Avrai il titolo nella variabile myTit e il valore in myOld
-lavorando sul foglio DataBase identifichi la colonna della data odierna sulla riga 7 e la riga del titolo selezionato sulla colonna B; compili Riga /Colonna col valore
Codice: Seleziona tutto
myCol = Application.Match(Date, Sheets("Data Base").Range("A7").Resize(1, Columns.Count - 1), False)
myRow = Application.Match(myTit, Sheets("Data Base").Range("B1").Resize(Rows.Count - 1, 1), False)
Sheets("Data Base").Cells(myRow, myCol).Value = myOld
GoTo reShare
End Sub


Il GoTo finale serve a ripetere il loop per il titolo successivo, fintanto che la ricerca (foglio Import_Data, colonna C) non produce una stringa vuota.

E' un punto di partenza, ma avendo il file di lavoro sicuramente potrai fare molti passi avanti.

Quindi prova e fai sapere...
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: MACRO EXCEL COPIA - INCOLLA + AGGIORNA DATI DA WEB

Postdi marcellochemin » 29/04/15 21:58

Ciao Anthony, prima di tutto grazie della risposta.
Ho provato a lavorare sulla macro che mi hai dato ma credo che tu abbia toccato il punto giusto in apertura della tua risposta. Cercando di spiegare il problema al meglio ho inserito tanti dettagli trasformando la mia richiesta non più in una specifica macro ma in un vero e proprio programmino.
Vediamo se oggi mi va meglio:
La macro che ho in testa non fa altro che copiare ed incollare a valore i valori contenuti in una matrice.
Le colonne della matrice sono variabili e sono contrassegnate dall'"1" in cima.
Le righe sono variabili: tutte quelle <>0.
Esempio:
Step 1 prima della Macro:
Valori:
http://s16.postimg.org/w5839zqit/vistavalori.jpg
(lascia perdere che i valori sono tutti uguali era solo per risparmiare tempo)
e Formule:
http://s2.postimg.org/ll2mi9ift/vistaformule.jpg
Come puoi notare la colonna "J" è l'unica che mi restituisce dei valori da una formula mentre le colonne precedenti sono values.
La Macro - molto più semplice di quella che avevo in testa all'inizio - non fa altro che copiare e incollare a valore i valori della colonna J in quanto la riga 9 assume valore 1 anche per la colonna J
http://s15.postimg.org/5vkmr32uz/postmacro.jpg
Poi me la studio meglio io con i flag per renderlo più user friendly possibile.
Ti ringrazio ancora per il tuo tempo,
ciao,
Marcello
marcellochemin
Newbie
 
Post: 8
Iscritto il: 28/04/15 18:13


Torna a Applicazioni Office Windows


Topic correlati a "MACRO EXCEL COPIA - INCOLLA + AGGIORNA DATI DA WEB":


Chi c’è in linea

Visitano il forum: enrico43 e 9 ospiti