Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel opcja listy z autouzupełnianiem

20 Lip 2012 11:33 15839 19
  • Poziom 2  
    Witam, chcę stworzyć w excelu listę produktów (to nie jest problemem) lecz chodzi o ilość danych na tej liście jest to około 2000 towarów. Czy jest opcja aby po wpisaniu początku index-u towaru (4 pierwszych liter) wyświetlił mi tylko te które się od niech zaczynają.
  • Moderator Programowanie
    Zależy jaka lista (poprawność danych, formularzowa, AciveX). Napisz dokładniej lub wrzuć plik z przykładem.
  • Poziom 2  
    Ma to wyglądać tak:
    Po naciśnięciu literki "K" mam mi w liście wyświetlić tylko produkty na literkę "K", po wpisaniu "ka" tylko te które się zaczynają na "ka" itd.

    Dodano po 1 [minuty]:

    Excel opcja listy z autouzupełnianiem
  • Moderator Programowanie
    Spróbuj z polem kombi AciveX.
    W innym przypadku trzeba będzie wesprzeć się dodatkową komórką określającą kryteria dla listy, kolumną pomocniczą i dopiero pobierać listę...
  • Poziom 11  
    Cześć,

    odkopuję temat ze względu na to, iż mam teraz dokładnie ten sam problem. Chciałbym aby lista rozwijana automatycznie się rozwijała po wejściu na komórkę + zawężała się wpisując kolejne litery. Doszedł ktoś może jak to zrobić?

    Odnośnie funkcji kombi, to jak rozumiem umożliwia wypełnianie poprzez pola, a jednak dla osób które ledwo łapią excela (dodaj, odejmij, średnia, pomnożyć ;) ) może być zbyt pracochłonne ;/

    Z góry dzięki za odp :)
    Może w ten ponad rok udało się znaleźć rozwiązanie :)
    Pozdrawiam,
    rychu888
  • Moderator Programowanie
    W tym przypadku poprawność danych/lista odpada. Może rozwiązanie z tego tematu?
    -sortowanie listy
    -filtrowanie

    W załączniku dostosowałem Arkusz2 do opisu.
    "Aktywny" zakres to D2:D10. Wartość zapisuje się przy zamknięciu formularza.
    Trzeba tylko dopracować położenie formularza: Link W E2007 to Left+24, Top+141 (mniej więcej)
    Lista jest filtrowana wg pierwszej, wpisanej litery. Po drugie: combo ActiveX ma wbudowane autouzupełnianie.

    Przeanalizuj, dostosuj do własnych potrzeb.
  • Poziom 7  
    Witam,
    poszukuję listy z autouzupełnieniem, coś jak w tym przykładzie,który tu znalazłem. Przerobiłem go na "własne" potrzeby ale okno "wybierz z listy" nie działa tak jak bym chciał, lista owszem jest ale po wpisaniu pierwszej litery lista nie rozwija sie dalej tylko jest pierwsza nazwa. Czy można prosić o poprawienie kodów w VBA, bo u mnie z tym kiepsko :wink:
    Dziękuję. Pozdrawiam
    Piotr
  • Poziom 33  
    Nie bardzo rozumiem, na czym dokładnie polega problem, bo moim zdaniem sama lista działa prawidłowo. Gdy uaktywni się pole tekstowe i wpisze pierwszą literę, lista ustawia się na pierwsze hasło zgodne z tą literą, wpisywanie kolejnych liter przesuwa listę na zasadzie zgodności z tymi literami. W każdej chwili można też zrezygnować z wpisywania liter i myszką wybrać pozycję z listy. Mam Excela 2010.
  • Poziom 7  
    ...może nie doprecyzowałem, chodzi o arkusz 2,
    w ark.1 jest OK, tyle że useform jest "przytwierdzony"
    a ja chciałbym aby był przypisany do każdej komórki jak w arkuszu 2,
    Dziękuję
  • Poziom 34  
    @PiterM71 Kolego zobacz do userforma2 że nie do końca przepisałeś/kopiowałeś kod z userforma1 błąd masz w Private Sub ComboBox1_Change porównaj to znajdziesz
  • Poziom 7  
    Dzięki za podpowiedź ! ale mam kolejny problem a nawet dwa:
    1) zwiększyłem listę danych (1000 pozycji) i widzę że UserForm pojawia się z małym opóźnieniem, przy ok 3000 jest to już bardzo wolno, ale chyba nie ma na to rady ?
    2) po wpisaniu danych w 30 wierszy, przesuwam widok arkusza do dołu o ileś tam pozycji i gdy chcę wpisac kolejna pozycję Userform pojawia się gdzieś na dole arkusza albo poza jego widokiem i wówczas pozostaje tylko zamknięcie go kombinacją alt+ctrl+del :-o , może mozna to jakoś ustawić ale na razie język VBA to dla mnie czarna rozpacz. Z góry wielkie dzięki za pomoc.Przykład w zał.
    Piotr
  • Moderator Programowanie
    Ad.1 Zerknij do ostatniej linii UserForm_Initialize. Tam jest przypisanie listy ComboBox'a do tablicy. Odwróciłbym to. Wykorzystałbym tę tablicę globalnie, z wypełnieniem jej już przy otwarciu pliku. W UserForm2 zamiast dodawania wartości do listy ComboBox'a w pętli, przypisywałbym tablicę. Plik co prawda będzie się otwierał ciut dłużej, za to inicjacja formularza pójdzie "piorunem".

    Ad.2 Usuń/zaapostrofuj (lub uwarunkuj) linię 'Me.Top...' z 'UserForm_Activate' (UserForm2).
  • Poziom 7  
    DZIĘKI raz jeszcze !
    Z pkt.2 jest ok, usunąłem ale 1 :?: , kombinowałem ale nic mi nie wychodzi,
    czy o jakąś gotową komendę można prosić ?
    Dziękuję. Pozdrawiam
  • Poziom 7  
    Dziękuję bardzo ! Pozdrawiam
  • Poziom 2  
    Cześć!
    Moje doświadczenie z VBA jest niewielkie, dlatego zawracam się do Was z prośbą o podpowiedź.

    Chciałam skorzystać z tego kodu interesuje mnie wersja z arkusza drugiego. Ma to służyć do uzupełniania poszczególnych komórek w kolumnie "TEST1".
    Czy sam kod UserForm2 + przypisanie UserForm do wybranych komórek powinno wystarczyć?

    W jaki sposób można zdefiniować "tbl" w kodzie UserForm2, aby to działało poprawnie?
  • Moderator Programowanie
    1. Kod z Initialize uForm1 przekopiować do Initialize uForm2
    2. Przy Open załadować uForm2
    3. przy zamknięciu ukryć formularz (nie zamykać) i wyczyścić ComboBox

    W efekcie wyjdzie coś, jak w załączniku. UserForm1 jest w tym przypadku zbędny.
  • Poziom 2  
    adamas_nt napisał:
    1. Kod z Initialize uForm1 przekopiować do Initialize uForm2
    2. Przy Open załadować uForm2
    3. przy zamknięciu ukryć formularz (nie zamykać) i wyczyścić ComboBox

    W efekcie wyjdzie coś, jak w załączniku. UserForm1 jest w tym przypadku zbędny.


    Dzięki wielkie! Przerzucając do swojego pliku dobrze kombinowalam, tylko zapomniałam o Module1, zawsze lepiej zapytać.

    Teraz jest taki problem, że jak chce po raz kolejny coś wybrać to lista jest pusta, który fragment kodu dopowiada za wyczyszczenie tej listy?
  • Moderator Programowanie
    Przy ukrywaniu czyszczona jest zawartość ComboBox'a. W tym momencie tblTmp jest pusta (i=0 w Change). Oczywiście jeśli zaczniesz pisać (Change), lista się wypełni.

    Aby to uzupełnić, trzeba przypisać listę w przypadku i=0 przy Change. Dopisz linię za Combo.Clear
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
  • Poziom 1  
    Koledzy jestem kompletnym laikiem w kwesti Excela (znam tylko podstawowe funkcje), próbuje stworzyć szablon faktury dla swojej działalności, brakuje mi w niej tylko listy pozycji, które do tej pory sprzedałem , zapisanej właśnie w liście z auto uzupełnianiem.

    Stworzony przez was plik jest naprawdę wystarczający, bylibyście jednak tak mili aby móc mi wytłumaczyć jak skopiować owe formuły do mojego szablonu.

    Z góry dziękuje !