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

Data in slicer selecteren dmv macro

Status
Niet open voor verdere reacties.

Remko1974

Gebruiker
Lid geworden
16 feb 2016
Berichten
20
deze vraag is gesloten, maar heb een vervolgvraag:

http://www.helpmij.nl/forum/showthread.php/884665-Datum-in-Pivot-instellen-d-m-v-een-macro


Zie hieronder de macro, waarin hij automatisch de datum van vandaag selecteert. Hoe geef ik nu aan dat hij de data moet selecteren die in het verleden staan t/m vandaag?

With ActiveWorkbook
.RefreshAll
With .SlicerCaches("Slicer_CustCnfDat")
.ClearManualFilter
For Each si In .SlicerItems
si.Selected = si.Value = Format(Date, "dd.mm.yyyy")
Next si
Application.ScreenUpdating = False
 
Stond er in dat andere draadje ook niet iets over "code"tags?
 
uhhhh ja, maar wilde de link benoemen zodat men de gehele inhoud kan zien, zouden er personen zijn die mij kunnen helpen met dit topic.
 
Gisteren is Date - 1......

dat snap ik, maar het gaat over alle dagen t/m vandaag, dus alles in het verleden t/m heden. Nu kan ik daar "date - 30" voornemen, maar is er geen code die niet triggert op aantal dagen in het verleden, maar op HET verleden?
 
Ik denk:

Code:
si.Selected = CDATE(si.Value) < Date

ik krijg een foutmelding als ik de macro laat lopen. Heb er ook al onderstaand geprobeerd door er de date format achter te plaatsen:

Code:
si.Selected = CDate(si.Value) < Date = Format(Date, "dd.mm.yyyy")

waar gaat het ergens mis???
 
Remko, zou het ook handig zijn als je vermeldt welke foutmelding je krijgt?
 
Als je lege cellen of iets anders dan een datum in jouw tabel heb staan dan zal Cdate een foutmelding geven.

Code:
If IsDate(si.Value) Then si.Selected = CDate(si.Value) <= Date Else si.Selected = False
 
Als je lege cellen of iets anders dan een datum in jouw tabel heb staan dan zal Cdate een foutmelding geven.

Code:
If IsDate(si.Value) Then si.Selected = CDate(si.Value) <= Date Else si.Selected = False

2018-01-24_11-19-08.jpg

Nu worden ook de data in de toekomst geselecteerd wat niet de bedoeling is bij de eerste slicer. Bij de tweede en derde worden de data ook niet of niet juist geselecteerd :-(
 
Je kan beter het bestand plaatsen ipv een plaatje.
 
De End With's staan nogal verkeerd. En verder heb je blijkbaar niets gedaan met de suggesties in jouw vorige vraag. De zogenaamde datums zijn tekst en dan valt er weinig te vergelijken. Wat verder het doel is ontgaat mij even; elke status aanpassing van een slicer refresht alle onderliggende draaitabellen. En aangezien je er nogal veel gekoppeld hebt gaat het lang duren. Je mag zelf even uitzoeken hoe je het refreshen uit kan zetten. https://www.google.nl/search?q=do+not+refresh+pivot+table+by+clicking+a+slicer&spell=1&sa=X&ved=0ahUKEwjp7ou5wfHYAhXQZVAKHW1WB4YQBQglKAA&biw=1920&bih=959

Code:
Sub VenA()
  With ActiveWorkbook
    .RefreshAll
    With .SlicerCaches("Slicer_CustCnfDat")
        .ClearManualFilter
        For Each si In .SlicerItems
            If IsDate(Replace(si.Value, ".", "-")) Then si.Selected = DateValue(Replace(si.Value, ".", "-")) <= DateValue(Date)
        Next si
    End With
    With .SlicerCaches("Slicer_Loading_Date1")
        .ClearManualFilter
        For Each si In .SlicerItems
            si.Selected = si.Value = Format(Date, "dd.mm.yyyy")
        Next si
    End With
    With .SlicerCaches("Slicer_ScheLnDate")
        .ClearManualFilter
        For Each si In .SlicerItems
            si.Selected = si.Value = Format(Date, "dd.mm.yyyy")
        Next si
    End With
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan