Avatar billede Duzze5 Nybegynder
10. juli 2012 - 21:26 Der er 7 kommentarer og
1 løsning

Slet række undtagen række med nyeste dato

Jeg har nu prøvet i et par dage og finde fremme til en makro som kan slette alle rækker undtagen rækken med den nyeste dato. Desværre uden held. Jeg håber der er nogen herinde som kan hjælpe.

Jeg har et ark hvor jeg har et kontonr. i kolonne B fra række 15 og ned. Kontonr. vil altid være det samme.

I kolonne C har jeg datoerne også fra række 15.

Jeg ønsker en makro, som sletter alle rækker undtagen rækken med den nyeste dato. Den nyeste dato vil altid være i den sidste række med data. Men den sidste række kan være fra nr. 15 og hvilken som helst efter.

Er der nogen som har en ide til hvordan det kan lade sig gøre?

På forhånd tak for hjælpen
Avatar billede supertekst Ekspert
11. juli 2012 - 09:04 #1
Prøv at sende en filen/model - så skal jeg prøve med VBA.

@-adresse under min profil.
Avatar billede Duzze5 Nybegynder
11. juli 2012 - 17:14 #2
Jeg sender lige filen når jeg kommer hjem fra arbejde senere.

Jeg har fået denne makro til at virke. Men den virker kun fordi kontonummeret altid er det samme og den nyeste dato altid står nederst i kolonnen. Du kan måske få den til at virke selvom den nyeste dato ikke står sidst.

Private Sub CommandButton1_Click()
Range("B15").Select
Do Until ActiveCell.Value = ""
If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
ActiveCell.Offset(0, 0).EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
Avatar billede supertekst Ekspert
11. juli 2012 - 17:27 #3
Ok - jeg afventer..
Avatar billede supertekst Ekspert
11. juli 2012 - 17:46 #4
Prøv evt.:

Dim sidsteRække As Long, nyesteDato As Date
Private Sub sletRækker()
    sidsteRække = ActiveCell.SpecialCells(xlLastCell).Row
   
    For ræk = sidsteRække - 1 To 15 Step -1
        Rows(ræk).Select
        Selection.Delete
    Next ræk
End Sub
Avatar billede supertekst Ekspert
11. juli 2012 - 17:59 #5
Hvis største dato er "flydende":

Dim sidsteRække As Long, nyesteDato As Date
Private Sub sletRækker()
    sidsteRække = ActiveCell.SpecialCells(xlLastCell).Row
    nyesteDato = Range("C" & sidsteRække)
   
    For ræk = sidsteRække - 1 To 15 Step -1
        If Range("C" & ræk) > nyesteDato Then
            nyesteDato = Range("C" & ræk)
            Rows(ræk + 1).Select
            Selection.Delete
        Else
            Rows(ræk).Select
            Selection.Delete
        End If
    Next ræk
End Sub
Avatar billede Duzze5 Nybegynder
12. juli 2012 - 17:04 #6
Mange tak for svaret og din mail. Jeg kigger lige på den når jeg kommer hjem i aften.

Men jeg siger i hvert fald lige mange tak for hjælpen og smid gerne lige et svar for point:-)
Avatar billede supertekst Ekspert
12. juli 2012 - 17:22 #7
Ok og selv tak - du får et svar..
Avatar billede Duzze5 Nybegynder
14. juli 2012 - 22:48 #8
Så fik jeg tid til at teste den. Og den virker perfekt. Endnu en gang tak for hjælpen:-)
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