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

MAcro o.b.v. formule in cel

Status
Niet open voor verdere reacties.

abbcdcg

Gebruiker
Lid geworden
12 mrt 2012
Berichten
61
Beste mensen,

Ik wil op basis van een celwaarde kolommen verbergen. Wanneer ik cel $Z$5 handmatig of middels validatie vul lukt prima middels deze code:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

  If Range("Z5").Value <= 5 Then Columns("F").Hidden = True
  If Range("Z5").Value >= 5 Then Columns("F").Hidden = False

  If Range("Z5").Value <= 5 Then Columns("E").Hidden = False
  If Range("Z5").Value >= 5 Then Columns("E").Hidden = True
End Sub


Echter, ik wil processen samen laten voegen en $Z$5 vullen met een formule. Ik kan een =ALS vergelijking maken of simpelweg een een verwijzing. Echter, de macro werkt niet o.b.v. een formule. Ik heb hier en het net afgestruind, maar kom niet tot een oplossing waarbij ik de formule kan omzeilen.

Is dit geheel niet mogelijk of zijn er toch oplossingen voor?
Mijn dank is groot!
 
Zet de code in het Worksheet_Activate event of het Workbook_open event (dan wel met bladverwijzing natuurlijk).
 
En dan zo:
Code:
  Columns("E:F").Hidden = Range("Z5").Value <= 5
 
Laatst bewerkt:
Wel met bladverwijzingen toch, Edmoor?
 
Waarom kan het soms zo eenvoudig zijn...??
Werkt perfect, weer een stapje wijzer.

Dank !
 
Laatst bewerkt:
En dan zo:
Code:
  Columns("E:F").Hidden = Range("Z5").Value <= 5

Nog aangepast naar
Code:
Private Sub Worksheet_Activate()
  Columns("E").Hidden = Range("Z4").Value >= 5
  Columns("F").Hidden = Range("Z4").Value <= 5
End Sub

en werkt perfect. Weliswaar zonder bladverwijzing omdat het in een enkele sheet wordt uitgevoerd.

Voor lering en vermaak: Wat geeft deze code als voordeel?
 
En waarom niet zo?
Code:
Columns("E:F").Hidden = Range("Z4").Value <= 5

Het grote voordeel is dat je maar 1 regeltje heb in plaats van vier om hetzelfde te doen.
 
Laatst bewerkt:
En waarom niet zo?
Code:
Columns("E:F").Hidden = Range("Z4").Value <= 5

Omdat daarmee kolom E en F worden verborgen wanneer $z$4 <=5

In Z4 komt een uitkomst van een keuzemenu uit een ander tabblad. Deze uitkomst ligt tussen 1 en 9.
Wanneer de uitkomst 1,2,3,4,of 5 is dient op dit tabblad kolom E te worden verborgen en kolom F zichtbaar.
Wanneer de uitkomst 6,7,8,of 9 is dient kolom E zichtbaar te zijn en F verborgen.

Zo staat het ook in de code in de OP, of zie ik iets over het hoofd.
Behoudens dat jouw code korter is (waar ik voorstander van ben) dan in de OP ben ik gewoon nieuwsgierig :)
 
Ok, daar had ik even overheen gelezen. :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan