Avatar billede Josvto Mester
01. september 2015 - 23:10 Der er 13 kommentarer og
1 løsning

Yahoo Finance udtræk af data/webtable - svært spørgsmål

Hej eksperter,

Jeg skal bruge finansiel data i et regneark. Jeg har fundet nedenstående VBA kode, hvor jeg kan udtrække data fra yahoo automatisk.

"Sub Macro2()
    Dim conString As String
    Dim conName As String
    Dim txtSymbols(0, 2) As String
   
    txtSymbols(0, 1) = "MSFT"
    txtSymbols(0, 2) = "CSCO"
   
    For i = 1 To 2
       
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Name = txtSymbols(0, i)
       
   
        conString = "URL;http://finance.yahoo.com/q/ks?s=" & txtSymbols(0, i) & "+Key+Statistics"
        conName = "ks?s=" & txtSymbols(0, i) & "+Key+Statistics"
       
        With ActiveSheet.QueryTables.Add(Connection:=conString, Destination:=Range("$A$1"))
            .Name = conName
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .WebSelectionType = xlSpecifiedTables
            .WebFormatting = xlWebFormattingNone
            .WebTables = """yfncsubtit"",8,10,11,13,15,17,19,21,23"
            .WebPreFormattedTextToColumns = True
            .WebConsecutiveDelimitersAsOne = True
            .WebSingleBlockTextImport = False
            .WebDisableDateRecognition = False
            .WebDisableRedirections = False
            .Refresh BackgroundQuery:=False
        End With
    Next i
End Sub"


I stedet for at hente fra "Key statistics" har jeg fået den til at hente fra "income statement", men den henter ikke alle tal og ikke alle kolonner. Den henter kun nogle tal og den seneste kolonne.

Jeg vil gerne have ALLE tal i regnskabet og alle 3 år.
Jeg tror det er ",8,10,11,13,15,17,19,21,23", som skal rettes til noget andet for at få alle regnskabstalene, men jeg ved ikke hvordan man får alle kolonner?

Jeg har fået at vide, at tallene referere til en webtable, hvilket jeg ikke ved hvordan man slår op i? Kan nogle hjælpe?

Mvh
Josvto
Avatar billede natkatten Mester
02. september 2015 - 07:59 #1
Det vil gøre det lettere for os, hvis du sender URL's til den/de tabeller, som makroen skal hente data fra.

Din kode henviser, som jeg læser den, stadig til Key Statistics.
Avatar billede Josvto Mester
02. september 2015 - 09:35 #2
Avatar billede Josvto Mester
02. september 2015 - 13:33 #3
Slet ingen, som kan hjælpe?
Avatar billede natkatten Mester
02. september 2015 - 16:53 #4
Et hurtigt bud på en løsning. Kan forfines væsentligt:

http://gratisupload.dk/f/8tdnbgk2b9/
Avatar billede Josvto Mester
02. september 2015 - 18:58 #5
Hej Natkatten,

Det er et godt bud, men ideen var, at man skulle kunne skrive en masse virksomheder ind i linjerne under denne:

txtSymbols(0, 1) = "MSFT"
txtSymbols(0, 2) = "CSCO"

Altså hvor man så skriver 3 og et nyt firma navn. Så henter den for alle 3. Hvis jeg indtaster 400 navne og altså txtsymbols(0, 400) = "noget", så henter den for alle 400. Det har jeg fået til at virke, men kan ikke gennemskue, hvor jeg skulle kunne gøre det i din macro, da du har lavet den specifikt på MSFT?
Avatar billede natkatten Mester
02. september 2015 - 20:29 #6
Prøv at ændre disse to variable:

conString = "URL;http://finance.yahoo.com/q/is?s=" & txtSymbols(0, i) & "+Income+Statement&annual"
conName = "ks?s=" & txtSymbols(0, i) & "+Income+Statement&annual"
Avatar billede Josvto Mester
02. september 2015 - 20:33 #7
Hvis jeg skal kigge i din macro kan jeg slet ikke finde dem? Altså dem som hedder conString og conName?
Avatar billede natkatten Mester
02. september 2015 - 20:41 #8
Jeg refererer nu til din oprindelige makro.
Avatar billede natkatten Mester
02. september 2015 - 20:44 #9
Men du skal være opmærksom på, at denne kan forbedres på en række punkter. Eksempelvis vil den ikke fungere, hvis de navngivne ark (f.eks. MSFT) i forvejen eksisterer.
Avatar billede Josvto Mester
02. september 2015 - 20:48 #10
DU ER FUCKING SEJ!!

:D

Sådan, nu virker det.. Perfekt endda! Må jeg tillade mig at skrive til dig, hvis jeg får problemer med at hente balancesheet og cash flow? Regner bare med det er at skifte der, hvor der står financial statement ud med hhv. cash flow og balance (eller hvad de nu hedder i linket :))
Avatar billede Josvto Mester
02. september 2015 - 20:48 #11
Vil du smide et svar btw.?
Avatar billede natkatten Mester
02. september 2015 - 20:57 #12
Et svar.

Ja, umiddelbart vil jeg tro, at du bare skal skifte teksten de rigtige steder i linket.
Avatar billede Josvto Mester
02. september 2015 - 21:07 #13
Det kan jeg vist også.

Kan du hurtig lave en funktion, så jeg får et link i øverste hjørne lige som der er i dit?

Altså sådan den tager linket til den pågældende aktie og smider i hjørnet, hvis det giver mening?
Avatar billede Josvto Mester
03. september 2015 - 19:00 #14
ding dong?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester