Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Programowanie excel VBA - Excel vba wyszukaj.pionowo

servusek 15 Jan 2013 16:09 9186 4
  • #1
    servusek
    Level 2  
    Witam, staralem sie od 2 dni i po prostu nie dam rady zrobic aby to dobrze dzialalo.

    Mianowicie - chcialbym aby po kliknieciu przycisku znajdujacego sie w Arkusz1 excel zrobil cos na zasadzie dzialania funkcji wyszukaj.pionowo tzn pobral slowo wpisane w komórce A1 w Arkuszu1 i wyszukal w kolumnie A Arkuszu2 a nastepnie przypisal wartosc z tabeli z Arkuszu2 z kolumny B w komórce A2, nastepnie zeby znowu wyszukal slowa z komórki A1 z Arkusz1, wyszukal tej wartości w tabeli w Arkusz2 i przypisal wartosc z wiersza w ktorym znajduje sie ten wyraz z kolumny C do arkusza 1 i komórki B2. Oczywiscie mozna to zrobic bardzo łatwo aby uzupełniało się automatycznie za pomocą samej formuły Wyszukaj.Pionowo natomiast moj profesor uparł się aby do projektów użyć języka VBA, a wszystkie posty związane z tym językiem oraz z funkcją wyszukaj.pionowo są bardzo zaawansowane i nie dam rady ich przerobic :(

    Z góry dziekuje za pomoc.
  • #2
    Loker
    Level 39  
    Pokaż wyniki swoich starań...
  • #3
    servusek
    Level 2  
    Zapomnialem zaznaczyc ze jestem troche zielony..

    Code: vb
    Log in, to see the code


    W tej formule przynajmniej wydawalo mi sie ze tam gdzie jest klient!26 podaje sie komorke w ktorej wpisuje wynik a vlookup to jest po prostu wyszukaj.pionowo ale wyrzucalo bledami

    Probowalem takze cos takiego:

    Code: vb
    Log in, to see the code


    I tutaj wydawalo mi sie ze w Cells podaje numerki kolumny i wiersza w ktorym ma wpisac wynik a vlookup tak jak wyzej ejst to po prostu wyszukaj.pionowo

    Dodano po 24 [minuty]:

    Ohm, juz zamkniete, zrobilem, dziekuje.

    Wszedlem po prostu w makra, nagralem makro - edytowalem je w visual basicu i wkleilem kod do przycisku :))

    wyglada on tak:

    ActiveCell.FormulaR1C1 = "=VLOOKUP(R23C12,Podsumowania!R3C1:R32C5,2,1)"
    Range("I27").Select

    Pozdrawiam.

    Dodano po 19 [minuty]:

    Niestety pojawił sie problem dokładniej mam kod:

    Code: vb
    Log in, to see the code


    Po pierwsze zamiast komórki L26 czyli ostatniej wypełnia mi komórkę aktywną.
    Drugi problem jest taki, że umieszcza to tą funckję w komórkach, natomiast chciałbym żeby te pobrane wartości zostały wpisane jako wartość (ponieważ jeżeli umieszczona zostaje funkcja to przy zmianie komórki której excel szuka w tabeli czyli tego R23C12 dane zostają zmienione automatycznie, a powinny sie zmieniać po naciśnięciu przycisku).
  • #4
    Loker
    Level 39  
    ActiveCell jak sama nazwa wskazuje odnosi się do aktywnej komórki. Jeśli chcesz podać konkretną komórkę użyj obiektu Cells albo Range. Przydałoby się poprzedzić odniesieniem do konkretnego arkusza, w przeciwnym wypadku domyślnie będzie używany arkusz aktywny.

    Jeśli chcesz użyć funkcji arkuszowej w VBA użyj obiektu Application.WorksheetFunction ale obawiam się, że w zadaniu nie chodziło o to aby użyć vlookup, ale żeby napisać program, który robiłby to samo co vlookup...
  • #5
    psamba
    Level 1  
    Witam wszystkich!

    Mam jedną rzecz, której nie mogę ogarnąć w VBA. Wygląda to tak:

    W jednym Arkuszu1 mam w sąsiadujących 4 komórkach 4 listy rozwijalne (są to nazwy różnych spółek - zrobione za pomocą Dane->poprawność danych - na zdjęciu) - tak więc jak w pierwszej komórce wybiorę jakąś spółkę, to w następnej liście rozwijanej nie ma już wybranej wcześniej spółki itd.
    Z kolei, w innym arkuszu mam całą masę danych wszystkich spółek (wygląda to tak, że najpierw jest nazwa spółki, w następnych kolumnach kilka mniej ważnych wskaźników i dopiero potem interesująca mnie wartość tj close).. i potem znowu nazwa kolejnej spółki itd. (na zdjęciu)

    Chodzi mi o to, żeby po wybraniu w liście jakiejś spółki tuż pod tą listą przekopiowały się wszystkie wartości cen zamknięcia (tj. kolumna close -> skopiować wszystko w dół do końca i wkleić pod listę) tej właśnie spółki.
    Programowanie excel VBA - Excel vba wyszukaj.pionowo
    Programowanie excel VBA - Excel vba wyszukaj.pionowo

    Wiem, że może trochę chaotycznie to napisałem, ale mam nadzieję, że zdjęcia pomogą.
    Byłbym bardzo wdzięczny za pomoc, gdyż ja dopiero się uczę VBA i nie mogę nic w tej chwili wpaść.