21. juni 2007 - 15:08Der er
20 kommentarer og 1 løsning
hente eksterne data og gem dem
Jeg har lige et spørgsmål vedr. excel 2000. Jeg har lavet et excel ark med et faneblad 2 hvor jeg løbende henter nogle data fra nettet som kan ændre sig frem til kl 1900 hver dag og derefter ændre de sig ikke mere den dag. og de tal bliver skrevet i en celle på faneblad 1 (=sum(cellen fra faneblad 2)
Det jeg har behov for er at de data'er der bliver hentet frem til kl 19,00 hver dag skal gemmes i en celle i excel på fanebladet 1 celle A1 og derved ikke skal overskrives mere.
Og så dagen efter skal man lave det samme igen MEN så skal data'erne gemmes i celle A2 på faneblad 1
og 3 dagen, skal det gemmes i celle A3 osv....
Men jeg har igen ide om hvordan jeg får excel til automatisk at gemme data i en NY celle efter kl 19,00 hver dag ?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
1 ark kaldet"NR", i A1 skrives den række der smides data i i øjeblikket.
Public Sub StartTimer() ' starter timeren Application.OnTime TimeSerial(19, 0, 0), "SkiftRække" End Sub
Public Sub StopTimer() ' Stopper timeren Application.OnTime TimeSerial(19, 0, 0), "SkiftRække", , False End Sub
Public Sub SkiftRække() Worksheets("NR").Range("A1") = Worksheets("NR").Range("A1") + 1 ' plusser en til cellen, som styrer rækken Application.OnTime TimeSerial(19, 0, 0), "SkiftRække" ' klar til næste dag End Sub
Public Sub HentData() ' Det er denne linie du skal bruge i din datahentnings makro Worksheets("Data").Range("A" & Worksheets("NR").Range("A1")) = nyData End Sub
hej igen kabbak, Tak for dit svar - forklaring., jeg har ikke glemt dig men har forsøgt at teste din kode på mit excel ark og jeg er ikke 100% sikker på at jeg gør det korrekt. Jeg har taget denne del: Public Sub StartTimer() ' starter timeren Application.OnTime TimeSerial(19, 0, 0), "SkiftRække" End Sub
Public Sub StopTimer() ' Stopper timeren Application.OnTime TimeSerial(19, 0, 0), "SkiftRække", , False End Sub
Public Sub SkiftRække() Worksheets("NR").Range("A1") = Worksheets("NR").Range("A1") + 1 ' plusser en til cellen, som styrer rækken Application.OnTime TimeSerial(19, 0, 0), "SkiftRække" ' klar til næste dag End Sub og indsat i et nyt faneblad i min excel fil via Visual basic.
Så har jeg oprettet en makro med denne del = den melder fejl hos mig, Public Sub HentData() ' Det er denne linie du skal bruge i din datahentnings makro Worksheets("Data").Range("A" & Worksheets("NR").Range("A1")) = nyData End Sub
Og den er jeg nemlig i tvivl om hvor jeg skal placere henne ?
Den sidste er et eksempel på, hvordan du får din oprindelige makro, til at skrive i den rigtige række. Jeg skal se din oprindelige makro, den der henter data, for at lave det korrekt.
hmmmmm.... det ved jeg faktisk ikke om jeg har :o) Jeg har oprettet et excel ark med et faneblad hvor jeg har lavet 8 rækker hvor jeg henter data fra nettet i hver række feks B6 + B11 + B16 osv.... Ja du må undskylde at jeg ikke er 100% stærk i excel og derfor spør lidt "dumt"
Jeg tager data fra "lukkekurs" fanebladet og så står jeg på fanebladet "dag" hvor jeg bare har indsat sådan en her"=SUM(Lukkekursen!B6)" og i næste række =SUM(Lukkekursen!B11) osv.... og summen af de tal bliver lagt sammen i en total sum på fanebladet "dag" og det er det tal som jeg ønsker at overføre hverdag til en ny celle i fanebladet "dag", feks cellen mandag,tirsdag,onsdag osv...
Dim OP As Date Global Const SK As Date = #7:00:00 PM# ' tiden for rækkeskift, er sat til kl 19:00:00 dansk tid Global Const OPMIN As Date = #12:15:00 AM# ' kursopdatering, er sat til hvert kvarter
Private Sub OpdaterKurser() ActiveWorkbook.RefreshAll ' opdaterer alle kurser fra nettet Worksheets("Lukkekursen").Range("G2") = Now() OP = Now() + OPMIN ' sætter ny tid for opdatering af kurser Worksheets("Dag").Range("F3") = OP Application.OnTime OP, "OpdaterKurser" End Sub
Public Sub StartTimer() ' starter timeren Worksheets("Dag").Range("G5") = "Timer er STARTET" Worksheets("Dag").Range("G5").Interior.ColorIndex = 50 Worksheets("Lukkekursen").Range("J2") = SK Application.OnTime SK, "SkiftRække" ' sætter tid for opdatering af arket dag OP = Now() + OPMIN ' sætter starttid for opdatering af kurser Worksheets("Dag").Range("F3") = OP Application.OnTime OP, "OpdaterKurser" End Sub
Public Sub StopTimer() ' Stopper timeren On Error Resume Next Worksheets("Dag").Range("G5") = "Timer er STOPPET" Worksheets("Dag").Range("G5").Interior.ColorIndex = 3 Application.OnTime SK, "SkiftRække", , False Application.OnTime OP, "OpdaterKurser", , False End Sub
Private Sub SkiftRække() If Weekday(Now()) <> vbSaturday And Weekday(Now()) <> vbSunday Then If Weekday(Now()) = vbMonday Then Worksheets("Lukkekursen").Range("I2") = Worksheets("Lukkekursen").Range("I2") + 2 ' plusser to til cellen, som styrer rækken, fordi der var weekend Else Worksheets("Lukkekursen").Range("I2") = Worksheets("Lukkekursen").Range("I2") + 1 ' plusser en til cellen, som styrer rækken End If GemData End If Application.OnTime SK, "SkiftRække" ' sætter tid for næste dag End Sub
Private Sub GemData() 'Worksheets("Lukkekursen").Range("I2"), bruges til at styre rækken Worksheets("Dag").Range("B" & Worksheets("Lukkekursen").Range("I2")) = Worksheets("Dag").Range("E14") ThisWorkbook.Save ' gemmer mappen End Sub
Fandt lige en lille ting, som jeg ville spørge om da jeg sad og prøvede at ændre dato + klokkeslet på min pc, der står feks idag fredag at kl 19,00 skal den skrive i række B162 "Skriver i række 162-klokken: 19:00" og det er som det skal være men så skriver den at den vil skrive i række B163 næste gang men b163 er jo den række hvor jeg har uge nummeret stående, den skulle vel helst skrive i række 164 næste gang = mandag efter en weekend eller er det mig som gør noget forkert ? men tak endnu engang :o)
men nu kan jeg se at den rent faktisk SKRIVER i række 164 som den skal, så det er altså bare teksten der står forkert, dvs at den vil skrive i række 163 iso 164 fra fredag efter kl 19,00 frem til mandag efter kl 19,00
Okay - men som sagt endnu engang TAK for din hjælp :o)
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.