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

regels verbergen / zichtbaar maken door waarde in cel

Status
Niet open voor verdere reacties.

W Bloemendal

Gebruiker
Lid geworden
28 jan 2001
Berichten
503
Ik heb de volgende code
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Row = 18 And Target.Column = 1 And Target.Value = "1" Then Rows("19:26").EntireRow.Hidden = True
       If Target.Row = 18 And Target.Column = 1 And Target.Value = "0" Then Rows("19:26").EntireRow.Hidden = False
End Sub

Als ik in cel A18 een 1 zet dan verdwijnen regels 19-26 als ik er dan een 0 neer zet komen de regels niet terug.
Als ik de regels handmatig zichtbaar maak en ik geef weer een 1 in dan verdwijnen de regels ook niet meer.

Wat is de fout.

Wim
 
De fout zit hem hoogstwaarschijnlijk in het feit dat je eens "1" ingeeft en een keer 1.
1 als tekst is absoluut niet gelijk aan 1 als cijfer voor Excel
 
Probeer hem eens zo:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 18 And Target.Column = 1 Then
        Rows("19:26").EntireRow.Hidden = IIf(Val(Target.Value), True, False)
    End If
End Sub
 
Ik heb in de code de aanhalingstekens weggehaald bij 1 en 0 nu werkt het wel als ik a18 hand matig invoer.
Maar als ik d.m.v een formule A18 0 ofg 1 maak werkt het niet.

wim


Edmoor bovenstaande is ook bij je code
 
Laatst bewerkt:
Ja als je via die formule "1" of "0" laat ingeven blijf je sukkelen natuurlijk.
Je moet kiezen ofwel cijfers ofwel tekst.
 
Ik had in A18 de formule
Code:
=ALS(B18="Maatvoering niet ingeven";1;0)

Nu heb ik de code met tekst veranderd

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    
     If Target.Row = 18 And Target.Column = 1 And Target.Value = "Maatvoering niet ingeven" Then Rows("19:26").EntireRow.Hidden = True
     If Target.Row = 18 And Target.Column = 1 And Target.Value = "Maatvoering wel ingeven" Then Rows("19:26").EntireRow.Hidden = False
End Sub

maar dan werkt het ook niet


Wim
 
Dat is dus inderdaad heel wat anders. Doe deze maar eens in het document dat je hier plaatste.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Verberg As Boolean
    If Target.Address = "$B$2" Then
        Select Case Val(Target.Value)
            Case 1 To 6: Verberg = True
            Case Else: Verberg = False
        End Select
        Rows("19:26").EntireRow.Hidden = Verberg
    End If
End Sub

De functies op rij 18 en het bereik "lijst" heb je dan niet nodig.
 
Laatst bewerkt:
Edmoor de eerste werkt niet want ik had een voorbeeld lijstje gegeven van 1-6 maar in werkelijkheid zin het 1300 nummers en ook nog niet op een volgend. als er een ontbrekend nummer in B2 in gevoerd wordt dan moet B19-B26 ook in gevuld worden en anders niet.

De 2de werkt wel goed.

Als ik allen gegevens in zou moeten voeren dan was dit alles niet nodig, maar er zijn meer personen die gegevens moeten kunnen invoeren.

Edmoor en cobbe bedankt voor het mee denken.
 
Dus weer iets anders dan het voorbeeld. Dan kan je geen exact werkende code verwachten. Je kan dan alleen de voorbeelden gebruiken en aanpassen aan je eigen situatie.

Daarom zei ik ook, test het in het document dat je plaatste, daarin werken beide voorbeelden gewoon goed.
Het voorbeeld zoals het nu in #9 staat is eenvoudig aan je 1300 nummers aan te passen.
Als je laat weten bij welke van die 1300 de regels verborgen moeten worden en bij welke niet, is daar wellicht iets eenvoudigs voor te verzinnen.
 
Laatst bewerkt:
Het gaat ook niet om het aantal maar om de nummers zelf. Die formules heb je in ieder geval niet nodig bij het voorbeeld in #9. Zet bijvoorbeeld de nummers waarbij de regels verborgen moeten worden in het benoemde bereik "lijst" en gebruik dan de volgende macro:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Verberg As Boolean
    If Target.Address = "$B$2" Then
        If WorksheetFunction.CountIf(Range("lijst"), Target.Value) > 0 Then
            Verberg = True
        Else
            Verberg = False
        End If
        Rows("19:26").EntireRow.Hidden = Verberg
    End If
End Sub
 
Laatst bewerkt:
ed moor eigenlijk is mijn bestand zo als er een ontbreken nummer ingegeven wordt dan moet regel 19-26 zichtbaar zijn, en anders moeten de regels verborgen worden zodat deze dan niet ingevoerd kunnen worden.

wim.
 
Als je doet wat in #13 staat doet hij precies wat je hebt aangegeven.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan