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

Verborgen tabblad zichtbaar maken op basis van celinhoud

Status
Niet open voor verdere reacties.
Het moet inderdaad B18 zijn, maar dat had ik al aangepast. Ik ken weinig van VBA, maar zo dom ben ik nu ook weer niet ;-)
 
Het was ook niet mijn bedoeling dat te suggereren ;)
 
Door welke cel wordt er getriggert dat B18 veranderd in "OK".
Dan gebruik je de change_event op de cel die de verandering tewege brengt.

Als dat F10 is gebruik je "if target.address = "$F$10" then
 
@HSV:
Die Iif is ook niet nodig.
Code:
Sheets("Stap 2 - Gegevens aanvrager").Visible = Lcase(Range("B20").Value) = "ok"

Inderdaad Ed, terechte opmerking.
 
Ik vrees dat ik er nog niet helemaal uit ben :-)

De code werkt, maar telkens er een berekening plaats vindt (of er een waarde in eender welke cel wordt ingevuld), wordt de code opnieuw geactiveerd. Dit zal inherent zijn aan het calculate-event?

Hoe geraak ik hier rond? Het komt er op neer: zodra tabblad 2 zichtbaar is, hoeft de code niet meer te lopen.

Als ik zelf even al nadenk, zal er iets voor de code moeten komen die een voorwaarde implementeert dat de code niet moet lopen als tabblad 2 al zichtbaar is? (of omgekeerd is misschien beter: dat de code alleen moet lopen als tabblad twee NIET zichtbaar is)

Dit is de huidige code (heb wat cellen veranderd):

Code:
Private Sub Worksheet_Calculate()
  If Range("A15").Value = "OK" Then
    MsgBox "U kan vanaf nu naar tabblad 'Stap 2 - Gegevens aanvrager' gaan"
    Sheets("Stap 2 - Gegevens aanvrager").Visible = True
  Else
    Sheets("Stap 2 - Gegevens aanvrager").Visible = False
  End If
End Sub
 
Zet onder Private Sub
IF Sheets(" Stap 2 - Gegevens aanvrager").Visible = True Then Exit Sub
 
Lees anders #23 nog eens goed.
 
Super! Ik wist dat het kon en hoe het principieel moest, maar het schrijven is nog een ander paar mouwtjes :-)
 
Lees anders #23 nog eens goed.

Mja, maar de cel die ik nu gebruik, is het resultaat van een combinatie van een boel andere cellen en voorwaarden. Het leek me eenvoudiger om een 'algemene OK' te maken, die berekend wordt aan de hand van Excel-formules.
 
Dan maak je gebruik van 'intersect' in de change-event.
Maar als het voor je klaar is.......prima natuurlijk.

Als ik toch geen antwoorden krijg op mijn vragen waarom zou ik ook doorzeuren om het jou te leren of verder te helpen.

Succes verder.
 
Door welke cel wordt er getriggert dat B18 verandert in "OK".
Dan gebruik je de change_event op de cel die de verandering teweeg brengt.

Als dat F10 is gebruik je "if target.address = "$F$10" then

Ik moet de vraag ook begrijpen he :-) Als ik heb goed begrijp, zou dat de code ingewikkelder maken, niet? Het zijn immers een heleboel cellen die via formules B18 op OK brengen.

Een intersect ken ik al helemaal niet, misschien toch eens 'VBA voor dummies' kopen :-)
 
Maar kijk, we leren wel langzaam maar zeker bij. Ondertussen heb ik ervoor kunnen zorgen dat tab 2 weer verdwijnt als iemand in tab 1 opnieuw gegevens verwijdert (waardoor cel niet meer OK is):

Code:
Private Sub Worksheet_Calculate()
  
  If Range("A15").Value = "NOK" Then
  Sheets("Stap 2 - Gegevens aanvrager").Visible = False
  
  End If
  
  If Sheets("Stap 2 - Gegevens aanvrager").Visible = True Then Exit Sub
  
  If Range("A15").Value = "OK" Then
    MsgBox "U kan vanaf nu naar tabblad 'Stap 2 - Gegevens aanvrager' gaan"
    Sheets("Stap 2 - Gegevens aanvrager").Visible = True
  Else
    Sheets("Stap 2 - Gegevens aanvrager").Visible = False
      
  End If
End Sub
 
Je kunt van "HSV" meer leren dan van mij, ik ben en blijf in VBA een amateur.
Ik heb nooit VBA les gehad.
 
Laatst bewerkt:
Och, ik verdien er ook geen cent mee.
We kunnen elkaar dus de hand schudden @EA. :d
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan