Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Office suite

Notices

Rispondi
 
Strumenti discussione
Vecchio 31-10-2017, 15.10.23   #1
Gianca53
Newbie
 
Registrato: 31-10-2017
Messaggi: 25
Gianca53 promette bene
Importare file CSV

Ciao, sono nuovo di questo forum e spero di trovare risposte che non ho trovato altrove.
Il mio problema è di riuscire a scaricare dati da un sito WEB, adottando, se possibile una procedura VBA che mi permetta di avere una tabella CSV che poi provvederò ad elaborare importando alcuni dati in excel.

Ho trovato questa macro :
Quota:
Sub transfercsv()
Dim tk As String, r As Integer
Dim SH1 As Worksheet
'Dim WSW As Worksheet

Set SH1 = ThisWorkbook.Sheets("CSV")
Range("A2") = tk

'FinalRow = SH1.Cells(Rows.Count, 1).End(xlUp).Row

'For r = 2 To FinalRow

SH1.Range("A10:A300").EntireRow.Clear
'http://financials.morningstar.com/ajax/ReportProcess4CSV.html?t=KO&reportType=bs&period=1 2&dataType=A&order=asc&columnYear=5&number=3"

sCSVLink = "http://financials.morningstar.com/ajax/ReportProcess4CSV.html?t=tk&reportType=bs&period=1 2&dataType=A&order=asc&columnYear=5&number=3"
'
sfile = "options_code_list.csv"
ssheet = "CSV"

Set wnd = ActiveWindow
Application.ScreenUpdating = False
Sheets(ssheet).Cells.ClearContents
Workbooks.Open Filename:=sCSVLink
Windows(sfile).Activate
ActiveSheet.Cells.Copy
wnd.Activate
Sheets("CSV Transfer").Paste
Application.DisplayAlerts = False
Windows(sfile).Close False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
'Next
End Sub
che, se al posto di tk(ticker), inserisco nella URL di ricerca l'acronimo di un titolo usa , per. es CSCO, funziona bene, ma dato che vorrei associare la ricerca e lo scarico al contenuto della cella "a2" , con tk mi restituisce un foglio CSV bianco. Come a dire che non trova il mio titolo . Ci sto girando attorno da tre giorni senza venirne a capo

Se preferite posso allegare il file excel con la macro già inserita.
Gianca53 non è collegato   Rispondi citando
Vecchio 01-11-2017, 18.35.18   #2
ZeroKelvin
Newbie
 
Registrato: 12-05-2011
Messaggi: 3
ZeroKelvin promette bene
Rif: Importare file CSV

Ciao.
Senza entrare nel merito del resto del codice, credo proprio che l'errore stia in
Codice:
Range("A2") = tk
che assegna alla cella A2 il valore di tk(che è ancora vuoto); in base a quello che scrivi dovrebbe essere
Codice:
tk = Range("A2")
ZeroKelvin non è collegato   Rispondi citando
Vecchio 01-11-2017, 22.25.05   #3
Gianca53
Newbie
 
Registrato: 31-10-2017
Messaggi: 25
Gianca53 promette bene
Rif: Importare file CSV

Grazie della risposta, ma ho provato e non funziona, ovvero funziona a metà, vale a dire che mi identifica il tk ( abbreviazione di "ticker") come acronimo di un titolo USA realmente esistente. Ho provato a cambiarlo ma mi carica una pagina bianca .
Allego il file .
Gianca53 non è collegato   Rispondi citando
Vecchio 03-11-2017, 10.06.58   #4
Gianca53
Newbie
 
Registrato: 31-10-2017
Messaggi: 25
Gianca53 promette bene
Rif: Importare file CSV

salvo qualcuno abbia trovato la soluzione , altrimenti lasciate perdere , ho risolto diversamente. Grazie comunque.
Gianca53 non è collegato   Rispondi citando
Vecchio 03-11-2017, 17.30.05   #5
RunDLL
Gold Member
 
L'avatar di RunDLL
 
Registrato: 20-05-2004
Loc.: Perugia
Messaggi: 4.188
RunDLL è nella strada per il successo
Rif: Importare file CSV

Potresti dire anche come, già che ci sei.
___________________________________

Ogni computer ha la sua storia.
Dermatite Seborroica? www.dermatiteseborroica.info
RunDLL non è collegato   Rispondi citando
Vecchio 03-11-2017, 18.55.43   #6
ZeroKelvin
Newbie
 
Registrato: 12-05-2011
Messaggi: 3
ZeroKelvin promette bene
Rif: Importare file CSV

C'è anche un altro errore in:
Codice:
sCSVLink = "http://financials.morningstar.com/ajax/ReportProcess4CSV.html?t=tk&reportType=bs&period=1 2&dataType=A&order=asc&columnYear=5&number=3"
hai inserito tk all'interno della stringa fra doppi apici.
In questo modo tk non viene trattata come una variabile ma come semplice testo.
Doveva essere
Codice:
sCSVLink = "http://financials.morningstar.com/ajax/ReportProcess4CSV.html?t=" & tk & "&reportType=bs&period=1 2&dataType=A&order=asc&columnYear=5&number=3"
ZeroKelvin non è collegato   Rispondi citando
Vecchio 03-11-2017, 22.59.44   #7
Gianca53
Newbie
 
Registrato: 31-10-2017
Messaggi: 25
Gianca53 promette bene
Rif: Importare file CSV

Ho fatto in modo da "aggirare l'ostacolo" ovvero in riferimento a una ipotetica cella "D3" ho inserito questa if , e il bello è che funziona pure .

Quota:
=SE($D$3="";"Enter ticker first";COLLEG.IPERTESTUALE("http://financials.morningstar.com/ajax/ReportProcess4CSV.html?&t="&D3&"&region=phl&cultur e=en-US&cur=&reportType=bs&period=12&dataType=A&order=a sc&columnYear=5&curYearPart=1st5year&rounding=1&vi ew=raw&r=408484&denominatorView=raw&number=1";"Exp ort CSV"))
come pure funziona la macro che avevo inserito nel file sopra rivista e corretta come da segnalazione di ZeroKelvin che ovviamente ringrazio.
Gianca53 non è collegato   Rispondi citando
Vecchio 03-11-2017, 23.36.08   #8
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Importare file CSV

Non capisco perchè csv, quando puoi avere i dati in un file excel con qualche riga di codice.

Codice:
Sub transfercsv()
Dim tk, sCSVLink As String
tk = Range("A2")
                   
ActiveSheet.Range("A10:A300").EntireRow.Clear
sCSVLink = "http://financials.morningstar.com/ajax/ReportProcess4CSV.html?t=tk&reportType=bs&period=12&dataType=A&order=asc&columnYear=5&number=3"
      
Workbooks.Open Filename:=sCSVLink

End Sub
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 05-11-2017, 09.20.40   #9
Gianca53
Newbie
 
Registrato: 31-10-2017
Messaggi: 25
Gianca53 promette bene
Rif: Importare file CSV

Grazie Alexandra, ho risolto cosi :
Quota:
Private Sub Trasfercsv_Click()
Dim tk, sCSVLink As String
tk = Range("A2")

ActiveSheet.Range("G1:M300").Clear
sCSVLink = "http://financials.morningstar.com/ajax/ReportProcess4CSV.html?t=" & tk & "&reportType=bs&period=12&dataType=A&order=asc&col umnYear=5&number=3"

Workbooks.Open Filename:=sCSVLink
Macro1

End Sub
e in un modulo ho inserito :
Quota:
Sub Macro1()
'

Application.WindowState = xlNormal
Windows("ReportProcess4CSV.html").Activate
Range("A1:F50").Select
Selection.Copy
Windows("Trasfert2_Alexa.xlsm").Activate
Range("G1").Select
ActiveSheet.Paste
Windows("ReportProcess4CSV.html").Activate
Application.CutCopyMode = False
Selection.ClearContents
Windows("ReportProcess4CSV.html").Activate
'ActiveWorkbook.Close
Application.DisplayAlerts = False
ActiveWindow.Close False


Range("C1").Select

End Sub
in questo modo ottengo la copia direttamente sul foglio. Quest'ultima macro, ottenuta con il "pilota automatico", è poco elegante rileggendola ho visto che è un po' ridondante per un eccesso di activate e select, però sembra funzionare .
Files allegati
Tipo file: zip Trasfert2_Alexa.zip (21,4 Kb, 1 visite)
Gianca53 non è collegato   Rispondi citando
Vecchio 05-11-2017, 19.38.54   #10
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Importare file CSV

Prova così

Codice:
Sub Trasfercsv()
Dim tk, sCSVLink As String
tk = Range("A2")

ActiveSheet.Range("G1:M300").Clear
sCSVLink = "http://financials.morningstar.com/ajax/ReportProcess4CSV.html?t=" & tk & "&reportType=bs&period=12&dataType=A&order=asc&col umnYear=5&number=3"

Workbooks.Open Filename:=sCSVLink

Workbooks("ReportProcess4CSV.html").Sheets("ReportProcess4CSV").Range("A1:F50").Copy _
Destination:=Workbooks("Cartel1.xlsm").Sheets("Foglio1").Range("G1")

ActiveWorkbook.Close
End Sub
oppure in questo modo

Codice:
Sub Trasfercsv()
Dim tk, sCSVLink As String
tk = Range("A2")

ActiveSheet.Range("G1:M300").Clear
sCSVLink = "http://financials.morningstar.com/ajax/ReportProcess4CSV.html?t=" & tk & "&reportType=bs&period=12&dataType=A&order=asc&col umnYear=5&number=3"

Workbooks.Open Filename:=sCSVLink
Call prova
ActiveWorkbook.Close
End Sub

Sub prova()
Set wk1 = Workbooks("ReportProcess4CSV.html")
Set wk2 = Workbooks("Cartel1.xlsm")
    Set sh1 = wk1.Worksheets("ReportProcess4CSV")
    Set sh2 = wk2.Worksheets("Foglio1")

    With sh1
        .Range("A1:F50").Copy Destination:=sh2.Range("G1")
    End With

Set sh2 = Nothing
Set sh1 = Nothing
Set wk1 = Nothing
Set wk2 = Nothing
End Sub
devi cambiare il riferimento al file, io per provare ho messo Cartel1, tu devi mettere il tuo.(Trasfert2_Alexa.xlsm)
La 1° soluzione la trovo più lineare (e meno codice da scrivere) la 2° è più veloce e professionale.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Vecchio 05-11-2017, 21.43.32   #11
Gianca53
Newbie
 
Registrato: 31-10-2017
Messaggi: 25
Gianca53 promette bene
Rif: Importare file CSV

Grazie Alexandra, entrambe impeccabili, ora mi aiuti a costruire una macro per ... decidere quale delle due utilizzare ????

Ancora grazie .
Gianca53 non è collegato   Rispondi citando
Vecchio 06-11-2017, 21.27.55   #12
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
Rif: Importare file CSV

io userei la 1°, semplice, spartana ma efficace.
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Laboratorio di VBA: Programmi e file sorgenti Alexsandra Guide 17 16-03-2016 21.33.27
Spostare script di "backup" da windows a linux coguaro Linux e altri Sistemi Operativi 8 06-08-2013 21.27.56
[9x - 3.11] INSTALLARE WINDOWS 3.1 A FIANCO DI WINDOWS 98 booty island Windows 9x/Me/NT4/2000 1 27-11-2012 01.08.51
HELP - Dato un file txt con dei nomi ogni rigo, come fare a copiare un certo file, ri Cavallaudo Windows 7/Vista/XP/ 2003 0 18-08-2007 20.16.41
Windows file protection:guida Deuced Windows 9x/Me/NT4/2000 7 16-03-2004 09.25.28

Orario GMT +2. Ora sono le: 10.47.15.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.