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

Regels verbergen als de waarde 0 of het percentage 0 is

Status
Niet open voor verdere reacties.

wimlin1968

Gebruiker
Lid geworden
12 feb 2019
Berichten
45
Ik heb een invoerblad waar ik mijn waarden invoer. Er zijn altijd 7 vogelsoorten in dit voorbeeld. Die zorgen voor een omzet of voor een verdeling. Als in het invoerblad deze op 0 of op 0% blijven moeten deze in mijn output blad verborgen worden.


Ik kan een macro opnemen om regels te verbergen maar die verbergt dan altijd alle regels ook als mijn waarde niet 0 is.

Is dit wel mogelijk of moet ik dit handmatig blijven doen?

Als het wel kan moet dan de macro geactiveerd worden met een knop?
 

Bijlagen

ik wil het zonder filter omdat de gebruiker steeds weer de filter aan en uit moet zetten als er in het invoerblad waarden van 0 naar >0 dan wijzigen of andersom.

Het is de bedoeling dat ik er voor ga zorgen dat na het invoeren in het tabblad invoerblad er automatisch vijf tabbladen met output worden geprint maar dan moeten er dus eventueel wat regels verborgen worden.

Daarom dacht ik aan een macro maar ik weet geen macro te maken die zegt als bijvoorbeeld H12 = 0 dan regel verbergen anders regel zichtbaar.

Een macro om dan mijn vijf output bladen te printen lijkt mij dan vijf tabblad selecteren en dan knop maken waar ik die macro aan koppel.
 
In de module van het blad 'Output Blad'
Code:
Private Sub Worksheet_Activate()
  For Each cl In Columns(8).SpecialCells(-4123)
    cl.EntireRow.Hidden = cl.Value = 0
  Next cl
End Sub
 
De macro werkt goed.

Twee vragen.

Moet ik die nu op ieder tabblad toevoegen.

Ik heb nu tabblad 1 gekopieerd en daar blijft de macro werken. Maar ik heb ook een tabblad toegevoegd en daar werkt de macro pas als ik mijn sneltoets gebruik.

Of ik doe ik wat fout?
 

Bijlagen

Je hebt de code in een gewone module ipv de bladmodule geplaatst. Als in elk outputblad de formules in kolom H staan dan kan je deze code plaatsen in de module van ThisWorkbook.

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If Sh.Name = "Invoerblad" Then Exit Sub
  Application.ScreenUpdating = False
  For Each cl In Columns(8).SpecialCells(-4123)
    cl.EntireRow.Hidden = cl.Value = 0
  Next cl
End Sub
 
Bereiken met de waarde 0 verbergen

Zit nog verder te puzzelen met mijn excel file.

De macro werkt nu goed voor alle tabbladen. Alleen nu merk ik toch dat het handiger is dat deze macro maar in twee tabbladen gaat werken en dan nog in twee verschillende reeksen.

Als in Tabblad Output voor klant 2_4 H12:H19 en H22:H28 dan de 0 waarden verbergen
en in Tabblad Output voor klant 3_4 h30:h36 de waarden 0 zijn dan verbergen.

Zou dit ook mogelijk zijn?
 

Bijlagen

Natuurlijk is het mogelijk. Alleen als je elke keer de vraag wijzigt en zelf weinig inspanningen vertoont om de code aan te passen dan blijven we aan de gang.

Code:
For each cl in range("H12:H19, H22:H28")

Hiermee baken je een bereik af. Dus eerst zelf maar wat proberen dan zien we vanzelf waar het nog misgaat.
 
Sorry VenA het is zeker niet de bedoeling dat ik de indruk wekte niks te doen met dit model. Met het origineel heb ik al zeker een dag gewerkt. Ik kan helaas alleen macro's maken door ze op te nemen. Dan kreeg ik het niet voor elkaar om een macro te krijgen met een als vraag. Had nu alleen een macro kunnen maken waarin ik mijn tabbladen selecteer en in die PDF print.

In eerste instantie dacht ik dat het handig zou zijn dat ik alles liet verbergen in heel kolom H als het waarde 0 nul heeft. Maar later zag ik dat er dan andere nuttige informatie wordt verborgen als daar 0 staat. Eerst dacht ik dan zet ik standaard overal als standaard waarde 0,0001 neer dan zie je toch niet als ik laat afronden maar is toch minder fraai.

Vandaar dat ik later dacht. Het is veel handiger om per tabblad op te geven om welk bereik het gaat.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan