Avatar billede snr Nybegynder
19. december 2008 - 10:33 Der er 4 kommentarer og
1 løsning

Marker område ud fra Dato

Jeg har følgende Vb script:

Dim fra, til, f, t

fra = Sheets("Ark1").Range("A1")
til = Sheets("Ark1").Range("A2")

f = Sheets("Ark1").Range("B1:B1000").Find(fra, LookIn:=xlValues).Row
t = Sheets("Ark1").Range("B1:B1000").Find(til, LookIn:=xlValues).Row
Sheets("Ark1").Activate
Range("C" & f & ":D" & t).Select

Problemet er alt de værdier fra har i A1 og A2 ikke altid fremgår i Range B1:B1000. Jeg vil derfor gerne, at den tog den næste dato som er større end "FRA" og den dato som er mindre ved "til". Makroen fejler idag, hvis de eksakte datoer ikke fremgår.
Avatar billede excelent Ekspert
19. december 2008 - 13:34 #1
Forslag :
Marker dine datoer i kolonne B og skriv list1 i navneboksen
Indsæt datavallist i A1 og A2 med kilde: list1

har ændret lidt påkoden

Sub tst()
Dim fra, til, f, t

fra = Sheets("Ark1").Range("A1")
til = Sheets("Ark1").Range("A2")

f = Sheets("Ark1").Range("B1:B1000").Find(fra, LookIn:=xlValues, lookat:=xlWhole).Row
t = Sheets("Ark1").Range("B1:B1000").Find(til, LookIn:=xlValues, lookat:=xlWhole).Row
Sheets("Ark1").Activate
Range("C" & f & ":D" & t).Select

End Sub
Avatar billede snr Nybegynder
06. januar 2009 - 07:47 #2
Hej Excelent

Tak for svaret og undskyld den sene kommentar!

Hvordan laver jeg denne datavalist med kilde i list1?

Kan man ikke lave en script, som blot vælger den nærmste dato i B1:B1000 og derved slipper for at lave en list osv.
Jeg har altså et interval mellem A1 og A2 i datoer. Herefter skal jeg have den at marker den range af data som ligger derimellem i B1:B1000. Det er ikke altid givet, at datoerne som står i A1 og A2 fremkommer i B1:1000. I disse sitiuationer, skal den gerne marker den nærmeste i intervallet.

Jeg håber det foreklarer det lidt bedre
Avatar billede excelent Ekspert
06. januar 2009 - 19:12 #3
jo det kan man da godt - prøv denne

Sub FinDato()
Set sh = Sheets("Ark1")
fra = sh.Range("A1")
til = sh.Range("A2")

For t = 1000 To 1 Step -1
If sh.Cells(t, 2) <> "" And sh.Cells(t, 2) < fra Then fra = t + 1: Exit For
Next

For t = 1 To 1000
If sh.Cells(t, 2) <> "" And sh.Cells(t, 2) > til Then til = t - 1: Exit For
Next

sh.Range("B" & fra & ":B" & til).Select
End Sub
Avatar billede snr Nybegynder
06. januar 2009 - 19:35 #4
Hvad nu der er mere en 1000 værdier i Kolonne B - Kan man bare bruge hele kolonne B - uafhængigt af antalllet af værdier i kolonne B
Avatar billede excelent Ekspert
11. januar 2009 - 10:22 #5
så retter du 1000 til det tal som passer 2 steder i koden
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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