Avatar billede mrkr Juniormester
18. februar 2009 - 14:59 Der er 6 kommentarer og
1 løsning

slette alle linjer som ikke er indenfor et datointerval i kolonne A

Jeg har en helt masse linjer med datoer for mange forskellige år.
Jeg skal oftes kun bruge data indenfor et kalenderår. Jeg har derfor tit brug for at få slettet de linjer som ligger udenfor en given periode.

Kan man via vba lave en linje som sletter alle de linjer som ikke har en dato i kolonne A som ligger indenfor et givent dato interval.

Hvis vi antager at i celle A1 står FRA dato og B1 står TIL dato.
Feks.
01-01-2008 og 31-12-2008
eller
01-07-2008 og 30-06-2009

Koden skal nu "kun" lade linjer med dato indenfor ovenstående interval blive (begge dage incl)

Fra linje 5 og til linje 15000 står der så informationer som skal anvendes/slettes. 

Jeg er godt klar over at der kan laves noget med filter, men da det skal være hurtigt at rette i håber jeg at en gang vba kan løse problemet. :-)
Avatar billede excelent Ekspert
18. februar 2009 - 17:33 #1
Filterfunktionen arbejder hurtigt, så er det jo godt man kan anvende dette i en makro.

http://pmexcelent.dk/mrkr.xls
Avatar billede excelent Ekspert
18. februar 2009 - 19:16 #2
havde lige glemt en detalje, fil oploaded igen
Avatar billede mrkr Juniormester
18. februar 2009 - 20:38 #3
Ja, den gør det jeg efterspurgte men jeg kunne godt tænke mig at undgå > og < tegnene, da jeg gerne vil have denne kode indsat i en userform.

sådan at jeg kun skal indtaste datoerne i 2 textboxe og så køre makroen.

Deter lidt et luksusproblem, men det ville være rart at få den sidte detalje med :-)
Avatar billede excelent Ekspert
18. februar 2009 - 21:01 #4
Ret Ark2 til aktuel i linie 3 og evt. TextBox1 & 2

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Set sh = Sheets("Ark2")
rk = Cells(65536, 1).End(xlUp).Row
For t = rk To 5 Step -1
If sh.Cells(t, 1) < CDate(Me.TextBox1) Or sh.Cells(t, 1) > CDate(Me.TextBox2) Then
Cells(t, 1).EntireRow.Delete
End If
Next
Application.ScreenUpdating = True
End Sub
Avatar billede mrkr Juniormester
18. februar 2009 - 22:32 #5
jep, så var den der.
Mange tak for indsatsen.

Smider du et svar :-)
Avatar billede excelent Ekspert
19. februar 2009 - 09:10 #6
velbekom. ret lige denne linie til:
rk = sh.Cells(65536, 1).End(xlUp).Row
Avatar billede mrkr Juniormester
26. februar 2009 - 22:49 #7
Undskyld den lange svar tid!
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