Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel] [VBA] Bij Nee tabel onzichtbaar maken

Pagina: 1
Acties:

  • gerjaknut
  • Registratie: Maart 2010
  • Laatst online: 29-04 07:31
Voor mijn werk willen we in excel gemaakte checklisten updaten. Nu is het in dat document zo dat als er in een cel Nee wordt gezet dat de cellen daaronder niet meer van toepassing zijn.

Ik ben even aan het stoeien geweest met VBA maar kom er even niet uit. Hieronder even simpel mijn gedachtegang:

Sub BijNeeVerbergen()
'
' BijNeeVerbergen Macro
'

'
If cell("A1").Value = Nee Then

Rows("10:28").Select
Selection.EntireRow.Hidden = True
End Sub

Uiteraard mag andersom ook (bij ja zichtbaar worden). Eventueel is hier een Else aan toe te voegen zodat zodra er geen Nee wordt ingevuld alles zichtbaar is.

Momenteel geeft deze methode de foutcode:

Compileerfout:

Sub of Function is niet gedefinieerd.

Mijn vraag:

Waar ga ik de fout in? Denk ik te simpel of denk ik verkeerd?

  • MikeVM
  • Registratie: Mei 2007
  • Laatst online: 09-11 19:59

MikeVM

- Baloo -

je mag je puntkommas niet vergeten denk ik
Rows("10:28").Select;
Selection.EntireRow.Hidden = True;

\\ Baloo \\ Mijn iRacing profiel


  • pedorus
  • Registratie: Januari 2008
  • Niet online
Volgens mij ontbreekt er een "End If". :p
MikeVM schreef op woensdag 07 november 2012 @ 21:58:
je mag je puntkommas niet vergeten denk ik
WTF, dit is VBA, daar doen we niet aan puntkommas ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


  • gerjaknut
  • Registratie: Maart 2010
  • Laatst online: 29-04 07:31
Het proces van verbergen is een opgenomen macro dus dat zou moeten kloppen nu de bouw eromheen nog. Ik miste inderdaad nog een End if maar dat lost de foutmelding nog niet op

  • MikeVM
  • Registratie: Mei 2007
  • Laatst online: 09-11 19:59

MikeVM

- Baloo -

moet nee niet tussen quotes?

\\ Baloo \\ Mijn iRacing profiel


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Als je probeert te compileren zul je zien dat het woordje cell gemarkeerd wordt. En idd, VBA kent geen enkele functie of rangeaanduiding 'cell'.
gerjaknut schreef op woensdag 07 november 2012 @ 22:18:
Het proces van verbergen is een opgenomen macro dus dat zou moeten kloppen nu de bouw eromheen nog. Ik miste inderdaad nog een End if maar dat lost de foutmelding nog niet op
Dat is wel heel optimistisch :) Die macro levert allesbehalve schone code. Het doet wat het doet, en daar is alles mij gezegd. Volslagen overbodig hier is bijvoorbeeld al de eerste select en dan verdergaan met selection. Weg ermee. Dan iig option explicit ervoor,basale foutafhandeling erbij en je hele macro, incl if then constructie wordt:

Visual Basic:
1
2
3
4
5
6
7
8
9
option explicit

Sub ToonGebied
on error goto fout
Rows("10:28").Hidden = (cells(1,1) = "Nee")
exit sub
fout:
msgbox err.description
End sub

[ Voor 73% gewijzigd door Lustucru op 09-11-2012 00:47 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • gerjaknut
  • Registratie: Maart 2010
  • Laatst online: 29-04 07:31
Allereerst mijn excuses voor de late reactie. Bedankt Lustucru. Deze code werkt prima:)

Er is alleen nog een klein puntje. De macro moet elke keer handmatig uitgevoerd worden. Is er een mogelijkheid dat bijvoorbeeld elke seconde de macro wordt uitgevoerd? of bij elke linker muisklik? dan kunnen we de checklist verder upgraden

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Het meest logisch lijkt me om dit in
Visual Basic:
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
   'code hier
End Sub

Van de juiste sheet te zetten binnen je vbaproject. De code wordt dan na iedere wijziging van die sheet aangeroepen.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten

Pagina: 1