• 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.

Filters aan/uit met Macro

Status
Niet open voor verdere reacties.

Plukon

Nieuwe gebruiker
Lid geworden
21 feb 2018
Berichten
2
Goedendag

Ik ben net nieuw maar zit al een tijdje met een probleempje en hoop dat jullie mij kunnen helpen.

Ik heb het forum al afgestruind naar een oplossing maar heb hem nog niet gevonden.

Ik gebruik het volgende macro:

Code:
Sub kopieren()
Dim sAdd As String
Dim sh As Worksheet, rng As Range
Dim rng1 As Range, i As Long
Dim lToday As Date
Dim FoundCell As Range

lToday = Format(Date, "dd-mm-yy")

Set sh = Worksheets("Voorbereidinglijst")
Set rng = sh.Columns(1)
Set rng1 = rng.Find(lToday)
    
If Not rng1 Is Nothing Then
    sAdd = rng1.Address
    Do
        Intersect(rng1.EntireRow, Columns("B:I")).Copy Destination:= _
        Worksheets("Werklijst").Cells(Rows.Count, 2).End(xlUp)(2)
        Application.Wait (Now + TimeValue("0:00:01"))
        
        Intersect(rng1.EntireRow, Columns("A:L")).Copy Destination:= _
        Worksheets("Controle lijst voor kopieren").Cells(Rows.Count, 2).End(xlUp)(2)
        Application.Wait (Now + TimeValue("0:00:01"))
        Set rng1 = rng.FindNext(rng1)
    Loop While rng1.Address <> sAdd
End If

Set FoundCell = Range("A:A").Find(lToday)
Do Until FoundCell Is Nothing
   FoundCell.EntireRow.Delete
   Set FoundCell = Range("A:A").FindNext
Loop

End Sub

Ik laat elke dag Excel naar een lijst kijken (voorbereidinglijst) en vergelijk de datums met de datum van vandaag.
Op het moment dat de datum overheen komt dan gaat hij de regels die bij deze datums kopiëren naar 2 lijsten.
Werklijst en controle lijst en hij kijkt wat de eerst volgende lege regel is en zet dan de gekopieerde regels hieronder.

Nu had ik het probleem dat hij soms niet kopieerde naar de Werklijst maar wel naar de controle lijst. (daarom dus die controle lijst)

Op de Werklijst staan filters op de controle lijst niet.

Ik snapte er eerst niets van totdat ik er achter kwam dat het fout ging zodra in de werklijst de laatste regel (waarachter de gekopieerde cellen moeten komen) was weggefilterd.

Zolang de onderste regel die gebruikt wordt er nog staat is het goed maar wordt deze weggefilterd dan kopieerde hij niets naar deze lijst.

Nu zat ik te denken zou je het filter uit kunnen zetten, kopiëren en dan filter aanzetten (met dezelfde filterinstellingen) ?

Of is er een simpeler oplossing want ik zou het zo niet niet weten

Alvast bedankt voor alle moeite
 
Laatst bewerkt:
Vervang in ieder geval deze regel:
Code:
lToday = Format(Date, "dd-mm-yy")
door deze:
Code:
lToday = Date
want het is niet zinvol om eerst een datum naar tekst om te zetten, om die vervolgens door VBA weer terug om te laten zetten naar een datum.
 
Hallo

Allereerst bedankt voor het linkje ik had daar inderdaad niet gekeken.

En ook voor de datum aanpassing.

Nu is de vraag heb ik het duidelijk uitgelegd wat mijn probleem is?

Met vriendelijke groet,
Bert
 
Dat filter uit en weer aanzetten kan als volgt:

Code:
Sub UnfilterSaveAsCustomView()
    Application.DisplayAlerts = False
    ActiveWorkbook.CustomViews.Add ViewName:="Filtered", PrintSettings:=True, _
                                   RowColSettings:=True
    Application.DisplayAlerts = True
    ActiveSheet.ShowAllData
End Sub
Sub FilterUseCustomView()
    ActiveWorkbook.CustomViews.Item("Filtered").Show
End Sub
 
Helaas werkt dit niet als je bereik geformatteerd is als een tabel :-(
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan