Ik wil graag rijen voorwaardelijk verbergen in Excel 2010. Ik heb wat gezocht op internet en ben er inmiddels achter dat dit enkel met een Macro kan. Hier heb ik helaas geen verstand van, vandaar dat ik jullie hulp in wil schakelen.
Het werkblad waar ik dit wil toepassen (Blad1) staat vol met ALS-formules en verwijzingen naar andere werkbladen. In kolom A staan ALS-formules welke allen een 1 of een 0 terug geven. Wanneer er een 1 gegeven wordt, moet de betreffende rij verborgen worden. Wanneer er in het bestand iets verandert waardoor de 1 weer een 0 wordt, moet de rij weer zichtbaar worden.
Na wat Googlen heb ik de volgende macro gevonden:
Private Sub Worksheet_Calculate()
Dim c As Range
Application.EnableEvents = False
For Each c In Intersect(Columns(1), ActiveSheet.UsedRange)
If Len(c.Value) > 0 And c.Value = 1 Then
c.EntireRow.Hidden = True
Else
c.EntireRow.Hidden = False
End If
Next
Application.EnableEvents = True
End Sub
Ik heb de macro op volgende wijze toegevoegd: rechter muisknop op Blad1 > programmacode weergeven > paste in het invoerveld
De macro doet wat hij moet doen, ik ondervind echter twee problemen:
1. Het bestand wordt er traag van. Iedere keer als ik iets in een cel invoer moet Excel een paar seconden denken voor ik verder kan (ook als de invoer geen enkele invloed heeft op de formules in kolom A).
2. Zodra ik naast dit Excel bestand nog een ander Excel bestand open, krijg ik de volgende foutmelding van Microsoft Visual Basic:
Fout 1004 tijdens uitvoering:
Methode Intersect van object_Global is mislukt
Verdere info die wellicht van belang is:
- Het grootste gedeelte van de werkmap is beveiligd, op een aantal invoercellen na. Sommige van deze invoercellen bevatten keuzelijstjes m.b.v. gegevensvalidatie.
- Het blad bevat een aantal selectievakjes, welke WAAR of ONWAAR terug geven op Blad2.
- Diverse cellen bevatten voorwaardelijke opmaak.
Dus mijn vraag luidt: Hoe moet ik de macro aanpassen om genoemde problemen te verhelpen?
Het werkblad waar ik dit wil toepassen (Blad1) staat vol met ALS-formules en verwijzingen naar andere werkbladen. In kolom A staan ALS-formules welke allen een 1 of een 0 terug geven. Wanneer er een 1 gegeven wordt, moet de betreffende rij verborgen worden. Wanneer er in het bestand iets verandert waardoor de 1 weer een 0 wordt, moet de rij weer zichtbaar worden.
Na wat Googlen heb ik de volgende macro gevonden:
Private Sub Worksheet_Calculate()
Dim c As Range
Application.EnableEvents = False
For Each c In Intersect(Columns(1), ActiveSheet.UsedRange)
If Len(c.Value) > 0 And c.Value = 1 Then
c.EntireRow.Hidden = True
Else
c.EntireRow.Hidden = False
End If
Next
Application.EnableEvents = True
End Sub
Ik heb de macro op volgende wijze toegevoegd: rechter muisknop op Blad1 > programmacode weergeven > paste in het invoerveld
De macro doet wat hij moet doen, ik ondervind echter twee problemen:
1. Het bestand wordt er traag van. Iedere keer als ik iets in een cel invoer moet Excel een paar seconden denken voor ik verder kan (ook als de invoer geen enkele invloed heeft op de formules in kolom A).
2. Zodra ik naast dit Excel bestand nog een ander Excel bestand open, krijg ik de volgende foutmelding van Microsoft Visual Basic:
Fout 1004 tijdens uitvoering:
Methode Intersect van object_Global is mislukt
Verdere info die wellicht van belang is:
- Het grootste gedeelte van de werkmap is beveiligd, op een aantal invoercellen na. Sommige van deze invoercellen bevatten keuzelijstjes m.b.v. gegevensvalidatie.
- Het blad bevat een aantal selectievakjes, welke WAAR of ONWAAR terug geven op Blad2.
- Diverse cellen bevatten voorwaardelijke opmaak.
Dus mijn vraag luidt: Hoe moet ik de macro aanpassen om genoemde problemen te verhelpen?