12. juni 2010 - 12:35Der er
12 kommentarer og 1 løsning
Opdatering af aktiekurser
Hej
Jeg har importeret en aktiekursliste til Excel.
For at kunne se udviklingen i løbet af dagen, kunne jeg godt tænke mig at jeg kan gemme opdateringerne, der kommer hver hele time, så jeg sidst på dagen har en liste over forløbet.
Er der ved hvordan man gør det. Skal man evt. ud i noget VBA kodning? Eller er det bare hvordan man indstiller importen?
så vidt jeg forstår er dit ønskede resultat en XLS fil med aktiekurser for hele dagen for en række aktier.
hvis jeg skulle udvikle dette ville jeg nok undgå at beskæftige mig direkte med excel, men i stedet f.eks. skrive en perl-script som kører hele dagen. der findes moduler til perl som gør det nemt at skrive til xls filer som excel kan åbne.
for at svare lidt mere direkte på dit spørgsmål: så vidt jeg ved er excel ikke designet til at du simpelthen laver små applikationer i dine xls dokumenter. grunden til at du kan lave vba makroer er for at køre små stykker kode som integrerer godt med tabel-modellen.
det du prøver at gøre har egentligt ikke så meget med excel at gøre. du vil bare gerne have outputtet i excel. dette er ikke så svært at få, det mest besværlige er mere at hente alle data og formatere dem korrekt.
Jeg har kigget lidt på det .. og har lavet noget, hvor den selv henter aktiekurser fra en bestemt hjemmeside på nogle bestemte aktier.
Udfor hver aktie bliver der gemt kursen, og der bliver noteret hvornår opdateringen er lavet i eget excel-ark.
Hvis det er noget du vil prøve at se, så kan du smide en postbesked til mig, hvor jeg skal mail den til - også kan du se om det var sådan noget du havde i planerne ..
Det lyder lidt svært tilgængeligt, det du forklarer.Det er ikke besværligt at hente data som sådan. Det jeg gør er- i al sin enkelthed- Klikke Data/fra internettet. Derefter skriver jeg webadressen på udbyderen af kurslister. logger ind og importere listen til et excel ark. Jeg kan vælge at få den opdateret så tit jeg ønsker. Problemet er at hver gang den opdatere, så forsvinder de sidste kurser. Tanken var så at man kunne køre en kode så hvergang der bliver opdateret vil den tag tallene og lægge dem tilside. Det er nok det du er inde på når du skriver om et perl-script. Jeg ved ikke hvad det er. Er det noget man lære om eller eventuelt downloade en kode eller lignende?
Til newbieatphp
Det kunne være spændende at se hvad du fundet. Jeg lægger lige en besked i din postboks
perl er bare et scriptingsprog som kan bruges til alt muligt.
du siger at det ikke er besværligt at få dataen ned. jeg troede problemet var at du gerne vil have det automatiseret? det er vel ikke meningen at du manuelt skal gøre noget hvis denne løsning skal virke som forventet.
Det eneste jeg skal gøre manuelt er at logge mig på, når dagen starter, og så lade excel arket og internettet være åbent og tændt. Jeg har kigget på de artikler som du har sendt. Det ser spændende ud, men også svært. Den anden artikel ser ud til at omhandle historiske data, hvad det jo ikke er(kun for samme dag)
Jeg har fået tilsendt en kode af newbieatph, som er næsten perfekt, blot ser det ud til at man manuelt skal trykke på en knap for at få arket opdateret. Men du er inde på noget af det helt rigtig, idet tabellen bliver længere for hver gang der bliver opdateret. Jeg sender dig en mail med et eksempel ark.
Jamen det virker jo bare helt perfekt. Til andre der vil bruge koden, skal i først Klikke Data/Fra internettet, derefter skrive webadressen på udbyderen af aktiekurser. Nogle skal man betale for, men så har man også adgang til realtidskurser. dette kræver dog en pinkode for at logge ind. Derefter importeres listen til et ark og en celle. Ved denne kode der vises her, Skal arkene omdøbes til DataKurs og AktieKurser-ellers virker det ikke. I ark DataKurs kan man højreklikke og vælge egenskaber for data område, og indstille efter hvor tit man ønsker listen opdateret. Kopier koden herunder og sæt ind under VBA makroer, derefter kører det.
Tak til bo, som var ind over med gode input. Pointene må dog ubeskåret gå til newbieatphp, der ramte en ellers drilsk bold helt rent.
Ja, så er der jo bare tilbage at du, newbieatphp sender mig et svar, så kan der komme nogle point ind på kontoen for veludført arbejde!
Her er koden:
Sub OpdaterKurs() ' gør plads til at indsætte ny kurs Sheets("Aktiekurser").Select Columns("B:B").Select Selection.Insert shift:=xlToRight
' Indsætter dato og klokkeslæt for ny kurs Sheets("Aktiekurser").Select Range("A1").Select Selection.Copy Range("B2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
' Indsætter den nye kurs Sheets("DataKurs").Select Range("D1:D21").Select Selection.Copy Sheets("Aktiekurser").Select Range("B3").Select ActiveSheet.Paste Range("B2").Select Sheets("Aktiekurser").Select
Vil lige tilføje, at der under arket "DataKurs" er skrevet følgende kode til at køre makroen, når der blot bliver lavet en ændring i en celle i arket "DataKurs"
Private Sub Worksheet_Change(ByVal Target As Range)
Interessant.. Det vil jeg da prøve at lege lidt med!
Synes godt om
Ny brugerNybegynder
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.