Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Excel] VBA wyszukaj wartość i transponuj do inego arkusza

kriskar 20 Jan 2012 23:03 4523 6
  • #1
    kriskar
    Level 10  
    Witam,
    Bardzo proszę o pomoc w napisaniu makra, które wyszuka w Arkuszu1 w kolumnie A wartości z Arkusza2 z kolumny A, następnie odpowiadające wartości z kolumny B w Arkuszu1 transponuje do Arkusza2 w takiej samej kolejności.
    przykład poniżej:
  • #2
    Czybyszew
    Level 20  
    Kolejny nygus oczekujący gotowego rozwiązania...
    To podstawy podstaw i aż roi się od materiałów w internecie
  • #3
    kriskar
    Level 10  
    Przyznaje że jestem laikiem w tej dziedzinie ale forum jest chyba po to aby pomagać??

    załączam plik co udało mi się zrobić, niestety nie wiem jak teraz połączyć funkcję transponuj tak aby transponowało odpowiednio wszystkie wartości.
  • #4
    walek33
    Level 29  
    Na początek odpuść sobie transpozycję. Zastanów się najpierw czemu Twoje makro nie wyszukuje wszystkich wartości w bazie. W tej chwili wyszukuje tylko po jednej dla każdej szukanej pozycji.
    Dla ułatwienia podpowiem, że do tego celu najlepiej uruchomić makro krokowo i podglądać wartości interesujących zmiennych.
  • #5
    kriskar
    Level 10  
    W załączniku zamieszczam plik z moim rozwiązaniem.

    Cel osiągnąłem jednak nie całkiem z pożądanym rezultatem - wyszukuje bardzo wolno.
    Bardzo proszę aby ktoś na to rzucił okiem fachowca i narzucił swoje poprawki. Chodzi mi tutaj o szybsze działanie makra wyszukującego.
  • Helpful post
    #6
    marcinj12
    Level 40  
    Dwie rzeczy:
    1.
    Code: vb
    Log in, to see the code
    na początku makra i
    Code: vb
    Log in, to see the code
    na końcu.
    2. Zamiast 100 razy pisać:
    Code: vb
    Log in, to see the code
    (swoją drogą: że też Ci się chciało...)
    zrób:
    Code: vb
    Log in, to see the code


    Nawiasem mówiąc to po co Ci ta transpozycja do drugiego arkusza?? Przecież możesz wyszukiwać kolejne wartości z Arkusz3 w Arkusz1, i kopiować od razu do kolejnych kolumn Arkusz3, z pominięciem tego całego Arkusz2.
    Wykorzystujesz funkcję Find do znajdowania wartości, rozbuduj ją trochę do znajdowania kolejnych pozycji. Tutaj przykład z którego ja zawsze korzystam:
    Code: vb
    Log in, to see the code
    Do tego przykładu dodaj licznik bieżącej kolumny w Arkusz3, który będziesz zwiększał o 1 w trakcie odnajdowania kolejnych wartości.
  • #7
    kriskar
    Level 10  
    marcinj12 dziękuję Ci bardzo za te cenne wskazówki rozbudowałem swoje makro o nie i teraz wszystko śmiga tak jak chciałem.