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.

VBA - Excel - Wprowadzanie danych do UserForm-a

EdwartS 11 Paź 2014 20:48 2019 11
  • #1 11 Paź 2014 20:48
    EdwartS
    Poziom 6  

    Witam, może mi ktoś z tym pomóc a mianowicie mój problem polega na tym że nie wiem jak zdefiniować polecenie tak aby przy pomocy konkretnego UserForma wpisywać dane do drugiego aktywnego UserForma. Sprawa mi się komplikuje i nie wiem jak to ugryźć - chodzi o userform "POLIKOL_Pozycja_1"

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0 11
  • #2 11 Paź 2014 20:56
    JRV
    Specjalista - VBA, Excel

    POLIKOL_Pozycja_1.ComboBox3.Value = analiza.Value

    0
  • #3 11 Paź 2014 21:23
    EdwartS
    Poziom 6  

    Chodzi mi o to aby POLIKOL_Pozycja_1.ComboBox3 był zdefiniowany jako wartość uniwersalna do wprowadzania w innych formularzach np. POLIKOL_Pozycja_2.ComboBox3 itd. :-/ czyli przeszkadza mi POLIKOL_Pozycja_1

    Dodano po 21 [minuty]:

    Sam już nie wiem, to co mi podałeś JRV nie pomaga

    Na każej kategorii jak POLIKOL, ROKAFENOL itd (jest ich w sumie 9) jest pozycji od 1 do 10 a w nich po 22 comboboxy wiec musiał bym utworzyć ok. 1000 szt. UserForm wiec niewiem już jak to zrobić aby było to uniwersalne.

    0
  • #4 11 Paź 2014 23:32
    adamas_nt
    Moderator Programowanie

    Trochę zagmatwany opis.
    Co to jest "analiza" i skąd się bierze? Domyślam się, że jakaś wartość liczbowa. Wynika to z

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    z drugiej strony
    Kod: vb
    Zaloguj się, aby zobaczyć kod
    i tu przestaję rozumieć. Z trzeciej strony, po co tyle tych if'ów i Exit sub'ów? Wystarczy instrukcja z gałęziami:
    If warunek1 then akcja1
    Elseif warunek2 then akcja2
    Elseif warunek3 then akcja3
    Else
        gdy żaden z powyższych - akcja4
    End if

    Napisz jaśniej: jaką wartość chcesz przekazać, w jakim celu i dokąd (dlaczego 1000 formularzy?).

    0
  • #5 12 Paź 2014 05:55
    EdwartS
    Poziom 6  

    Sprawa wyglada tak:

    Uruchomiam formularz POLIKOL_Pozycja_1 lub POLIKOL_Pozycja_2 itd, w którym wypełniam dane w combobox przy pomocy innego formularza (formularz zaciąga dane a raczej text "[A] np. z POLIKOL_Pozycja_1.Combobox3 - wprowadzam te dane za pomocą(też przy użyciu) comboboxa "analiza" używając powyższego kodu ale nie pozwalam wprowadzać innych wartości niż liczba lub tekst "zgodny'.

    Czyli chcę przerzucić dane z jednego formularza do drugiego ale zrobic to w taki sposób aby formularz do wprowadzania danych był elastyczny oraz kontrolował wprowadzaną wartość i nadawał się do przerzucania danych np. w POLIKOL_Pozycja_2, ROKAFENOL_Pozycja_1, itd wszędzie tam gdzie jest aktualnie uruchomiony i wypełniany formularz w polu np. ComboBox3. :-/ (po 22 comboboxy na 80 pozycji)

    0
  • #6 12 Paź 2014 09:45
    adamas_nt
    Moderator Programowanie

    Jakiś diabełek szepce mi do ucha, że można osiągnąć oczekiwany cel znacznie prościej niż to opisujesz ;)

    Wrzuć plik z przykładem (co najmniej trzy takie formularze, włączając główny). "xlsm" spakuj (zip, rar) przed załączeniem.

    Przecież sprawdzić, które są otwarte możesz przez: 'For each ufrm in UserForms'
    Przekazać indeks/wartość combobox'a w takiej pętli, też żaden problem.
    Pytanie: dlaczego używasz aż tylu formularzy? Ile maksymalnie może być (w założeniu) otwartych w jednym momencie?

    0
  • #7 12 Paź 2014 11:13
    EdwartS
    Poziom 6  

    Ok, później ogarnę i wrzucę. A tak na szybko to może być otwarty tylko jeden formularz do którego wprowadzam dane.

    0
  • #8 16 Paź 2014 00:48
    EdwartS
    Poziom 6  

    Witam, chodzi o formant "analiza1_polikol" aby funkcjonował na formantach "POLIKOL_pozycja_1" ,"POLIKOL_pozycja_2", itd. Czyli aby formularz "analiza1_polikol" wklejał w każdym aktualnie aktywnym formularzu w pozycję np. ComboBox3

    adamas_nt napisał:
    Jakiś diabełek szepce mi do ucha, że można osiągnąć oczekiwany cel znacznie prościej niż to opisujesz ;)

    Wrzuć plik z przykładem (co najmniej trzy takie formularze, włączając główny). "xlsm" spakuj (zip, rar) przed załączeniem.

    Przecież sprawdzić, które są otwarte możesz przez: 'For each ufrm in UserForms'
    Przekazać indeks/wartość combobox'a w takiej pętli, też żaden problem.
    Pytanie: dlaczego używasz aż tylu formularzy? Ile maksymalnie może być (w założeniu) otwartych w jednym momencie?

    0
  • Pomocny post
    #9 16 Paź 2014 19:34
    JRV
    Specjalista - VBA, Excel

    Na Twoim przykładzie dla przycisków '< ' a '> ' na arkuszach nie powinna oddzielne makra. Wystarczy dla dwóch.
    Dla '<'

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Dla '>'
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #10 16 Paź 2014 20:00
    EdwartS
    Poziom 6  

    Witam, dzięki wszystkie uwagi są pomocne :-) ale nadal nie umiem tego rozgryźć zagadnienia które poruszyłem wyżej... i coś czuje że polegne niestety ;-/

    0
  • #11 18 Paź 2014 14:32
    EdwartS
    Poziom 6  

    Znajdzie się jakaś pomocna dusza i pomoże przy formancie "analiza1_polikol" tak aby funkcjonował na formantach "POLIKOL_pozycja_1" ,"POLIKOL_pozycja_2", itd. Czyli aby formularz "analiza1_polikol" wklejał w każdym aktualnie aktywnym formularzu w pozycję np. ComboBox3

    0
  • #12 25 Lis 2014 21:17
    EdwartS
    Poziom 6  

    Problem rozwiązany :-) do zamknięcia temat

    0