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

regel verbergen met macro

Status
Niet open voor verdere reacties.
Het criterium (of criteria) wanneer een rij verborgen moet worden of zichtbaar moet zijn is me niet duidelijk.
Als C15 =1: zichtbaar
Als C18 = -2: verbergen

Om welke rijnummers gaat het en wat moet de waarde van de cel zijn om ze zichtbaar dan wel verborgen te doen zijn.
En wat is het criterium om een cel in waarde op te hogen of te doen dalen?
 
Het gaat om de gehele rij C, of anders ongeveer C5 tot C50

En als de waarde lager is dan 0 moet de regel verborgen worden.

Ik zou bijvoorbeeld voor elke regel een aparte macro kunnen maken maar dat zou ik dan ook nog bij andere werkbladen moet doen dus dat zou dan teveel werk worden als ik niet oppas. Dus ik zoek 1 macro die elke celwaarde in het bereik C5:C50 controleert of het lager is dan 0 en deze in dat geval dan ook verbergt.

Hopelijk is het nu iets duidelijker.

Eric
 
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x as Integer
For x = 5 To 50
If Range("C" & x).Value < 0 Then
Rows(x).Hidden = True
End If
Next x
End Sub
 
Thanks, dat is de macro die ik zocht, enkel de else functie ontbrak nog maar die heb ik er zelf aan verzonnen.

Else
Rows(x).Hidden = False'

Klein vraagje of ik de formule goed snap:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x as Integer
Dim y as Integer
For x = 5 To 50
For y = A To Z
If Range(y & x).Value < 0 Then
Rows(x).Hidden = True
Columns(y).Hidden = True
Else
Rows(x).Hidden = False
Columns(y).Hidden = False
End If
Next x
Next y
End Sub

In dit geval zou als een cel een waarde kleiner dan 0 is zowel de rij als betreffende kolom verborgen worden in het bereik A5:Z50.

Vriendelijk bedankt voor de hulp, ben nu al een stuk verder.
 
Eric,
aub je macro wel even testen voor je hem op het forum plaatst, dan had je gemerkt dat er fouten in zaten (for -next lussen verkeerd genest, range(...) onjuist, "A to Z" kan niet).
Op jouw manier kan wel, maar dan moet je 2 afzonderlijke if's gebruiken, 1 voor de rijen en 1 voor de kolommen, anders komen de opdrachten met elkaar in conflict. Ik heb nu voor een iets andere benadering gekozen, die niet noodzakelijk beter is. Maar probeer beide oplossingen maar eens en als je verschil in snelheid merkt, neem dan de snelste.

Dim x As Integer
For x = 5 To 50
If WorksheetFunction.CountIf(Range(Cells(x, 1), Cells(x, 26)), "< 0") > 0 Then
Rows(x).Hidden = True
Else
Rows(x).Hidden = False
End If
Next x
For x = 1 To 26
If WorksheetFunction.CountIf(Range(Cells(1, x), Cells(50, x)), "< 0") > 0 Then
Columns(x).Hidden = True
Else
Columns(x).Hidden = False
End If
Next x


Franç.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan