Fajne i funkcjonalne rozwiązanie i bardzo dziękuję za nie. Natomiast jeśli ktoś chce go używać na poważnie, to trzeba się również zastanowić nad tym jak ograniczyć możliwość wpisania 3 czy 4 pozycji po przecinku. Zapewne jest to 1 linijka czy dwie kodu z dopisaniem formatu kwoty ale jeśli jest to możliwe to poproszę o info 😉
Dzięki za komentarz. Tak to prawda, są momenty, gdzie nagle włączy się chłodzenie i jest głośniej. Ale pracuje nad tym i będę się starał, aby tego było jak najmniej :) Pozdrawiam
Dziękuję. Super film. Czy jeśli mamy trzy listy rozwijane i czwarta jest efektem wcześniejszych wyborów to zmienną znajdz robimy 3 razy czyli znajdz1, znajdz2, znajdz3
Jeżeli już mam roboczą tabele i chcę kontynuować prowadzenie tabeli z tym trikiem ,to od jakiego wiersza musze zacząć ? Bo jak wpisuję nie A1 a numer wiersza od którego kontynuuje przykładowo A198 to wartość pojawia się w całkiem innym wierszu
Mam dokładnie ten sam problem. Chodzi o ten wiersz: ileW = Arkusz1.Range("A1").CurrentRegion.Rows.Count Mogę prosić o wyjaśnienie logiki jego działania? Jak zapanować nad miejscem od którego zaczną pojawiać się wpisy?
Formularz w filmie działa inaczej ale oczywiście wszystko można poprawić/zrobić :). Proszę zwrócić uwagę, że podczas ładowania formularza zasilana jest tylko lista z marką i dopiero po wyborze danej pozycji zasilana jest lista z modelami (wcześniej jest ona pusta). Należy wówczas zasilić także ComboBox listą z modelami (wszystkie pozycje) i dodać kod do zdarzenia Change, który to będzie aktualizował listę rozwijaną z markami. Reasumując, tak jak Pan sam zauważył należy dostosować kod tak, żeby działało w dwie strony. Powodzenia
@@smartexcel-s.godziszewski jeszcze takie jedno pytanko bo gdybym chciał wpisać inne wartości niż te podane to w jaki sposób w kodzie to zmienić? Bo nawet gdy np pomylę się przy wpisywaniu nawet dostępnych danych wyświetla się błąd i przenosi do vba.
@@bartekbartek3767 jeżeli chcemy, aby kontrolka ComboBox pozwalała wpisywać wartości to kod ze zdarzenia List_marka_Change należy przenieść do nowo utworzonego zdarzenia List_marka_Click. Takie działanie pozwoli wpisywać wartości w kontrolkach bez pojawiania się błędu. Przyczyną Debug jest fakt, że jak próbujemy coś wpisać to działa zdarzenie List_marka_Change, które wyszukuje w liście takiego słowa i jak nie znajdzie (co w tym przypadku się potwierdza) zwraca błąd. Taka ciekawostka, jeżeli chcemy zablokować możliwość wpisywania wartości do kontroli ComboBox należy skorzystać z właściwości "Style" i wybrać opcję "fmStyleDropDownList". Pozdrawiam
Mozna polaczyc Pana film o wyszukiwaniu pionowym vba z rozwijanymi listami? Tj. staram sie zrobic cos takiego z 1 listy wybieram dzial, z drugiej numer stanowiska i teraz chcialbym zeby na podstawie dwoch wartowci wyzej, w polu tekstowym formularza userform pokwzywwly sie dane szczegolowe stanowiska, np nazwa, wymagania itd w userformie w polu tekstowym.....
Dzięki za komentarz. Pewnie, że można połączyć. Wszystko jednak zależy od odpowiedniej struktury danych. Tworząc bazę danych zapewne w jednej linii będą wszystkie informacje. Dlatego można wtedy wyszukać nr stanowiska (+ sprawdzić zgodność ze stanowiskiem) i wtedy połączyć potrzebne dane za pomocą ogranicznika "," (przecinek) i zwrócić do odpowiedniego pola tekstowego w UserForm. Do łączenia można wykorzystać nową funkcję Excela np. POŁĄCZ.TEKST() ang. TEXTJOIN() Przykład poniżej: Dim polacz As String polacz = Application.WorksheetFunction.TextJoin(",", True, Range("A1:E1")) Można to zrobić również za pomocą samego ampersanda "&" i odwoływać się dynamicznie do potrzebnych komórek, innymi funkcjami tekstowymi a także pętlą. Pozdrawiam
Fajne i funkcjonalne rozwiązanie i bardzo dziękuję za nie. Natomiast jeśli ktoś chce go używać na poważnie, to trzeba się również zastanowić nad tym jak ograniczyć możliwość wpisania 3 czy 4 pozycji po przecinku. Zapewne jest to 1 linijka czy dwie kodu z dopisaniem formatu kwoty ale jeśli jest to możliwe to poproszę o info 😉
Jak ja lubię oglądać Twoje filmy‼👍
Szacun, że zajmujesz się VBA na YT 👍
Dzięki :)
Super już 3 film wałkuje, świetnie tłumaczysz!
P.S komputer ci głośno pracuje myslałem ze mój tak świszczy:D
Dzięki za komentarz. Tak to prawda, są momenty, gdzie nagle włączy się chłodzenie i jest głośniej. Ale pracuje nad tym i będę się starał, aby tego było jak najmniej :) Pozdrawiam
Super sprawa, zapisuję filmik na później. Może się przyda. :)
Witam, świetny materiał💪🏽. Jestem ciekawa jak wyglądałoby odwołanie listy rozwijanej do zewnętrznego pliku xsls.
Super, pozdrawiam
Dzięki :) Pozdrawiam
Witam, a trzecią listę rozwijaną pewnie też można wrzucić, tylko pewnie będzie skomplikowany kod
Dziękuję. Super film. Czy jeśli mamy trzy listy rozwijane i czwarta jest efektem wcześniejszych wyborów to zmienną znajdz robimy 3 razy czyli znajdz1, znajdz2, znajdz3
Dzień dobry. Czy można rozbudować formularz i większą liczbę zależnych pól kombi?
Jeżeli już mam roboczą tabele i chcę kontynuować prowadzenie tabeli z tym trikiem ,to od jakiego wiersza musze zacząć ? Bo jak wpisuję nie A1 a numer wiersza od którego kontynuuje przykładowo A198 to wartość pojawia się w całkiem innym wierszu
Mam dokładnie ten sam problem. Chodzi o ten wiersz: ileW = Arkusz1.Range("A1").CurrentRegion.Rows.Count
Mogę prosić o wyjaśnienie logiki jego działania? Jak zapanować nad miejscem od którego zaczną pojawiać się wpisy?
A czy zadziała jeżeli najpierw wpiszę model to podpowie mi markę ? Czy trzeba to w kodzie zmienić żeby działało w dwie strony?
Formularz w filmie działa inaczej ale oczywiście wszystko można poprawić/zrobić :). Proszę zwrócić uwagę, że podczas ładowania formularza zasilana jest tylko lista z marką i dopiero po wyborze danej pozycji zasilana jest lista z modelami (wcześniej jest ona pusta). Należy wówczas zasilić także ComboBox listą z modelami (wszystkie pozycje) i dodać kod do zdarzenia Change, który to będzie aktualizował listę rozwijaną z markami. Reasumując, tak jak Pan sam zauważył należy dostosować kod tak, żeby działało w dwie strony. Powodzenia
@@smartexcel-s.godziszewski bardzo dziękuję za odpowiedź
@@smartexcel-s.godziszewski jeszcze takie jedno pytanko bo gdybym chciał wpisać inne wartości niż te podane to w jaki sposób w kodzie to zmienić? Bo nawet gdy np pomylę się przy wpisywaniu nawet dostępnych danych wyświetla się błąd i przenosi do vba.
@@bartekbartek3767 jeżeli chcemy, aby kontrolka ComboBox pozwalała wpisywać wartości to kod ze zdarzenia List_marka_Change należy przenieść do nowo utworzonego zdarzenia List_marka_Click. Takie działanie pozwoli wpisywać wartości w kontrolkach bez pojawiania się błędu. Przyczyną Debug jest fakt, że jak próbujemy coś wpisać to działa zdarzenie List_marka_Change, które wyszukuje w liście takiego słowa i jak nie znajdzie (co w tym przypadku się potwierdza) zwraca błąd.
Taka ciekawostka, jeżeli chcemy zablokować możliwość wpisywania wartości do kontroli ComboBox należy skorzystać z właściwości "Style" i wybrać opcję "fmStyleDropDownList". Pozdrawiam
@@smartexcel-s.godziszewski super jeszcze raz dziękuję za informację i pomoc
Mozna polaczyc Pana film o wyszukiwaniu pionowym vba z rozwijanymi listami? Tj. staram sie zrobic cos takiego z 1 listy wybieram dzial, z drugiej numer stanowiska i teraz chcialbym zeby na podstawie dwoch wartowci wyzej, w polu tekstowym formularza userform pokwzywwly sie dane szczegolowe stanowiska, np nazwa, wymagania itd w userformie w polu tekstowym.....
Dzięki za komentarz. Pewnie, że można połączyć. Wszystko jednak zależy od odpowiedniej struktury danych. Tworząc bazę danych zapewne w jednej linii będą wszystkie informacje. Dlatego można wtedy wyszukać nr stanowiska (+ sprawdzić zgodność ze stanowiskiem) i wtedy połączyć potrzebne dane za pomocą ogranicznika "," (przecinek) i zwrócić do odpowiedniego pola tekstowego w UserForm.
Do łączenia można wykorzystać nową funkcję Excela np. POŁĄCZ.TEKST() ang. TEXTJOIN()
Przykład poniżej:
Dim polacz As String
polacz = Application.WorksheetFunction.TextJoin(",", True, Range("A1:E1"))
Można to zrobić również za pomocą samego ampersanda "&" i odwoływać się dynamicznie do potrzebnych komórek, innymi funkcjami tekstowymi a także pętlą.
Pozdrawiam