|
Vis/skjul side med hændelseOpgaven her er at vise/skjule en side regnearket, når et bestemt forhold optræder. I dette tilfælde når en celle får værdien 0. Værdien opnås gennem beregninger på tal i et andet ark, men hvor tallene befinder sig har ingen praktisk betydning for løsningen.For at automatiserer vis/skjul ewr man nødt til at benytte sig af en hændelse, og Worksheet_Change kan ikke bruges, da den kun udløses ved en manuel rettelse i arket. I stedet anvendes Worksheet_Calculate, som udløses hver gang, der udføres beregninger i arket. Mappen, der skal bruges indeholder minimum tre ark. Det ark, som celle B2 findes i. Et ark ved navn Alle og et ark ved navn Ingen data. Sidstnævnte ark er som udgangspunkt skjult. Logikken er, at hvis værdien i B2 i det relevante ark bliver 0, skal arket Ingen Data vises i mappen og være aktivt på skærmen. Er værdien forskellig fra 0, skal arket være skjult og arket Alle skal være aktivt. I eksemplet står de tal, der påvirker formlen i B2 i arket Alle, men de kunne lige så godt stå alle andre steder. Når arket Alle vises, skal tallene i området H10 til og med H1000 sorteres i stigende orden. Nedenstående kode løser problemet Private Sub
Worksheet_Calculate() Skal funktionen i stedet for udføres, ved manuel indtastning, kan koden i stedet lægges på Worksheet_Change hændelsen. Her bør man dog tilføje denne linje som den første i koden If IsEmpty(Range("B2")) Then Exit Sub for at forhindre at arket "Ingen data" vises, når man slettet indholdet af B2. |