05. april 2010 - 09:38
Der er
3 kommentarer og
1 løsning
Indsæt blank linie før ny dato
Hej eksperter
Jeg har to udfordringer, som jeg søger hjælp til:
1. jeg har en kolonne beståedne af datoer, som er importeret fra andet program. Datoerne opfører sig derfor ikke som en dato. Har uden held prøvet at omformatere kolonnen i et datoformat. Jeg har derfor brug for et check på at den dato der importeres er korrekt. Kan man vha. vba. løse dette problem?
2. Når datoen er på plads, skal kolonnen sorteres og der skal indsættes en blank linie før hver ny dato. Der kan være flere linier med samme dato. Da det drejer sig om flere tusinde linier, så spiller hastigheden en rolle.
Hvem har et bud?
05. april 2010 - 19:31
#3
Sub Alle()
'Konverter dato
On Error Resume Next
For t = 4 To Cells(65500, "C").End(xlUp).Row
d = Cells(t, "C").Value
år = Right(d, 4)
måned = Mid(d, 4, 2)
dag = Left(d, 2)
Cells(t, "C").Value = DateSerial(år, måned, dag)
Next
'Konverter tid
On Error Resume Next
For t = 4 To Cells(65500, "D").End(xlUp).Row
Cells(t, "D") = Format(Cells(t, "D"), "h:mm")
Next
'Sorter
rk = Cells(65500, "C").End(xlUp).Row
Range("A2:M" & rk).Sort Key1:=Range("C3"), Order1:=xlAscending, Key2:=Range("D3") _
, Order2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal
'Indsæt tomme
Application.ScreenUpdating = False
rk = Cells(65500, "C").End(xlUp).Row
For t = rk To 3 Step -1
If Cells(t, "C") > Cells(t - 1, "C") Then Cells(t, "C").EntireRow.Insert
Next
Application.ScreenUpdating = True
End Sub