Vraag


Acties:
  • 0 Henk 'm!

  • vandermark
  • Registratie: Augustus 2005
  • Laatst online: 09:26
Binnen Excel wil ik een macro inzetten die rijen verbergt wanneer in twee columns D en E de waarde op '0' staat. Ik heb hier eea voor uitgezocht maar ik ben nu zover dat de rij wordt verborgen wanneer D of E in een rij op '0' staat terwijl het moet dus en zijn.

Dit is de macro die ik nu heb:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub VerbergRijenMet0()
'
' VerbergRijenMet0 Macro
' Verbergt rijen met werkzaamheden die niet zijn opgenomen
'
' Sneltoets: Ctrl+e
'
Dim HideRng As Range


Set HideRng = Range("D1:E233")

For Each Trg In HideRng

        

        If Trg.Value = "0" Then

                Trg.EntireRow.Hidden = True

        End If

        

Next Trg

End Sub


Kunnen jullie me verder helpen, ik moet dus twee ranges aanwijzen en een 'AND' regel formuleren maar ik kan geen goede voorbeelden vinden.

STRAVA | Panasonic 5kW J Monoblock

Beste antwoord (via vandermark op 24-07-2020 21:19)


  • coop
  • Registratie: Augustus 2005
  • Laatst online: 08-10 19:03
Probeer dit eens.

code:
1
2
3
4
5
6
7
Dim HideRng As Range
Set HideRng = Range("D1:E233")
For Each Trg In HideRng.Rows
    If Cells(Trg.Row, 4) = 0 And Cells(Trg.Row, 5) = 0 Then
        Trg.Hidden = True
    End If
Next Trg


Let op dat een lege cel binnen Excel ook als 0 wordt gezien. Dus als dat niet de bedoeling is, moet je ook een check op 'not isempty(cell)' doen in de if statement.

[ Voor 26% gewijzigd door coop op 21-07-2020 09:17 ]

Alle reacties


Acties:
  • Beste antwoord
  • +2 Henk 'm!

  • coop
  • Registratie: Augustus 2005
  • Laatst online: 08-10 19:03
Probeer dit eens.

code:
1
2
3
4
5
6
7
Dim HideRng As Range
Set HideRng = Range("D1:E233")
For Each Trg In HideRng.Rows
    If Cells(Trg.Row, 4) = 0 And Cells(Trg.Row, 5) = 0 Then
        Trg.Hidden = True
    End If
Next Trg


Let op dat een lege cel binnen Excel ook als 0 wordt gezien. Dus als dat niet de bedoeling is, moet je ook een check op 'not isempty(cell)' doen in de if statement.

[ Voor 26% gewijzigd door coop op 21-07-2020 09:17 ]


Acties:
  • 0 Henk 'm!

  • vandermark
  • Registratie: Augustus 2005
  • Laatst online: 09:26
Tx! Hier kom ik zeker verder mee

STRAVA | Panasonic 5kW J Monoblock


Acties:
  • 0 Henk 'm!

  • vandermark
  • Registratie: Augustus 2005
  • Laatst online: 09:26
coop schreef op dinsdag 21 juli 2020 @ 09:15:
Probeer dit eens.

code:
1
2
3
4
5
6
7
Dim HideRng As Range
Set HideRng = Range("D1:E233")
For Each Trg In HideRng.Rows
    If Cells(Trg.Row, 4) = 0 And Cells(Trg.Row, 5) = 0 Then
        Trg.Hidden = True
    End If
Next Trg


Let op dat een lege cel binnen Excel ook als 0 wordt gezien. Dus als dat niet de bedoeling is, moet je ook een check op 'not isempty(cell)' doen in de if statement.
Hij doet het goed qua twee nullen maar ook lege rijen worden verborgen, heb dus inderdaad de 'not isempty'nodig. Daar kon ik niet verder mee, hoe moet ik onderstaande aanpassen?

code:
1
2
3
4
5
6
7
Dim HideRng As Range
Set HideRng = Range("D14:E233")
For Each Trg In HideRng.Rows
    If Cells(Trg.Row, 4) = 0 And Cells(Trg.Row, 5) = 0 And Not IsEmpty(Trg.Row) Then
        Trg.Hidden = True
    End If
Next Trg

STRAVA | Panasonic 5kW J Monoblock


Acties:
  • +1 Henk 'm!

  • coop
  • Registratie: Augustus 2005
  • Laatst online: 08-10 19:03
vandermark schreef op woensdag 22 juli 2020 @ 13:03:
[...]


Hij doet het goed qua twee nullen maar ook lege rijen worden verborgen, heb dus inderdaad de 'not isempty'nodig. Daar kon ik niet verder mee, hoe moet ik onderstaande aanpassen?

code:
1
2
3
4
5
6
7
Dim HideRng As Range
Set HideRng = Range("D14:E233")
For Each Trg In HideRng.Rows
    If Cells(Trg.Row, 4) = 0 And Cells(Trg.Row, 5) = 0 And Not IsEmpty(Trg.Row) Then
        Trg.Hidden = True
    End If
Next Trg
In dat geval is het eigenlijk makkelijker om Excel op te dragen alleen naar 0 te zoeken. Pas in mijn originele antwoord de 0 aan naar "0" en Excel zou alleen naar de waarde 0 moeten kijken en niet naar missende waardes.
Indien je wel met Not IsEmpty() wil werken in de toekomst, zou je die moeten toepassen op beide cellen met Not IsEmpty(Cells(Trg.Row, [4 of 5])).

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
@vandermark,
Hou er in de macro rekening mee (indien nodig) om verborgen rijen weer zichtbaar te maken.

[ Voor 12% gewijzigd door dix-neuf op 23-07-2020 10:17 ]


Acties:
  • 0 Henk 'm!

  • vandermark
  • Registratie: Augustus 2005
  • Laatst online: 09:26
dix-neuf schreef op donderdag 23 juli 2020 @ 10:17:
@vandermark,
Hou er in de macro rekening mee (indien nodig) om verborgen rijen weer zichtbaar te maken.
Zekers, daar heb ik al een knop voor, die was vrij eenvoudig maar in praktijk ook nodig.

STRAVA | Panasonic 5kW J Monoblock

Pagina: 1