Meerdere effecten IF commando

Status
Niet open voor verdere reacties.

hichelay

Gebruiker
Lid geworden
6 apr 2018
Berichten
10
Dag allemaal,

Ik zit met het volgende probleem. Ik ben een echte noob wat betreft VBA in Excel, maar de logica is, vind ik, prima te begrijpen.

Het volgende: F8 is een cel met gegevensvalidatie, alleen "Ja" en "Nee" zijn mogelijk. Indien F8 "Ja" is, dan worden rij 10 t/m 26 verborgen. Als F8 "Nee" is, moeten rij 10 t/m 26 dus niet zijn verborgen. Tot zover ben ik gekomen, dit werkt prima.

Nu wil ik een tweede effect toevoegen als F8 "Nee" is, namelijk dat ook cel F27 "Nee" wordt. Ook
F27 heeft gegevensvalidatie, alleen "Ja" of "Nee" zijn mogelijk.

Dit is de code die ik nu heb en wat werkt:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("F8").Value = "Ja" Then
Rows("10:26").EntireRow.Hidden = True
ElseIf Range("F8").Value = "Nee" Then
Rows("10:26").EntireRow.Hidden = False

End If

If Range("F27").Value = "Ja" Then
Rows("29:29").EntireRow.Hidden = True
Rows("31:32").EntireRow.Hidden = True
ElseIf Range("F27").Value = "Nee" Then
Rows("29:29").EntireRow.Hidden = False
Rows("31:32").EntireRow.Hidden = False

End If
End Sub

Ik heb al geprobeerd toe te voegen onder Rows("10:26").EntireRow.Hidden = False:

Range("F27").Value = "Nee"

en

Range("F8").Select

en dan de commando's voor copy, select F27 en paste.

Als ik nu F8 verander van ja naar nee, lijk ik in een soort loop te komen en geeft VBA aan dat er een fout zou moeten zitten in het stukje Rows("10:26").EntireRow.Hidden = False.

Wat doe ik toch verkeerd, zo moeilijk kan het niet zijn?

Alvast bedankt!
 
Welkom bij Helpmij :)

Je kan beter even een voorbeeld documentje plaatsen.
Dan wordt je sneller en beter geholpen.
 
Bedankt, goeie!

Hier bij dit bericht bijgevoegd.
 

Bijlagen

  • Kopie van Formulier Lift nieuw project.xlsm
    21,5 KB · Weergaven: 48
Ik begrijp niet helemaal wat je wil bereiken. Voor het verbergen of zichtbaar maken van de rijen lijkt mij dit voldoende
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Rows("10:26").Hidden = Range("D8") = "Ja"
  Range("29:29,31:32").EntireRow.Hidden = Range("D8") = "Nee"
  Range("29:29,31:32").EntireRow.Hidden = Range("D27") = "Ja"
End Sub

De samengevoegde cellen met voorwaardelijke opmaak hebben geen nut (en geven vaak problemen) dus maar uit het bestandje gehaald.

Volgens mij kan je in de naam van een Sub beter geen leestekens gebruiken. Voor het kopiëren van de adresgegevens volstaat dit.
Code:
Sub VenA()
  Range("C20:E21") = Range("C14:E15").Value
End Sub
 

Bijlagen

  • Formulier Lift nieuw project.xlsb
    18,6 KB · Weergaven: 39
Laatst bewerkt:
Bedankt voor de reacties, sorry voor mijn late reactie!

Ik heb het inmiddels opgelost op een andere manier, namelijk door meerdere scenario's weer te geven als F8 "Ja" is of "Nee", zodat die al bepaalt welke rijen wel of niet zichtbaar zijn. Hier de code:

Code:
If Range("F8").Value = "Ja" And Range("F27").Value = "Ja" Then
        Rows("27:28").EntireRow.Hidden = False
        Rows("29").EntireRow.Hidden = True
        Rows("31:33").EntireRow.Hidden = True
    ElseIf Range("F8").Value = "Ja" Then
        Rows("27:28").EntireRow.Hidden = False
        Rows("29").EntireRow.Hidden = True
        Rows("31:33").EntireRow.Hidden = False
    ElseIf Range("F8").Value = "Nee" Then
        Rows("27:28").EntireRow.Hidden = True
        Rows("29").EntireRow.Hidden = False
        Rows("31:33").EntireRow.Hidden = False
    ElseIf Range("F8").Value = "Nee" And Range("F27").Value = "Ja" Then
        Rows("27:28").EntireRow.Hidden = True
        Rows("29").EntireRow.Hidden = False
        Rows("31:33").EntireRow.Hidden = False
    ElseIf Range("F27").Value = "Nee" Then
        Rows("27:28").EntireRow.Hidden = False
        Rows("29").EntireRow.Hidden = False
        Rows("31:33").EntireRow.Hidden = False
         
    End If
 
Laatst bewerkt:
Plaats code svp tussen codetags voor de leesbaarheid. Jouw andere manier is nogal omslachtig.
 
Jouw code kan tot 2 regels gereduceerd worden als je gebruik maakt van de aangereikte suggesties in dit forum (waarom anders de vraag gesteld ?)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan