• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

rijen verwijderen met meerdere voorwaarden

Status
Niet open voor verdere reacties.

arjancuijpers

Gebruiker
Lid geworden
30 nov 2015
Berichten
30
Beste,

Ik ben op zoek naar een VBA code waardoor ik automatisch rijen kan verwijderen die niet aan aan mijn voorwaarden voldoen.
theoretische:
Als
waarde x NIET tussen x1 en x2
EN
waarde y NIET tussen y1 en y2
EN
NIET leeg is
dan complete rij verwijderen


kolommen die die daar bij horen:
Als
waarde in kolom R NIET tussen waarde in kolom F en waarde kolom F+kolom H
EN
waarde in kolom S NIET tussen waarde in kolom G en waarde kolom G+kolom I
EN
kolom R en S NIET leeg is
dan complete rij verwijderen

Hierbij bijbehorende bestand.

MVGBekijk bijlage kavel 20.xlsx

Arjan
 
Op elke rij waarin R en S moet gecheckt worden staat er niets in kolom G en Kolom F en Kolom H ?

Wat wil je dan vergelijken?
 
Test deze eens op een copy, heb ipv delete een kleuring gedaan zodat je kan controleren:

Code:
Sub cobbe()
For Each cl In Range("R1:R100")
' als kol R < Kol F EN kol R > kol F+kol H
If cl < cl.Offset(, -12) And cl > cl.Offset(, -12) + cl.Offset(, -10) Then
' als kol S < kol G EN kol S > kol G + kol I
 If cl.Offset(, 1) < cl.Offset(, -11) And cl.Offset(, -11) + cl.Offset(, -9) Then
' als kol R EN kol S niet leeg
  If cl <> "" And cl.Offset(, 1) <> "" Then
   Rows(cl.Row).Interior.ColorIndex = 3
  End If
 End If
End If
Next
End Sub
 
Of deze versie:

Code:
Sub cobbe()
 For Each cl In Range("R1:R100")
  If cl < cl.Offset(, -12) And cl > cl.Offset(, -12) + cl.Offset(, -10) And cl.Offset(, 1) < cl.Offset(, -11) And cl.Offset(, -11) + cl.Offset(, -9) And cl <> "" And cl.Offset(, 1) <> "" Then
    Rows(cl.Row).Interior.ColorIndex = 3
  End If
 Next
End Sub
 
Kleine aanpassingen mbt tot de ANDs, de ORs en de kleur (maar dat ligt aan mij :)):
Code:
Sub Cobbe()
    Dim i As Long
    Dim Cl As Range
    
    For i = 100 To 1 Step -1
        Set Cl = Range("R" & i)
        If (Cl < Cl.Offset(, -12) Or Cl > Cl.Offset(, -12) + Cl.Offset(, -10)) And _
            (Cl.Offset(, 1) < Cl.Offset(, -11) Or Cl.Offset(, 1) > Cl.Offset(, -11) + Cl.Offset(, -9)) _
            And Cl <> "" And Cl.Offset(, 1) <> "" Then
                Rows(Cl.Row).Interior.ColorIndex = 4
                'Cl.EntireRow.Delete
        End If
    Next
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan