I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg er kommet frem til følgende, men den sletter for meget (sletter alt hvor der ikke er en "-" i cellen, men ikke dem hvor der står et andet tal end 11 efter "-"?
'Slet alle data der ikke vedrører det valgte regnskabsår For I = 1 To DataEndRow If Mid(Range("A" & I), InStr(1, Range("A" & I), "-") + 1, 2) <> 11 Then StartSletRow = I For S = I To I + 25 If Range("A" & S).Value = "" Then SlutSletRow = S + 2 Exit For End If Next Rows(StartSletRow & ":" & SlutSletRow).Delete End If Next
Dim sidsteRæk As Long, ræk As Long, værdi, stregPos As Byte, slutRæk As Long Sub test2() sidsteRæk = ActiveCell.SpecialCells(xlLastCell).Row
For ræk = 1 To sidsteRæk værdi = Range("A" & ræk) If værdi = "" Then Exit For Else If testÅrstal(værdi) = False Then slutRæk = findAfslutÅrstal(ræk) Rows(ræk & ":" & slutRæk).Select Selection.Delete sidsteRæk = sidsteRæk - (slutRæk - ræk) + 1 ræk = ræk - 1 Else ræk = findAfslutÅrstal(ræk) End If End If Next ræk End Sub Private Function testÅrstal(værdi) If IsNumeric(Left(værdi, 2)) = True Then stregPos = InStr(værdi, "-") If stregPos > 0 Then If Mid(værdi, stregPos + 1, 2) <> 11 Then testÅrstal = False Else testÅrstal = True End If End If End If End Function Private Function findAfslutÅrstal(ræk) Dim r As Long For r = ræk To sidsteRæk If Range("A" & r) = "" Then findAfslutÅrstal = r + 1 Exit Function End If Next r
Tak Supertekst! Din løsning virker perfekt - lægger du et svar?
Løsningen blev: Dim sidsteRæk As Long, ræk As Long, værdi, stregPos As Byte, slutRæk As Long Sub testX() sidsteRæk = ActiveCell.SpecialCells(xlLastCell).Row
Application.ScreenUpdating = False
For ræk = 1 To sidsteRæk værdi = Range("A" & ræk) If værdi = "" Then Exit For Else If testÅrstal(værdi) = False Then slutRæk = findAfslutÅrstal(ræk) Rows(ræk & ":" & slutRæk).Select Selection.Delete sidsteRæk = sidsteRæk - (slutRæk - ræk) + 1 ræk = ræk - 1 Else ræk = findAfslutÅrstal(ræk) End If End If Next ræk
Application.ScreenUpdating = True End Sub Private Function testÅrstal(værdi) If IsNumeric(Left(værdi, 2)) = True Then stregPos = InStr(værdi, "-") If stregPos > 0 Then If Mid(værdi, stregPos + 1, 2) <> 11 Then testÅrstal = False Else testÅrstal = True End If End If End If End Function Private Function findAfslutÅrstal(ræk) Dim r As Long For r = ræk To sidsteRæk If Range("A" & r) = "" Then findAfslutÅrstal = r + 2 Exit Function End If Next r
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.