Ja, u kunt rijen in Excel verbergen met behulp van een formule of voorwaardelijke verklaring, maar niet *direct* binnen een celformule. In plaats daarvan moet u Voorwaardelijke opmaak gebruiken met een aangepaste formule in combinatie met een VBA-macro . Hier leest u hoe u het moet doen:
1. Voorwaardelijke opmaak:
* Doel: Om rijen te markeren die aan uw criteria voldoen (de voorwaarde). In plaats van het direct te verbergen, veranderen we het lettertype en de vulkleur van de rij zodat deze onzichtbaar zijn.
* Stappen:
1. Selecteer het gegevensbereik: Markeer het gehele bereik van rijen en kolommen waarop u de verbergvoorwaarde wilt toepassen (bijvoorbeeld 'A1:Z100' of hoe groot uw gegevens ook zijn). Cruciaal is dat de *eerste* rij van uw selectie wordt gebruikt als referentie voor uw formule.
2. Ga naar Voorwaardelijke opmaak: Klik op het tabblad 'Start' op 'Voorwaardelijke opmaak'> 'Nieuwe regel...'
3. Kies 'Gebruik een formule om te bepalen welke cellen moeten worden opgemaakt': Selecteer dit regeltype.
4. Voer uw formule in: Voer in het formulevak een formule in die 'TRUE' retourneert als u de rij wilt verbergen, en anders 'FALSE'. *Belangrijk:* Gebruik relatieve verwijzingen (`$columnNameRowNumber`) of gemengde verwijzingen (`$columnNameRowNumber`) op de juiste manier, afhankelijk van wat u wilt testen.
* Voorbeeld 1 (rijen verbergen waarbij de waarde in kolom A 'Verbergen' is):
```uitblinken
=$A1="Verbergen"
```
Deze formule controleert of de waarde in kolom A van de *eerste rij* van uw geselecteerde bereik gelijk is aan "Verbergen". Vervolgens wordt de opmaak op die rij toegepast. Omdat u het hele bereik hebt geselecteerd, wordt de formule automatisch voor elke rij aangepast.
* Voorbeeld 2 (rijen verbergen waarbij de waarde in kolom B kleiner is dan 0):
```uitblinken
=$B1<0
```
Hierdoor worden rijen verborgen waarin de waarde in kolom B negatief is.
* Voorbeeld 3 (rijen verbergen waar de waarde in kolom C leeg is):
```uitblinken
=ISBLANK($C1)
```
5. Stel het formaat in (op "verbergen"): Klik op de knop "Formatteren...".
* Lettertype: Wijzig de kleur van het lettertype zodat deze overeenkomt met de achtergrondkleur van uw cellen. Meestal is dit wit (of geen vulling).
* Vullen: Wijzig de vulkleur zodat deze overeenkomt met de achtergrondkleur van uw cellen. Nogmaals, meestal wit (of geen vulling).
* Klik op "OK" om het dialoogvenster Opmaak te sluiten en vervolgens nogmaals op "OK" om de voorwaardelijke opmaakregel te maken.
2. VBA-macro (om de rijhoogte aan te passen):
* Doel: Om de rijhoogte in te stellen op 0 voor de rijen die overeenkomen met de opmaak. Dit is de laatste stap bij het visueel verbergen van de rijen.
* Stappen:
1. Open de VBA-editor: Druk op `Alt + F11` om de Visual Basic Editor te openen.
2. Een module invoegen: Ga in de VBA-editor naar "Invoegen"> "Module".
3. Plak de volgende code: Plak deze VBA-code in de module:
```vba
Sub HideRijenBasedOnFormat()
Dim rng als bereik, cel als bereik
Dim ws As-werkblad
Dim condFormat als FormatCondition
' Wijzig 'Blad1' in de naam van uw blad
Set ws =ThisWorkbook.Sheets("Blad1")
' Wijzig A1:Z100 naar het werkelijke bereik waar de voorwaardelijke opmaak wordt toegepast
Stel rng =ws.Range("A1:Z100") in
' Loop door elke cel in het bereik
Voor elke cel in rng.Rows
'Ga ervan uit dat je je in eerste instantie niet verstopt
cel.Verborgen =Onwaar
'Loop door alle voorwaardelijke formaten
Voor elke condFormat In cell.FormatConditions
Als condFormat.Type =xlExpression Dan
'Evalueer de formule, als het waar is, verberg het dan
If ws.Evaluate(condFormat.Formula1) Dan
cel.Verborgen =Waar
Afsluiten voor
Einde Als
Einde Als
Volgende condFormat
Volgende cel
Einde sub
Sub ToonAlleRijen()
Dim ws As-werkblad
' Wijzig 'Blad1' in de naam van uw blad
Set ws =ThisWorkbook.Sheets("Blad1")
ws.Rows.Hidden =Onwaar
Einde sub
```
4. Pas de code aan:
* `ws =ThisWorkbook.Sheets("Blad1")` :Wijzig `"Blad1"` in de werkelijke naam van het werkblad waarop uw gegevens staan.
* `Set rng =ws.Range("A1:Z100")` :Wijzig `"A1:Z100"` in hetzelfde gegevensbereik dat u hebt gebruikt bij het maken van de voorwaardelijke opmaakregel.
5. Voer de macro uit: Ga terug naar de VBA-editor (als u deze hebt gesloten) en druk op `F5` om de macro `HideRowsBasedOnFormat` uit te voeren. U kunt ook vanuit Excel naar het tabblad "Ontwikkelaar" gaan (als u dit niet ziet, moet u dit inschakelen in de opties van Excel)> "Macro's", selecteer `HideRowsBasedOnFormat` en klik op "Uitvoeren".
6. (Optioneel) Voeg een knop toe: U kunt een knop in uw werkblad invoegen (Invoegen -> Vormen -> Knop) en daaraan de macro `HideRowsBasedOnFormat` toewijzen. Dit biedt een gebruiksvriendelijke manier om de rijen opnieuw te verbergen wanneer de gegevens veranderen. Je kunt ook een knop toevoegen voor `UnhideAllRows`.
Uitleg:
* Voorwaardelijke opmaak: Dit markeert de rijen die we willen verbergen.
* VBA-macro: Deze code doorloopt de rijen en controleert of de voorwaardelijke opmaak op elke rij van toepassing is. Als dit het geval is, wordt de `RowHeight` op 0 gezet, waardoor de rij feitelijk onzichtbaar wordt. We gebruiken de voorwaardelijke opmaakformule als onderdeel van de macro, dus deze is niet alleen gebaseerd op de opmaak, aangezien die kan veranderen.
Belangrijke overwegingen:
* Prestaties: Als u een zeer grote dataset heeft (tienduizenden rijen), *kan* deze aanpak langzaam zijn omdat deze door elke rij heen wordt herhaald. Er kunnen complexere maar snellere VBA-oplossingen zijn als de prestaties van cruciaal belang zijn.
* Herberekening: Wanneer uw gegevens veranderen (en de regels voor voorwaardelijke opmaak opnieuw worden berekend), moet u de macro opnieuw uitvoeren om de rijen opnieuw te verbergen als de voorwaarden zijn gewijzigd. U kunt dit automatiseren met behulp van een gebeurtenishandler in VBA (bijvoorbeeld `Worksheet_Change` om de macro te activeren telkens wanneer een cel op het blad wordt gewijzigd). Wees echter voorzichtig, want het uitvoeren van een macro bij elke wijziging kan de zaken ook vertragen.
Voorbeeld met gebeurtenis 'Worksheet_Change' (automatisch verbergen):
Om het verbergen automatisch te maken wanneer de gegevens veranderen, kunt u de VBA-code als volgt wijzigen. In plaats van de code in een module te plaatsen, plaatst u deze in het codevenster van het *werkblad*:
1. Klik met de rechtermuisknop op de bladtab (bijvoorbeeld 'Blad1') in Excel en selecteer 'Code bekijken'. Hierdoor wordt de VBA-editor rechtstreeks geopend naar de codemodule van het werkblad.
2. Plak de volgende code in het codevenster van het werkblad:
```vba
Private Sub Worksheet_Change (ByVal Target As Range)
' Roep de macro HideRowsBasedOnFormat aan telkens wanneer het blad verandert.
Verberg rijen op basis van indeling
Einde sub
Sub HideRijenBasedOnFormat()
Dim rng als bereik, cel als bereik
Dim ws As-werkblad
Dim condFormat als FormatCondition
' Wijzig 'Blad1' in de naam van uw blad
Set ws =ThisWorkbook.Sheets("Blad1")
' Wijzig A1:Z100 naar het werkelijke bereik waar de voorwaardelijke opmaak wordt toegepast
Stel rng =ws.Range("A1:Z100") in
' Loop door elke cel in het bereik
Voor elke cel in rng.Rows
'Ga ervan uit dat je je in eerste instantie niet verstopt
cel.Verborgen =Onwaar
'Loop door alle voorwaardelijke formaten
Voor elke condFormat In cell.FormatConditions
Als condFormat.Type =xlExpression Dan
'Evalueer de formule, als het waar is, verberg het dan
If ws.Evaluate(condFormat.Formula1) Dan
cel.Verborgen =Waar
Afsluiten voor
Einde Als
Einde Als
Volgende condFormat
Volgende cel
Einde sub
Sub ToonAlleRijen()
Dim ws As-werkblad
' Wijzig 'Blad1' in de naam van uw blad
Set ws =ThisWorkbook.Sheets("Blad1")
ws.Rows.Hidden =Onwaar
Einde sub
```
* Belangrijk: Vervang `"Blad1"` en `"A1:Z100"` door uw werkelijke bladnaam en gegevensbereik, zoals voorheen.
Wanneer u nu een waarde op het blad wijzigt, wordt de macro `HideRowsBasedOnFormat` automatisch uitgevoerd, waardoor alle rijen die voldoen aan de criteria voor voorwaardelijke opmaak opnieuw worden verborgen.
Vergeet niet om uw Excel-bestand op te slaan als een werkmap met macro's (.xlsm) om de VBA-code te behouden.
Deze aanpak biedt een flexibele manier om rijen in Excel dynamisch te "verbergen" op basis van een formule, hoewel hiervoor zowel voorwaardelijke opmaak als VBA nodig is. Kies de methode die het beste bij uw behoeften en comfortniveau past met VBA. De eenvoudigere, door knoppen geactiveerde macro is vaak een goed startpunt. |