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

VBA code uitvoeren als blad wordt geactiveerd

Status
Niet open voor verdere reacties.

MeltedForest

Gebruiker
Lid geworden
22 sep 2008
Berichten
178
Hallo,
ik wil dat excel een stukje code start zodra ik op blad2 klik onderaan in beeld, namelijk het vernieuwen van mijn autofilter die in cel B1 op blad2 staat. Het stukje code wat ik heb is als volgt:
Code:
    Range("B1").Select
    Selection.AutoFilter Field:=1, Criteria1:="<>"

Ik weet uberhaupt nog niet of dit zo gaat werken. Het is dus de bedoeling dat de code de autofilter op "niet-lege cellen" zet, zodat deze verbergen. Hopelijk begrijpt iemand mijn verhaal en kan hij/zij mij helpen :)

Gr,
Lenny-t

PS: Misschien dat het ook makkelijker kan, dat de cellen middels VBA verborgen worden als ze leeg zijn. Dat zou ook een goede (en mooiere) oplossing zijn, maar ik weet daar de code niet voor. De range is B1:B45 voor het toepassen van de code. Als iemand die mij kan leveren, graag :)
 
Laatst bewerkt:
Op beide manieren:

1. Via (macro voor) AutoFilter
Code:
Private Sub Worksheet_Activate()
Range("B1").AutoFilter Field:=1, Criteria1:="<>"
    
End Sub

2. Via macro
Code:
Private Sub Worksheet_Activate()

Dim rCel As Range
    For Each rCel In Range("B1:B45")
        If rCel.Value = "" Then Range(rCel.Row & ":" & rCel.Row).EntireRow.Hidden = True
    Next
    
End Sub

Met vriendelijke groet,


Roncancio
 
Bedankt voor de snelle respons :)

Even voor de duidelijkheid:
Ik doe dus rechtermuis op mijn tweede blad > Programmacode weergeven.
Ik plak daar de code in die je me gegeven hebt. Ik sla de boel op en sluit de editor weer. Als ik dan in Excel het tweede blad activeer, gebeurt er niks. :rolleyes:

Kan het zijn dat er beveligingsopties zijn die mij ervan weerhouden de code uit te voeren?
 
Dat kan inderdaad, check het beveiligingsniveau eens voor wat betreft macro's.

En ik verkies de Autofilter code.

Wigi
 
Bedankt voor de snelle respons :)

Even voor de duidelijkheid:
Ik doe dus rechtermuis op mijn tweede blad > Programmacode weergeven.
Ik plak daar de code in die je me gegeven hebt. Ik sla de boel op en sluit de editor weer. Als ik dan in Excel het tweede blad activeer, gebeurt er niks. :rolleyes:

Kan het zijn dat er beveligingsopties zijn die mij ervan weerhouden de code uit te voeren?

Dat zou inderdaad kunnen.
Ik heb voor de zekerheid een testbestandje bijgevoegd.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Het werkt inderdaad toch wel :)
Ik had denk perongeluk om half 9 vanochtend op macro's uitschakelen geklikt bij het opstarten :confused:

:thumb::thumb::thumb:

Nog iets; worden verborgen rijen meegenomen in een grafiek of niet?
 
Oké nog één dingetje dan.

Ik heb een grafiek waar ik lege rijen niet wil weergeven.
Ik heb mijn grafiek in een apart blad, want hij is tamelijk groot.
Het blad waar mijn grafiek op staat heet "Grafiek"
Het blad met de data voor de grafiek heet "Berekening"
De autofilter zit op blad "Berekening" in cel A2.

Nu wil ik bereiken dat als de gebruiker op het blad "Grafiek" klikt, dat dan de autofilter in blad "Berekening" vernieuwd wordt op niet lege cellen, zodat die niet in de grafiek wordt weergegeven. Misschien is het noodzakelijk dat er dan ook nog een refresh komt op het "Grafiek" blad, daar kom ik pas achter als ik de eerdere code heb toegepast.

Alvast Bedankt! :D
 
Onderstaande code toevoegen aan Grafiek.

Code:
Private Sub Worksheet_Activate()

Worksheets("Berekening").Range("A2").AutoFilter Field:=1, Criteria1:="<>"
End Sub

Met vriendelijke groet,


Roncancio
 
Zonder autofilter of trage lus:

Code:
[B1:B45].SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
 
Beste Roncancio,

Helaas werkt het niet, er gebeurt helemaal niets.
Ik heb de code ingevuld bij "Grafiek", en als ik dan "Grafiek" activeer en vervolgens kijk bij "Berekening", is de filter niet toegepast. Hij geeft verder geen foutmelding ofzo.

:confused:
 
Beste Roncancio,

Helaas werkt het niet, er gebeurt helemaal niets.
Ik heb de code ingevuld bij "Grafiek", en als ik dan "Grafiek" activeer en vervolgens kijk bij "Berekening", is de filter niet toegepast. Hij geeft verder geen foutmelding ofzo.

:confused:

Dan gaat er bij jou toch iets niet goed want bij mij werkt het wel. (zie voorbeeld).

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Ik zie het al.
Het is een Chart-sheet.

Ik heb de code aangepast en nu werkt het wel.

Met vriendeljke groet,


Roncancio
 
Laatst bewerkt:
Kijk aan :D
Wat een woordje wel niet betekent ;)

Bedankt :thumb:

Trouwens nu je toch m'n bestand heb; op blad "Waarschuwingen" zie je op Rij1 mijn header staan.
Ik wou eigenlijk de huidige datum middels vandaag() gebruiken in de headertekst zodat er komt te staan:
Waarschuwingen Stroke (datum)
Ik heb dit geprobeerd middels ="Waarschuwingen Stroke " & vandaag()
Maar dan komt vandaag er in serieel getal te staan, omdat excel de eigenschap van de cel tekst heeft gemaakt en niet datum.

Weet je toevallig hoe dit opgelost kan worden?
 
Laatst bewerkt:
Kijk aan :D
Wat een woordje wel niet betekent ;)

Bedankt :thumb:

Trouwens nu je toch m'n bestand heb; op blad "Waarschuwingen" zie je op Rij1 mijn header staan.
Ik wou eigenlijk de huidige datum middels vandaag() gebruiken in de headertekst zodat er komt te staan:
Waarschuwingen Stroke (datum)
Ik heb dit geprobeerd middels ="Waarschuwingen Stroke " & vandaag()
Maar dan komt vandaag er in serieel getal te staan, omdat excel de eigenschap van de cel tekst heeft gemaakt en niet datum.

Weet je toevallig hoe dit opgelost kan worden?
Code:
="Waarschuwingen Stroke " &TEKST(VANDAAG();"dd-mmm-jjjj")
Eventueel kan je de tekstopmaak ( = "dd-mmm-jjjj") aanpassen.

Met vriendelijke groet,


Roncancio
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan