Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak stworzyć pętle For dla CheckBoxa

iksera 12 Sty 2012 14:01 1898 13
  • #1 12 Sty 2012 14:01
    iksera
    Poziom 7  

    Witam,

    mam pewien problem chciałem zrobić pętle dla CheckBoxów.

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Jak będę miał tych CheckBoxów 100 to kod programu będzie miał kilka stron.
    Program powinien chować wiersz jeżeli CheckBox jest odznaczony, a pokazywać jeżeli jest zaznaczony.

    PS. z góry dziękuję za pomoc.

    Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. - arnoldziq

    0 13
  • Pomocny post
    #2 12 Sty 2012 14:14
    mickpr
    Poziom 39  

    iksera napisał:
    ....Jak będę miał tych CheckBoxów 100 to kod programu będzie miał kilka stron.
    Program powinien chować wiersz jeżeli CheckBox jest odznaczony, a pokazywać jeżeli jest zaznaczony.

    PS. z góry dziękuję za pomoc.

    Rozumiem, że Delphi?
    Wykorzystaj kolekcje Controls formularza.

    A to:
    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    Można zastąpić :
    Kod: delphi
    Zaloguj się, aby zobaczyć kod

    0
  • #3 12 Sty 2012 14:48
    iksera
    Poziom 7  

    Sorki nie dopisałem chodzi mi o programowanie Excela w VBA!!!

    0
  • Pomocny post
    #4 12 Sty 2012 14:53
    mickpr
    Poziom 39  

    iksera napisał:
    Sorki nie dopisałem chodzi mi o programowanie Excela w VBA!!!

    te uwagi będą również trafne w tym przypadku.

    0
  • #5 12 Sty 2012 15:51
    iksera
    Poziom 7  

    Zadziałało!!!

    Rows("2").Hidden = CheckBox1.Value

    Teraz mam 11 CheckBoxów to nie jest duży problem żeby to wpisywać, a jeżeli dodam kolejne to będę musiał edytować kod. Chodzi mi o pętle która pozwoli mi dodawać CheckBoxy i żebym nie musiał bym ingerować w kod.

    0
  • #6 12 Sty 2012 15:56
    mickpr
    Poziom 39  

    iksera napisał:
    Zadziałało!!!

    Rows("2").Hidden = CheckBox1.Value

    Teraz mam 11 CheckBoxów to nie jest duży problem żeby to wpisywać, a jeżeli dodam kolejne to będę musiał edytować kod. Chodzi mi o pętle która pozwoli mi dodawać CheckBoxy i żebym nie musiał bym ingerować w kod.

    Checkbox jest kontrolką...
    Formularz zawiera w sobie kolekcję kontrolek.
    W pętli "przeleć" wszystkie kontrolki które są checkboxami...
    i na podstawie ich jakiejś właściwości ustaw sobie ukryte wiersze lub nie.

    0
  • #7 13 Sty 2012 13:48
    iksera
    Poziom 7  

    Sorki!!
    Ale jestem słabym programistą nie za bardzo wiem jak to zrobić.

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Dla wierszy to sobie poradziłem ale dla CheckBoxa to już nie wiem.

    Jak zrobię:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    CheckBoxy są tylko w jednej kolumnie może jakoś się da sprawdzać po kolumnie. Nie wiem.

    Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. - arnoldziq

    0
  • Pomocny post
    #8 13 Sty 2012 15:51
    beluosus
    Poziom 25  

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Jeśli CheckBox nazywa się CheckBox3 to zostanie ukryty wiersz nr 3. Co do tych Twoich zagnieżdżonych pętli to nie mam pojęcia o co Ci może chodzić.

    0
  • #9 18 Sty 2012 09:21
    iksera
    Poziom 7  

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    CheckBoxy mam bezpośrednio w Excelu nie na formie więc musiałem zmienić deklarację CTRL. Mam nadzieję że dobrze. Lecz niestety to nie działa nie ma żadnego błędu ale też nie ukrywają się wiersze.

    0
  • Pomocny post
    #10 18 Sty 2012 23:26
    adamas_nt
    Moderator Programowanie

    A spróbuj

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    lub
    Code:
     If left(ctrl.Name, 8) = "CheckBox" Then

    0
  • #11 19 Sty 2012 08:19
    iksera
    Poziom 7  

    Zadziałało tylko odwrotnie jak jest zaptaszkowany Checkbox to chowa wiersz a powinien chować niezaptaszkowane.

    Poradziłem sobie. Dopisałem do kodu False i działa jak należy.

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #12 19 Sty 2012 09:05
    adamas_nt
    Moderator Programowanie

    Zamień

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #13 19 Sty 2012 09:10
    iksera
    Poziom 7  

    Dzięki Adamas_nt!!!

    Może wiesz jak zrobić żeby wiersze zaznaczone się nie chowały tylko wydrukowały?

    0
  • Pomocny post
    #14 19 Sty 2012 09:25
    adamas_nt
    Moderator Programowanie

    Coś w rodzaju

    Code:
    Range("A" & s & ":E" & s).PrintOut
    Cały wiersz (Rows(s)) może nie zmieścić się na jednej stronie...

    0