Avatar billede ehlerz Nybegynder
31. juli 2007 - 10:53 Der er 17 kommentarer og
1 løsning

Assistance i VBA søges

Hej

Jeg er meget ny i VBA, og søger derfor lidt hjælp til en efter min vurdering relativ nem problemstilling.

Jeg har et regneark der henter realtids aktiekurset ind. Jeg har de sidste mange måneder så hver dag klokken hhv 9:00 og 15:30 manuelt kopieret disse realtidskurser og tilføjet dem som værdier i to andre kollonner (hhv 9:00 og 15:30) for således at kunne følge med i dagens udvikling.

Det må kunne lade sig gøre at kode denne kopiering i VBA ikke?
Avatar billede excelent Ekspert
31. juli 2007 - 12:51 #1
det skulle jeg mene...
  lidt flere oplysninger ville hjælpe en del (hvad/hvor)
Avatar billede ehlerz Nybegynder
31. juli 2007 - 13:05 #2
Ok! Jeg har et ark med realtidskurser i e4:e39. Disse skulle gerne kopieres(kun som værdier) over i hhv kolonne G4:g39(klokken 09:30) og i kolonne f4:g37(klokken 15:30)Dette skal dog kun være hvis en dato skrevet i A1 er lig datoen idag. Dette er fordi jeg typisk for hver dag kopiere hele tabellen og sætter ind under dagens tabel og data for ældre tabeller skal ikke opdateres hver dag.

Udover ovenstående skal også værdier fra C46:c48 kopieres til d46:d48, f46:f48 kopieres til g46:g48, i46:i48 kopieres til j46:j48 og L46:L48 kopieres til M46:M48. Dette skal være klokken 08:10 hver morgen, og tilsvarende kun hvis dato i A1 er lig datoen i dag.
Avatar billede ehlerz Nybegynder
31. juli 2007 - 13:19 #3
Hov, data klokken 15:30 skal naturligvis kopieres til f4:f39
Avatar billede excelent Ekspert
31. juli 2007 - 14:10 #4
prøv lige om disse løser opgaven (ikke testet)

Sub xCopy()
If [a1] = Date Then
If Time > TimeSerial(9, 30) And Time < TimeSerial(15, 30) Then Range("E4:E39").Copy Range("G4")
If Time > TimeSerial(15, 30) Then Range("E4:E39").Copy Range("F4")
End If
End Sub

Sub yCopy()
If [a1] = Date And Time > TimeSerial(8, 10) Then
Range("C46:C48").Copy Range("D46")
Range("F46:F48").Copy Range("G46")
Range("I46:I48").Copy Range("J46")
Range("L46:L48").Copy Range("M46")
End If
End Sub
Avatar billede excelent Ekspert
31. juli 2007 - 14:13 #5
ups der var lige en fejl, brug disse

Sub xCopy()
If [a1] = Date Then
If Time > TimeSerial(Hour(9), Minute(30), Second(0)) And Time < TimeSerial(Hour(15), Minute(30), Second(0)) Then Range("E4:E39").Copy Range("G4")
If Time > TimeSerial(Hour(15), Minute(30), Second(0)) Then Range("E4:E39").Copy Range("F4")
End If
End Sub

Sub yCopy()
If [a1] = Date And Time > TimeSerial(Hour(8), Minute(10), Second(0)) Then
Range("C46:C48").Copy Range("D46")
Range("F46:F48").Copy Range("G46")
Range("I46:I48").Copy Range("J46")
Range("L46:L48").Copy Range("M46")
End If
End Sub
Avatar billede ehlerz Nybegynder
31. juli 2007 - 15:05 #6
Nu er jeg jo ikke alt for god til det her VBA. Skal det kopieres ind under Thiswoorkbok i VBA vinduet??
Avatar billede ehlerz Nybegynder
31. juli 2007 - 15:09 #7
I bund og grund har jeg brug for alt den support i implementeringen som overhovedet muligt :-)
Avatar billede ehlerz Nybegynder
31. juli 2007 - 15:19 #8
At dømme ud fra koden er jeg ikke sikker på at jeg har udtrykt mig klart nok. Det er KUN 2 gange i løbet af dagen at kopieringen skal foretages og ikke i intervallet medllem 9:30 og 15:30 som jeg læser ud fra koden. Skal det ikke bare være IF Tíme= timeserial(hour(9),minute(30))??
Avatar billede excelent Ekspert
31. juli 2007 - 16:11 #9
jeg går ud fra du starter makro når tid er til det
så skulle koden passe, men er ikke testet

obs.:husk lige at lukke dine gamle spørgsmål også
Avatar billede ehlerz Nybegynder
31. juli 2007 - 16:42 #10
Hej, makroerne skal bare starte når regnearket åbnes om morgenen. Ideen er at jeg ikke selv behøver starte noget som helst men at alt kører automatisk.
DEt må kunne lade sig gøre eller hva??
Avatar billede excelent Ekspert
31. juli 2007 - 17:22 #11
ja du skal bruge en TIMER, mener jeg har en et sted
kik på dine gl. spørgsmål imens.
Avatar billede ehlerz Nybegynder
01. august 2007 - 08:06 #12
Tak excelent. Jeg har altid været lidt i tvivl om hvordan jeg lukker mine gamle spørgsmål ned. Troede det skete automatisk når man acceptere svar??
Avatar billede ehlerz Nybegynder
01. august 2007 - 15:39 #13
Excelent. Jeg har nu lavet en makro der virker. Jeg kan se at du andensteds har argumenteret for brugen af Application.ontime timevalue(XX:XX:XX),makro1. Dette burde vel være nok. Går udfra at den kode kører makroen præcis på de givne tidspunkter?? Jeg har bakset lidt med det men kan ikke rigtigt får det til at virke efter hensigten. Kan du supplere??
Avatar billede excelent Ekspert
01. august 2007 - 20:14 #14
hvis ikke projektmappen er åben døgnet rundt, kan TIMEREN startes
via en lille kode i ThisWorkbook

Det er nok nemmere hvis du lige paster hvad du har til nu
så tager vi den der fra.
Avatar billede ehlerz Nybegynder
02. august 2007 - 09:06 #15
Ok. Jeg har på nuværende tidspunkt et ark der fungere. Jeg har lavet nogle makroer jeg selv starter med kommandoknapper i arket på forskellige tidspunkter. Jeg gør således at arket åbner hver morgen med windows og mangler nu bare at mine fine makros kører af sig selv på angivne tidspnkter istedet for at jeg selv manuelt skal starte dem. Er det ikke korrekt at dette kan lade sig gøre med application.ontime funktionen?

Derudover kan du måske fortælle mig hvad jeg skal skrive i vba for at clearer værdierne i en række (ikke formaterne) Jeg har Range("c5:C50").select og prøvet med selection.clear. Denne sletter desværre også formater.
Avatar billede excelent Ekspert
02. august 2007 - 10:53 #16
Prøv leg lidt med denne:

Sub run()
Application.OnTime TimeValue("00:00:01") + Now, "run"
If Time > TimeSerial(9, 0, 0) And Time < TimeSerial(9, 0, 2) Then Call test1
If Time > TimeSerial(15, 30, 0) And Time < TimeSerial(15, 30, 2) Then Call test2
If Time > TimeSerial(8, 10, 0) And Time < TimeSerial(8, 10, 2) Then Call test3
End Sub

Startes med denne i ThisWorkbook:

Private Sub Workbook_Open()
Call run
End Sub

Prøv Range("c5:C50")=""

er først hjemme igen i aften.
Avatar billede ehlerz Nybegynder
02. august 2007 - 11:04 #17
Hej Excelent.
Mange tak for hjælpen. Du kommer altid med kvalificeret hjælp uanset hvad man har problemer med. Mit ark virker nu med application.ontime funktionen og jeg takker.
Smid et svar og du får dine velfortjente point :-)
Avatar billede excelent Ekspert
02. august 2007 - 11:20 #18
ok velbekom
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
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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