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

Filteren van data over meerdere werkbladen in één keer.

Status
Niet open voor verdere reacties.

huygen

Gebruiker
Lid geworden
28 jul 2015
Berichten
16
Beste Forumleden!

Dit is mijn tweede en hopelijk laatste vraag hier over macro's in excel.

Ik heb in SQL een database gemaakt. Deze is nog niet volledig gevuld, maar om de functionaliteit binnen het bedrijf te kunnen aantonen is het belangrijk dat we straks makkelijk grafieken kunnen genereren.
Er is in eerste instantie gekozen om dit in Excel te doen.

Ik ben inmiddels zover dat ik alle data kan inladen in één werkboek. Nu heb ik, na het inladen, op elk werkblad verschillende data staan.
Één van deze werkbladen is het werkblad met de tijd, elk tijdsmoment heeft z'n eigen id-nummer die herhaald wordt in de andere tabbladen.
Nu heb ik, als tijdelijke oplossing, op elk tabblad de gegevens uit het werkblad 'tijd' geplakt en een autofilter ingeschakeld waardoor ik elk blad kan filteren op tijd.
Nu zou ik het liefst maar één keer hoeven te selecteren/filteren welke 'tijd' ik zichtbaar wil hebben op alle werkbladen.
Op het eerste werkblad heb ik namelijk grafieken staan die alleen de gefilterde gegevens laten zien.

Is dit mogelijk? Kan iemand mij hiermee helpen?

Ik heb een voorbeeld van het bestand bijgevoegd ter indicatie wat ik bedoel.
Ik heb data uit het bestand verwijderd of aangepast, omdat het om gevoelige informatie gaat.
Mogelijk werken de macro's nu dus niet.

Bekijk bijlage voorbeeld.xlsm
 
Even los van de vraag maak je volgens mij een enorme denkfout. Als je de gegevens in een database hebt staan dan mag ik hopen dat de verschillende tabjes in het voorbeeldje niet een 'dump' zijn van de verschillende tabellen.

Maak een Query vanaf de leidende tabel (ik denk de tab 'Tijd') Je kan dan met bepaalde 'Joineigenschappen' een export naar Excel maken die alle voor jou relevante gegevens bevat. Dit stukje hoort eigenlijk thuis in het Access gedeelte van dit forum.

Om op jouw vraag terug te komen. Het filteren van meerdere tabjes op een bepaalde waarde kan vrij eenvoudig.

Met deze code wordt er gefilterd op de waarde in F2 van de tab 'Grafieken'

Code:
Sub VenA()
For Each sh In Sheets
    If sh.Name <> "Tijd" And sh.Name <> "Grafieken" Then sh.Cells(1, 2).AutoFilter 2, Sheets("Grafieken").[F2].Value
Next sh
End Sub
 
Dankje, het werkt perfect.
Het is een erg complexe database in SQL die met python codes is opgebouwd, ik doe het daarom liever op deze manier.

Nog een aanvullende vraag.
Als ik nou meerdere tabbladen over wil slaan in de filtering dan alleen het tabblad "Grafieken", hoe doe ik dit dan?

Code:
Sub VenA()
For Each sh In Sheets
    If sh.Name <> "Tijd" And sh.Name <> "Grafieken" Or "Blad1" Or "Blad2" Then sh.Cells(1, 2).AutoFilter 2, Sheets("Grafieken").[F2].Value
Next sh
End Sub

Dit werkt namelijk niet.
Ik heb namelijk ook een paar bladen waar gegevens van de woning in staan, dus geen data die aan de tijd gekoppeld is.
Alvast bedankt!
 
Code:
Sub VenA()
    For Each sh In Sheets
        NoFilter = "Tijd,Grafieken,Blad1,Blad2"
        If InStr(1, NoFilter, sh.Name, vbTextCompare) = 0 Then
            sh.Cells(1, 2).AutoFilter 2, Sheets("Grafieken").[F2].Value
        End If
    Next sh
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan