Avatar billede madiedk Nybegynder
12. november 2007 - 17:39 Der er 8 kommentarer og
1 løsning

slet rækker hvis 4 af kolonnerne er tomme

Hej

jeg har 11876 linier i et excel ark, med 19 rækker.
hvis kolonner m  o  og  k er tomme skal rækken slettes.
hvordan koder jeg det i vba? har google det men kan ikke få de eksempler til at virke.
Avatar billede excelent Ekspert
12. november 2007 - 17:54 #1
Sub SletHvis()

Dim t, rk

Range(Range("A1"), ActiveCell.SpecialCells(xlLastCell)).Select
rk = Selection.Rows.Count

Cells(1, 1).Select

For t = 1 To rk
If Cells(t, "M") <> "" And Cells(t, "O") <> "" And Cells(t, "K") <> "" Then Cells(t, 100) = 1
Next

Range("CV1:CV" & rk).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Range("CV1:CV" & rk) = "" ' hjælpekolonne (100)
ActiveCell.Select

End Sub
Avatar billede excelent Ekspert
12. november 2007 - 17:56 #2
husk backup er en go ting :-)
Avatar billede jlemming Nybegynder
12. november 2007 - 18:00 #3
With Range("A1:A20")
    rCount = .Rows.Count
    For r = rCount To 1 Step -1
        If .Cells(r, "M") = "" And .Cells(r, "O") = "" And .Cells(r, "K") = "" Then
            .Rows(r).EntireRow.Delete
        End If
    Next r
End With
Avatar billede madiedk Nybegynder
12. november 2007 - 18:03 #4
fik løst det med sorter funktioner i excel, tjekker lige jeres løsninger ved lejlighed, tak for besvarelserne indtil videre :-)
Avatar billede excelent Ekspert
12. november 2007 - 18:13 #5
Så skulle den virke - ignorer den første

Sub SletHvis()

Dim t, rk

Range(Range("A1"), ActiveCell.SpecialCells(xlLastCell)).Select
rk = Selection.Rows.Count

Cells(1, 1).Select

For t = 1 To rk
If Cells(t, "M") = "" And Cells(t, "O") = "" And Cells(t, "K") = "" Then Cells(t, 100) = "" Else Cells(t, 100) = 1
Next

Range("CV1:CV" & rk).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Range("CV1:CV" & rk) = "" ' hjælpekolonne (100)
ActiveCell.Select

End Sub
Avatar billede judomads Nybegynder
15. november 2007 - 13:11 #6
Sub Slettomme()
'sletter tomme rækker
Application.ScreenUpdating = False
ActiveCell("k1").Select
ActiveCell.Select
Do
If ActiveCell.Value = "" _
And ActiveCell.Offset(0, 2).Value = "" _
And ActiveCell.Offset(0, 4).Value = "" _
Then

  ActiveCell.EntireRow.Delete
ActiveCell.Offset(1, 0).Activate
       
Else: ActiveCell.Offset(1, 0).Activate
End If
Loop Until ActiveCell.Row = 11876
Application.ScreenUpdating = True
End Sub
Avatar billede jlemming Nybegynder
16. november 2007 - 07:36 #7
Judomads --> Hvorfor ligger du et svar, på et spm. der allerede er besvaret 3 gange?
iøvrig med en løsning der er langsommere og størrere!!
Avatar billede madiedk Nybegynder
23. november 2007 - 20:15 #8
jeg får ikke tid til at tjekke løsninger forløbigt, men giver gerne point for løsningerne, kan være jeg bruger dem en dag hvor sorter funktionen ikke rækker langt nok. smid et svar den første med rigtig løsning
Avatar billede jlemming Nybegynder
26. november 2007 - 08:50 #9
Jeg tillader mig at smide et svar
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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