Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem triviální makro

Překlopení hodnot buňky z 0 na 1 a naopak můžeš udělat daleko elegantněji, než IFem s testováním, zda je v buňce 0 nebo1, třeba za použití operátoru Mod (Modulo = zbytek po dělení). Pro každou buňku pak stačí napsat 1 řádek:

Range("H7").Value = (Range("H7").Value + 1) Mod 2
Tenhle řádek si pak můžeš dát do samostatné procedury a adresu buňky použiješ jako parametr. Ke každému tlačítko si pak napíšeš obslužnou proceduru, v které budeš volat tu proceduru s adresou buňky, kterou chceš změnit. Pokud budeš chtít jedním tlačítkem změnit obsah více buněk, zavoláš tu pomocnou proceduru vícekrát, vždy s jinou adresou buňky.
Aby to bylo snáze pochopitelné; píšeš:
... např. tlačítko 1 mění hodnotu v buňce H7, tlačítko 2 mění hodnotu v buňce H7 a H9...
Tak přesně tohle řeší následující kód:
Sub Preklop01(Adresa As String)
' Parametr: Adresa buňky (např. "B2", "H7", ...)
' Procedura překlopí obsah předávané buňky z 0 na 1 a naopak
    Range(Adresa).Value = (Range(Adresa).Value + 1) Mod 2
End Sub

Sub Tlacitko1()
' Obsluha Tlačítka 1 - změní obsah buňky H7
    Preklop01 ("H7")
End Sub

Sub Tlacitko2()
' Obsluha Tlačítka 2 - změní obsah buněk H7 a H9
    Preklop01 ("H7")
    Preklop01 ("H9")
End Sub
Při vytváření tlačítek si pak musíš ke každému tlačítku na listu přiřadit odpovídající makro.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny