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/FORMULARZ - Formatowanie pól na formularzu.

ciusma 09 Cze 2015 13:05 1578 1
REKLAMA
  • #1 14757147
    ciusma
    Poziom 9  
    Posty: 5
    Witam,
    Od jakiegoś czasu pracuje nad swoim pliczkiem który ma za zadanie zebrać kilkaset danych i je przeliczyć.
    Teraz postanowiłem dodac do pliku formularz wpisywania tych danych.
    Zorganizowałem go tak, że w kolumnach mam pola textowe do wpisywania danych a podsumy robię polami typu label do których ściagam dane z arkusza kodem
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Generalnie wszystko działa prawie tak jak chcę ale potrzebuje zrobić kilka zmian na których się zatrzymałem:

    1. Jak sformatować komórkę Label1 na cyfrę?
    próbowałem
    Kod: text
    Zaloguj się, aby zobaczyć kod

    format jest ok ale takie rozwiazanie powoduje że nie aktualizują się wartości Label1 w trakcie wpisywania kolejnych danych składowych.

    2. Drugie pytanie dotyczy formatowania pola typu textbox.
    tu użyłem kodu:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Wszystko działa ok tylko muszę ten kod powielić x ilość pól tego typu. Pytanie czy można zapisać ten kod tak aby każdy textbox na używanym formularzu został automatycznie tak sformatowany?

    dziekuję za pomoc
    MS
  • REKLAMA
  • #2 14758604
    marek003
    Poziom 40  
    Posty: 4607
    Pomógł: 801
    Ocena: 487
    Chyba nie do końca rozumiesz "okienka" VBA.
    Zarówno label jak i textbox jest "zawsze" okienkiem "tekstowym" i tego niczym nie zmienisz.
    To co uważasz za formatowanie okienka za pomocą funkcji format w rzeczywistości jest formatem jakiejś danej [przerabianiem jej na tekst] - akurat w twoim wypadku pobranej wcześniej z tego samego okienka.

    Niestety to dotyczy każdego okienka więc jeżeli już, to lepiej wcześniej nadać odpowiedni format danej i dopiero wyświetlić ją w okienku.
    "okienka" w VBA nie działają tak jak komórki w arkuszu.

    A co do aktualizacji: trzeba to przewidzieć w kodzie makra. Makrem Ty piszesz program który ma się wykonać. Jeżeli się nie aktualizuje to znaczy że programista (czyli Ty) tego nie chciał więc się nie aktualizuje - wszystko w porządku i tak ma być.

    Tak mi przyszło jeszcze: jak masz dużo danych to może pętle z nazwami? Tu masz przykład (z moich notatek) - trochę inny ale idee możesz załapać:
    Podstawianie kolejnych numerów w nazwie obiektu
    For n = 1 To 15
    Sheets("Dane").Cells(y, n).Value = Okno.Controls("TextBox" & n).Value
    Next n
REKLAMA