Avatar billede Brus Juniormester
19. november 2021 - 13:23 Der er 4 kommentarer og
1 løsning

Macro Kode til Fjernelse af linjer med kriterier på at Dato

Nogle der kan være behjælpelig med en Macro der fjerner de linjer hvor datoen enten er passeret. Altså;

Remove when: Date <(Mindre end) Current Date. Og ellers så skal den bare lade de restende linjer stå som enten er lig med eller større end.
Avatar billede kim1a Ekspert
19. november 2021 - 14:21 #1
Vil du indtaste dato i en pop up, er den i en celle (hvilken?) eller skal den tage f.eks. dags dato?
Hvilken kolonne står din dato i?
Avatar billede Docthomassen Juniormester
20. november 2021 - 10:47 #2
Sub DeleteRowsPriorDates()
   
    Dim row As Long
   
    'Generer 100 rækker med dato
    'For row = 1 To 100
    '    Cells(row, 1).Value = Date - 10 + row
    'Next row
   
    'Slet historiske datoer
    For row = 100 To 1 Step -1
        If Cells(row, 1) < Date Then
            MsgBox (row)
            Cells(row, 1).EntireRow.Delete
        End If
    Next row

End Sub
Avatar billede Brus Juniormester
22. november 2021 - 09:01 #3
Hej igen, i kan se på dette link (https://flic.kr/p/2mLif9s) hvad det er jeg prøver på. Ved tryk på "Knappen"; Opdatering af Lager, skal den bare fjerne den dato og antal bestilte. (Den skal hertil gøre det automatisk på at datoen under forventer leveringsdato er <(Mindre end) dags dato (Og nej jeg skal ikke bruge en celle hvori jeg skriver hvilken dato der er, den skal bare implicitte tage for dags dato)).

Hvis det er muligt må den også gerne kunne tilføje antal bestilt til lager oversigt før den sletter.
Avatar billede Docthomassen Juniormester
22. november 2021 - 10:45 #4
Okay, sådan havde jeg ikke helt forstået opgaven.
Så du vil altså ikke slette hele linjen, hvor datoen er overskredet, men kun indholdet i kolonnerne h og i?
Inden indholdet slettes, så skal kolonne h adderes til kolonne g.

Lad os antage at dit ark (faneblad) hedder ”Ark1” og at dine dele er i række 2-100. Du må selv justere dette i koden.
Husk at tage backup af filen inden du begynder at ændre på det.

Sub OpdaterLagerListe()

    Dim ws As Worksheet
    Dim Rækketæller As Long
    Dim Startrække As Long
    Dim Slutrække As Long
   
    Startrække = 2  'Indtast værdi
    Slutrække = 100 'Indtast værdi
    Set ws = Worksheets("Ark1")    'Indtast navn på faneblad
   
    For Rækketæller = Slutrække To Startrække Step -1
        If IsDate(Cells(Rækketæller, 9)) = True And Cells(Rækketæller, 9) < Date Then        'kolonne i = 9
            'MsgBox ("Dato er overskredet i række: " & Rækketæller)
            'Adderer først værdi fra kolonne h til kolonne g  'kolonne h = 8, kolonne g = 7
            Cells(Rækketæller, 7) = Cells(Rækketæller, 7) + Cells(Rækketæller, 8)
            'Sletter nu indhold i kolonne h og kolonne i    'kolonne h = 8, kolonne i = 9
            Cells(Rækketæller, 8) = ""
            Cells(Rækketæller, 9) = ""
        End If
    Next Rækketæller

End Sub
Avatar billede Brus Juniormester
22. november 2021 - 11:24 #5
Mange tak!!! Den virker perfekt!
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

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



IT-JOB

Netcompany A/S

IT Consultant

Unik System Design A/S

Driftskonsulent for Hostingcenter

Scanreco Nordic A/S

Softwareudvikler

VikingGenetics

Data Engineer