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.

Programowanie excel VBA - Excel vba wyszukaj.pionowo

servusek 15 Sty 2013 16:09 7086 4
  • #1 15 Sty 2013 16:09
    servusek
    Poziom 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.

    0 4
  • #2 15 Sty 2013 16:20
    Loker
    Poziom 38  

    Pokaż wyniki swoich starań...

    0
  • #3 15 Sty 2013 17:56
    servusek
    Poziom 2  

    Zapomnialem zaznaczyc ze jestem troche zielony..

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    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:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    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:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    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).

    0
  • #4 16 Sty 2013 17:10
    Loker
    Poziom 38  

    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...

    0
  • #5 27 Sty 2013 22:24
    psamba
    Poziom 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ść.

    0