Uitfilteren en verwijderen van kolommen?

  • Onderwerp starter Onderwerp starter kaan
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

kaan

Gebruiker
Lid geworden
9 feb 2007
Berichten
189
Beste,

Met deze Macro kan ik waarde in een cel zoeken en als die er is wordt het verwijderd.
Dat is wel wat de bedoeling is, maar het kan nog makkelijker zijn als ik dit kon omdraiejen.

Als voorbeeld, hij zoekt nu in B naar CI, of ieder andere waarde die aangegeven is en het wordt verwijderd.

Hoe kan ik het omgekeerde doen? dat hij het niet verwijderd maar behoud en juist wat niet op de lijst voorkomt verwijderd?


Sub DeleteRows()
Dim cell As Range
Dim ICol As Integer
Dim IRow As Integer
Dim myRange As Range


ICol = Range("B1").End(xlToRight).Column
IRow = Range("B1").End(xlDown).Row
Set myRange = Range(Cells(1, 1), Cells(IRow, ICol))


For x = IRow To 2 Step -1
Set cell = Range("B" & x)
cell.Select
If (cell.Value) = "KG" _
Or (cell.Value) = "VD" _
Or (cell.Value) = "OZ" _
Or (cell.Value) = "CI" _
Or (cell.Value) = "PS" Then
cell.EntireRow.Delete
End If
Next x
End Sub

Dankjewel
 
Zoiets?

Code:
Sub DeleteRows()
    Dim myRange As Range, c As Range
    Set myRange = Cells(1, 1).CurrentRegion
    For Each c In Intersect(Columns(2), myRange)
        If c <> "KG" And c <> "VD" And c <> "OZ" And c <> "CI" And c <> "PS" Then c.EntireRow.Delete
    Next x
End Sub

Wigi
 
WIGI,

Ik heb het geprobeerd maar hij doet het helaas niet, ik heb een bijlage bijgevoegd zo dat je kunt zien wat ik bedoel.

Bedankt voor je tijd.
 

Bijlagen

Wigi en anderen,

Na dagen gezocht te hebben voor een oplossing kan ik nergens wijzer van worden maar als ik logische ga na denken kom ik al snel achter dat de oplossing heel simpel is.

Volgende wil ik ook met andere delen.
Sub DeleteRows()
Dim cell As Range
Dim ICol As Integer
Dim IRow As Integer
Dim myRange As Range


ICol = Range("B1").End(xlToRight).Column
IRow = Range("B1").End(xlDown).Row
Set myRange = Range(Cells(1, 1), Cells(IRow, ICol))


For x = IRow To 2 Step -1
Set cell = Range("B" & x)
cell.Select
If (cell.Value) = "KG" _
Or (cell.Value) = "VD" _
Or (cell.Value) = "OZ" _
Or (cell.Value) = "CI" _
Or (cell.Value) = "PS" Then
Else

cell.EntireRow.Delete
End If
Next x
End Sub

cell.EntireRow.Delete deze opdracht draai je om als je daar voor else neer zet.
 
Dit werkt wel perfect:

Code:
Sub DeleteRows()
    Dim myRange As Range, lLastRow As Long, l As Long
    lLastRow = Range("A" & Rows.Count).End(xlUp).Row
    For l = lLastRow To 1 Step -1
        If Range("B" & l) <> "KG" And Range("B" & l) <> "VD" And Range("B" & l) <> "OZ" And Range("B" & l) <> "CI" And Range("B" & l) <> "PS" Then Range("B" & l).EntireRow.Delete
    Next l
End Sub

Wigi
 
Wigi,

Thuis was het niet mogelijk, maar als ik hem nu op mijn werk uitprobeer zie ik dat hij het inderdaad wel doet.
Dit zal te maken hebben met de versie van Excel.
Ik had de mijne al toegepast, maar ook deze kan ik later altijd nog gebruiken.

Zoiezo veel dank

Ik heb een andere vraag aan jou? Ik zoek een maneer om regels uit te filteren die in een regel de combinatie hebben van 2 cijfers.
Voorbeeld:

5269
567
10
25
5203

Hier moeten de regels met de inhoud 10, en 25 worden verwijderd,Eigelijk alle combinaties tussen 10 en 99 moeten worden verwijderd. Hoe kan ik het beste aanpakken?

Dank je wel
 
Laatst bewerkt:
Zoiets? (ben vertrokken van vorige code)

Code:
Sub DeleteRows()
    Dim myRange As Range, lLastRow As Long, l As Long
    lLastRow = Range("A" & Rows.Count).End(xlUp).Row
    For l = lLastRow To 1 Step -1
        If Range("B" & l) >= 10 And Range("B" & l) <= 99 Then Range("B" & l).EntireRow.Delete
    Next l
End Sub
 
WIGI,

Dit is wat ik nodig heb en het wekt zo als ik het had gewild.
mijn dank
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan