11. november 2020 - 19:54Der er
9 kommentarer og 1 løsning
Udelad datoer
Hej
Jeg har et ark hvor jeg gerne vil udelade alle datoer der er mere end 365 dage gamle, så hver gang jeg åbner arket skal det kun kigge 365 dage baglæns fra dags dato, jeg forsøgt med forskellig sortering parameter uden at kunne finde noget der passer.
Du skriver ikke hvad "udelade" betyder, men jeg har lavet en makro, som - når filen åbnes - skjuler linjer, der i kolonne A har en dato ældre end et år.
Private Sub workbook_open() Dim LastRowColA, x As Long LastRowColA = Range("A" & Cells.Rows.Count).End(xlUp).Row Range("A2:A" & LastRowColA).EntireRow.Hidden = False For x = 2 To LastRowColA If Cells(x, 1) < Now() - 365 Then Rows(x).Hidden = True End If Next End Sub
Tak for Koden, men jeg kan ikke få den til at køre, og det sikkert fordi jeg ikke er særlig god til Macro jeg har rette lidt da det er kolonne E jeg har min datoer stående i
Koden
Sub sorter() ' ' sorter Makro '
' Private Sub workbook_open() Dim LastRowColE, x As Long LastRowColE = Range("E" & Cells.Rows.Count).End(xlUp).Row Range("E2:E" & LastRowColE).EntireRow.Hidden = False For x = 2 To LastRowColE If Cells(x, 1) < Now() - 365 Then Rows(x).Hidden = True End If Next End Sub ActiveWorkbook.Save End Sub
Ups. Jeg overså at datoerne står i kolonne E. Det er rettet her.
Private Sub workbook_open() Dim LastRowColA, x As Long LastRowColA = Range("E" & Cells.Rows.Count).End(xlUp).Row Range("E2:E" & LastRowColA).EntireRow.Hidden = False For x = 2 To LastRowColA If Cells(x, 5) < Now() - 365 Then Rows(x).Hidden = True End If Next End Sub
Jeg mangler nu kun at køre en opdate, alså hente al data ved opstart, men det driller også, den er ca 30 sek om at hente data, og den venter ikke på at sorter.
Jeg har lavet et modul der opdater som hedder opdater.
Kan du løse dette
Ved opstart skal den hente alt data og derefter sorter.
Private Sub workbook_open() Opdater Dim LastRowColA, x As Long LastRowColA = Range("E" & Cells.Rows.Count).End(xlUp).Row Range("E2:E" & LastRowColA).EntireRow.Hidden = False For x = 2 To LastRowColA If Cells(x, 5) < Now() - 365 Then Rows(x).Hidden = True End If Next End Sub
Private Sub workbook_open() Application.Calculation = xlCalculationManual Opdater Dim LastRowColE, x As Long LastRowColE = Range("E" & Cells.Rows.Count).End(xlUp).Row Range("E2:E" & LastRowColE).EntireRow.Hidden = False For x = 2 To LastRowColE If Cells(x, 5) < Now() - 365 Then Rows(x).Hidden = True End If Next Range("A2:H" & LastRowColE).Select 'Ret om nødvendigt kolonne Range(Selection, Selection.End(xlDown)).Select Selection.Sort Key1:=Range("E2"), Order1:=xlAscending, Header _ :=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom Application.Calculation = xlCalculationAutomatic End Sub
Du havde selv lavet et modul der opdaterer, så det havde jeg ikke beskæftiger mig med, men måske skal der i tredje linje stå Call Opdater i stedet for blot Opdater
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.