logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

VBA Excel - zaznaczanie TextBox'a we Frame nie działa

marek003 12 Maj 2010 20:53 2821 5
REKLAMA
  • #1 8068171
    marek003
    Poziom 40  
    Posty: 4603
    Pomógł: 799
    Ocena: 483
    Mam kod sprawdzający czy wpisana wartość w textbox jest liczbą (textbox umieszczony bezpośrednio na forms o nazwie Dane). Jeżeli nie jest, "nie wypuszcza" z textbox'a dopóki się nie poprawi danej.

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If IsNumeric(Dane.TextBox1.Value) = False Then
    MsgBox "popraw"
    Cancel = True
    Dane.TextBox1.SelStart = 0
    Dane.TextBox1.SelLength = Dane.TextBox1.TextLength
    End If
    End Sub


    Kłopot w tym że jak umieszczę textbox w ramce np Frame1 powyższy kod przestaje działać (przycisk2).

    W samej ramce jeżeli poruszam się pomiędzy textbox'ami (przycisk3) sprawdzanie działa, jednak jeżeli wychodzę poza ramkę (opuszczam ramkę) "TextBox1_Exit" nie "uruchamia się" i przepuszcza błąd, a przecież opuszczam textbox.

    Co jest nie tak?

    Nie chcę za bardzo powielać powyższego kodu dla Frame1_Exit. W dodatku dla każdego textbox'a znajdującego się ramce trzeba by było przepisać kod, a zamierzam docelowo mieć ok 10 textboxów w jednej ramce a ramek 3. Może jest inne wyjście?
    Załączniki:
    • Zeszyt1.xls (43 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #2 8069128
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Ramka jest kontenerem dla kontrolek. Zdarzenia pól tekstowych będą działać wewnątrz, ale wyjście poza ramkę to zdarzenie ramki (Frame_Exit), które należałoby w tym przypadku oprogramować. Do kontrolek wewnątrz przy takim zdarzeniu odwołujesz się z poziomu parent: Frame1.Controls(indeks/nazwa). Coś jak z podformularzami w Access'ie.

    Zastanów się czy konieczne jest umieszczenie części pól tekstowych w ramce. Zdecydowanie nie jest to najwygodniejsze w przypadku programowania zdarzeń. Może lepiej (prościej) wstawić wytrawiony, przejrzysty Label...
  • REKLAMA
  • #3 8072448
    marek003
    Poziom 40  
    Posty: 4603
    Pomógł: 799
    Ocena: 483
    Rzeczywiście Label mi wystarczy.
    A na marginesie można do VBA excela (do kontrolek) dodać jakieś elementy rysunku np. linia, okrąg prostokąt itp.?
  • REKLAMA
  • #4 8073755
    walek33
    Poziom 29  
    Posty: 1015
    Pomógł: 132
    Ocena: 81
    Czy chodziło Ci o taki wynik?
    VBA Excel - zaznaczanie TextBox'a we Frame nie działa
  • REKLAMA
  • #5 8073878
    marek003
    Poziom 40  
    Posty: 4603
    Pomógł: 799
    Ocena: 483
    Między innymi właśnie o to.
    Chodzi mi o możliwość wprowadzenia właśnie elementów rysunkowych - dla "upiększenia" okienka. A jakoś nie mogę znaleźć linii, prostokątów czy okręgów w VBA excela przy tworzeniu Forms .
  • #6 8073929
    walek33
    Poziom 29  
    Posty: 1015
    Pomógł: 132
    Ocena: 81
    Ja też kopię, bo temat mnie zaciekawił i... nie ma nic konkretnego. To co widać na rysunku to użycie image z załadowanym przezroczystym obrazkiem kółka w gif-ie. Nie jest to może super rozwiązanie, ale zastępczo może być.
REKLAMA