Loop, zoeken naar 3 variabelen

Status
Niet open voor verdere reacties.

weusty

Gebruiker
Lid geworden
23 feb 2007
Berichten
133
Beste allemaal,

Ik ben opzoek naar een simpele macro voor het volgende probleem;

Ik heb een urenregistratie-systeem waarin bepaalde regels voorkomen die automatisch verwijderd moeten worden.

Aan de hand van drie verschillende argumenten (NAAM, JAAR en WEEK) wil ik bepaalde regels verwijderen d.m.v. een macro.

bijvoorbeeld zoals in de bijlage:

argumenten 1(NAAM) = Klaas
argumenten 2(JAAR)= 2011
argumenten 3(WEEK) = 03

moet dus regel 12 verwijderd worden.

Zou iemand mij hierbij kunnen helpen? Ik ben zelf niet zo goed met loops e.d. .:confused:

Alvast bedankt,

Groet Weust

Hieronder het voorbeeld:
Bekijk bijlage Voorbeeld.xls
 
zonder loop maar met gebruik van Autofilter:

Code:
Sub weusty()

    Dim argument1 As String, argument2 As String, argument3 As String

    argument1 = "Klaas"
    argument2 = "2011"
    argument3 = "03"

    With Application
        xlCalc = .Calculation
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    With Sheets("001")
        .AutoFilterMode = False

        With .Range("A1:C" & .Cells(Rows.Count, "A").End(xlUp).Row)
            .AutoFilter Field:=1, Criteria1:=argument1
            .AutoFilter Field:=2, Criteria1:=argument2
            .AutoFilter Field:=3, Criteria1:=argument3
            .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
        End With

        .AutoFilterMode = False
    End With

    With Application
        .Calculation = xlCalc
        .EnableEvents = True
        .ScreenUpdating = True
    End With

End Sub
 
De macro van Eric wat aangepast
Code:
Sub weusty()
Dim argument1 As String, argument2 As String, argument3 As String
    [COLOR="red"]argument1 = [ARG!B2].Value
    argument2 = [ARG!B3].Value
    argument3 = IIf(Len([ARG!B4].Value) = 1, "0" & [ARG!B4].Value, [ARG!B4].Value)[/COLOR]

    With Application
        xlCalc = .Calculation
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    With Sheets("001")
        .AutoFilterMode = False
        With .Range("A1:C" & .Cells(Rows.Count, "A").End(xlUp).Row)
            .AutoFilter Field:=1, Criteria1:=argument1
            .AutoFilter Field:=2, Criteria1:=argument2
            .AutoFilter Field:=3, Criteria1:=argument3
            .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
        End With
        .AutoFilterMode = False
    End With
        .Calculation = xlCalc
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub
 
Top hoor! :thumb:Werk super goed.

Dank voor jullie hulp.

Groet Weust
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan