• 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 rijen verbergen obv 2 voorwaarden in verschillende kolom

Status
Niet open voor verdere reacties.

Tiene91

Gebruiker
Lid geworden
21 nov 2017
Berichten
51
Dag,

Ik wil een macro toevoegen aan een bestand waarin projecten staan vermeld.
Nu wordt in kolom B weergegeven de status (onderhanden/afgewerkt), daarnaast staat in kolom U het openstaande bedrag van de reeds verzonden facturen.

Dit zijn de kolommen waar mijn voorwaarden in plaatsvinden.

Wat ik wil is het volgende in het bereik van rij 2:600
Als in kolom B bij een bepaald project "Afgewerkt" is ingevuld én in kolom U is het bedrag dat nog openstaat €0,00
Dan wil ik dat de hele rij niet zichtbaar meer is, verborgen maken.

Nu lukt me dit wel op 1 enkele voorwaarde met onderstaande macro:

Sub SelectieRijenVerbergen()
Dim c As Range

For Each c In Range("U2:U600").Rows
If c.Value = 0 Then
c.EntireRow.Hidden = True
End If
Next

End Sub

Maar zoals bovenstaand gezegd, er moet de voorwaarde bijkomen dat in kolom B "afgewerkt" staat.

Iemand die mij hierbij kan helpen?
BVD
 
zo?

Code:
Sub SelectieRijenVerbergen()
 Dim c As Range

 For Each c In Range("U2:U600").Rows
    If c.Value = 0 And Cells(c.Row, 2).Value = "Afgewerkt" Then c.EntireRow.Hidden = True
 Next
End Sub
 
Precies, dit is wat ik zocht. Bedankt hiervoor.
Het duurt helaas wel lang tot de macro het bereik gecontroleerd heeft.
En nu ik toch bezig ben met vragen... Is het ook mogelijk dat dit sneller kan met een andere code ofzo? Want hoe sneller hoe beter natuurlijk :)
 
Werkt dit beter?
Code:
Sub SelectieRijenVerbergen()
Application.ScreenUpdating = False
    For Each c In Range("U2:U600").Rows
        If c.Value = 0 And Cells(c.Row, 2).Value = "Afgewerkt" Then c.EntireRow.Hidden = True
    Next
Application.ScreenUpdating = True
End Sub
 
Volgens mij is het filter hiervoor uitgevonden.
 
Deze werkt nog beter ja, dank hiervoor.

Klopt VenA, maar dan moet ik 2 handelingen doen ipv 1. Voor mijzelf maakt het niet zo heel veel uit, maar ik werk niet heel veel met het bestand, moet het alleen iets optimaliseren. M'n collega's (die leken zijn op gebied van excel in vergelijking met mij), moeten er makkelijk mee kunnen werken.
Nu kan ik een knop toevoegen om deze macro uit te voeren en is het een stukje makkelijker voor ze.
 
Ook die 2 handelingen kan je met een macro doen.

Code:
Sub VenA()
  Range("F2") = "=NOT(AND(A2=0,B2=""Afgewerkt""))"
  Cells(1).CurrentRegion.AdvancedFilter 1, Range("F1:F2")
  Range("F2").Clear
End Sub

Bij gebrek aan een voorbeeldbestandje zelf maar een bestandje gemaakt.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan