Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[VBA] Przenoszenie danych między formularzami

#1
[VBA] Przenoszenie danych między formularzami
Witam,

Mam taki problem, otóż piszę program, który ma za zadanie obliczyć pewną przekładnie, pod przyciskiem oblicz wprowadziłem wszystkie potrzebne wzory itd. Wszystko działa i wprowadza mi wyniki do komórek, natomiast chciałbym dodać przycisk "Wyniki", który otworzy mi nowy UserForm i w ListBox wyświetli mi uzyskane wynik. Jednak nie wiem jak to zrobić, pytanie czy trzeba upublicznić klasę i wtedy jakoś wysyłać to?

Dodatkowo bez problemu przesyłam wyniki z jednego TextBox'a do drugiego między formularzami. Natomiast tutaj chciałbym przesłać wyniki z przycisku który jest w UserForm1 do ListBox w UserForm2. Prosiłbym o jakąś pomoc Wesoły Bo szukałem na necie rozwiązania ale wiele przykładów jest jak pobierać z komórek do ListBox'a.

Dzięki
ZADRZYJ Z NAJLEPSZYM, UMRZESZ JAK RESZTA.
 System operacyjny: windows_ten Przeglądarka: firefox
#2
RE: [VBA] Przenoszenie danych między formularzami
Nie mam do czynienia z VBA, ale myślę, że można to rozwiązać podobnie, jak w Visual C#. A tu sposobów jest nawet kilka.
Ja bym wszystkie wartości z komórek wpisał do Kolekcji. Poniżej daję linka, jak tworzy się kolekcje w VBA, a następnie tworząc nowy UserForm przekazał bym mu tą kolekcję w konstruktorze, i w tym nowym UserForm odczytał bym wartości z kolekcji i przepisał je do ListBoxa w pętli Foreach.

Tu masz obszerny artykuł, jak używać kolekcji w VBA (Jest tam też pokazane, jak odczytać kolekcję w pętli foreach, a także jak je odczytać w normalnej pętli for):

https://excelmacromastery.com/excel-vba-collections/

Jeśli chcesz natomiast przepisać nie tylko zawartość komórek, ale też ich współrzędne, musisz utworzyć nową klasę, i w niej trzy właściwości - Zawartość komórki, współrzędną X i współrzędną Y, a następnie utworzyć listę instancji tej klasy. Do każdej instancji wpisać po kolei zawartość komórek, współrzędne, i dodać do listy. A w nowej formie po prostu to odczytać i odpowiednio obrobić. Brzmi skomplikowanie, ale zapewniam, że jest bardzo proste.
Ajgor

Najnowszy klip mojego zespołu: TAMP - Hallelujah
 System operacyjny: windows_ten Przeglądarka: chrome
#3
RE: [VBA] Przenoszenie danych między formularzami
Dzięki za pomoc Wesoły


Zrobiłem to trochę w inny sposób niż mi podesłałeś i teraz pytanie mam takie czy ten sposób, który ja zrobiłem jest poprawny, mianowicie:

1. Upubliczniłem potrzebne klasy i na początku przypisałem ogólne zmienne, tak aby ich nie powtarzać w poszczególnych klasach plus.
2. Następnie pod przyciskiem "Oblicz" wstawiłem wzory i tam zostały obliczone parametry i zapamiętane w pamięci.
3. Dzięki upublicznieniu klas drugi przycisk (oba przyciski są w tym samym UserForm) "Wyniki" pobiera zmienne ogólne i wstawiłem następujący kod:


Kod:
UserForm5.ListBox1.ColumnCount = 2

UserForm5.ListBox1.AddItem "Liczba zębów"
UserForm5.ListBox1.List(0, 1) = z2

UserForm5.ListBox1.AddItem "Moduł"
UserForm5.ListBox1.List(1, 1) = mte

UserForm5.Show


4. W UserForm5 wstawiłem ListBox1 i pod odpaleniu wszystko działa i nie wyskakują błędy.

Teraz pytanie do osób związanych z programowaniem (bo ja od zera dopiero się uczę Wesoły ), jest to w miarę poprawny kod i sposób rozumowania? Całe makro jest w Excelu i będzie służyć tylko do obliczenia przekładni stożkowych w ramach pracy dyplomowej. Został jedynie mi tylko ten problem do rozwiązania i nie wiem czy go rozwiązałem poprawnie. Wesoły
ZADRZYJ Z NAJLEPSZYM, UMRZESZ JAK RESZTA.
 System operacyjny: windows_ten Przeglądarka: firefox
#4
RE: [VBA] Przenoszenie danych między formularzami
Nie wiem, czy zrobiłeś dobrze, bo tak niejasno to opisałeś, że niewiele z tego zrozumiałem Wesoły Generalnie upublicznianie czegokolwiek jest złą metodą, bo łamie tzw. enkapsulację, ale jeśli działa, to niech działa Wesoły
Ajgor

Najnowszy klip mojego zespołu: TAMP - Hallelujah
 System operacyjny: windows_ten Przeglądarka: chrome
#5
RE: [VBA] Przenoszenie danych między formularzami
Pokaż plik.
Nie pomagam na PW (ew. odpłatnie). 
I osobom z roszczeniowym podejściem. I osobom niedbającym o poprawność językową.
Jak podawać logi
Jeśli nie odpowiadam w danym wątku przez >3 dni - proszę o przypomnienie na PW z linkiem do wątku w treści.




 System operacyjny: windows_seven Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki ([VBA] Przenoszenie danych między formularzami)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [VBA] Tworzenie nowego arkusza z danymi z TextBox'a Pioro 4 1975 19.06.2018, 23:24
Ostatni post: broda99
  VBA Pobieranie wybranych plików z danymi julietta03 1 2099 04.05.2018, 08:25
Ostatni post: broda99
  [VBA Excel] Zaokrąglanie liczby w górę Pioro 2 3370 13.02.2018, 21:25
Ostatni post: Pioro

Skocz do:


Wybrane wątki ([VBA] Przenoszenie danych między formularzami)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Programowanie, od czego zacząć ? Reyo1994 6 6444 22.05.2017 09:09
Ostatni post: joannakulersa
  C# Przechowywanie sporej ilości danych Kamil 1 9 5250 22.05.2017 08:05
Ostatni post: koneton
  Systeminfo.exe - wyświetlanie informacji w Batchu Mamalama555 2 5115 10.05.2017 21:44
Ostatni post: Mamalama555
  Pliki wsadowe z obliczeniami i zakładaniem kont dideek 0 4736 10.05.2017 21:03
Ostatni post: dideek
myBB Praca programisty soul1648 14 11024 29.04.2017 20:44
Ostatni post: Ajgor
  Nauka tworzenia aplikacji w Android Studio- książka do wyboru. raxer 2 5712 11.04.2017 15:12
Ostatni post: raxer
  Rekurencja, zrozumienie soul1648 1 4891 07.04.2017 20:22
Ostatni post: Szachista
  [Matlab] Gra "Papier kamień nożyce" samanta19 7 5682 07.04.2017 15:54
Ostatni post: Szachista
  Sprawdzenia zadłużenia u kontrahentów OxyGenE 12 2031 05.04.2017 07:38
Ostatni post: OxyGenE
  czy w java można napisać dowolny program ? anders33 7 5585 04.04.2017 22:03
Ostatni post: koneton
  Adresy, szesnastkowe dodawanie soul1648 5 4797 03.04.2017 23:21
Ostatni post: Ajgor
  [C++]pobieranie danych z comboBox Pleyzon223 1 4687 02.04.2017 09:35
Ostatni post: Szachista
  Wyszukiwanie w tablicy soul1648 3 4766 01.04.2017 14:26
Ostatni post: Ajgor
  [Visual Studio 2017] Problem z utworzeniem projektu draxen 2 1974 31.03.2017 23:20
Ostatni post: Ajgor
  Tutoriale: Tworzenie raportów z wykorzystaniem SQL. Cixi 3 4716 29.03.2017 08:23
Ostatni post: koneton