logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Excel VBA: Skrypt do przenoszenia wierszy między arkuszami na podstawie wartości

Gerald87 21 Maj 2011 08:46 3968 9
REKLAMA
  • #1 9528790
    Gerald87
    Poziom 9  
    Posty: 7
    Witam
    Mam taki problem muszę w excelu napisać skrypt w Visual Basic lub nie jeśli się da który z jednej kolumny pobierze wartość do wyszukania następnie przejdzie na drugi arkusz i tam ją spróbuje wyszukać w tabeli. Jeśli znajdzie wartość w tabeli to wytnie ten wiersz w którym ją znalazł i wklei obok kolumny z wartościami do wyszukania w pierwszym arkuszu (dokładnie obok tej wartości która była szukana) jeśli nie znajdzie to obok tej kolumn, wstawi w pierwszą wolną kolumnę wartość 0 (to znaczy w komórkę znajdującą się w kolumnie obok komórki wyszukiwanej).
    Ewentualnie tabela w której wyszukujemy może znajdować się na tym samym arkuszu (na dole) co kolumna z której pobieramy wartości wyszukiwane.
    Bardzo proszę o pomoc ten skrypt jest mi niezmiernie potrzebny a niestety nie umiem programować w VB.
  • REKLAMA
  • Pomocny post
    #2 9529217
    PeteSh
    Poziom 30  
    Posty: 1500
    Pomógł: 95
    Ocena: 71
    Nie bardzo rozumiem, gdzie w tym jest ukryty problem. Zerknij na arkusz i napisz co jest nie tak:
    Załączniki:
    • Elektroda210511.xls (32.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #3 9529880
    Gerald87
    Poziom 9  
    Posty: 7
    Właśnie o coś takiego mi chodzi mógłbyś tylko wytłumaczyć jak działa ta funkcja bo rozumiem że wyszukuje z zadeklarowanej kolumny A i wstawia znalezione wartości do B ,tu pytanie czy jeśli wartość wiśnia zostanie znaleziona w komórce w której jest tekst "wiśnia to owoc" to wklejony zostanie cały tekst do komórki w kolumnie B
    (chodzi mi o to żeby został wklejony właśnie cały). Drugie pytanie skąd się biorą takie wydaje mi się dziwne wartości C w funkcji tzn. zaczynające się od C7 a kończące na C11, oraz czy da się w funkcji zadeklarować więcej wstawianych kolumn tzn. powiedzmy aby były jeszcze wstawiane kolumny D (kolor), E(waga), G(wielkość).
    Strasznie dzięki za odpowiedz moja kolumna do wyszukania ma 1400 komórek a tabel w której wyszukuje 2600 i gdybym musiał to zrobić ręcznie to bym się chyba załamał.
  • REKLAMA
  • #4 9530729
    PeteSh
    Poziom 30  
    Posty: 1500
    Pomógł: 95
    Ocena: 71
    Funkcja wyszukuje dokładnie taką wartość jaka zostaje pobrana z kolumny A. Nie może być to wartość przybliżona, ale jakby pokombinować, to może da się coś z tym zrobić. Dobrze żeby dane były posortowane alfabetycznie.
    Wstawienie kolejnych kolumn to nie problem. Mógłbyś dokładniej sprecyzować jakie to dane. Łatwiej byłoby znaleźć właściwe rozwiązanie.
  • REKLAMA
  • #5 9530833
    Gerald87
    Poziom 9  
    Posty: 7
    Rozumiem chodzi tylko o to żeby została skopiowana cała komórka w której te dane zostały znalezione. Czy coś takiego da się zrobić ? jeśli chodzi o dane to wyglądają one następująco kolumna w której wyszukuje to nazwy kodowe urządzeń (np. fg3456) zaś tabela z wyszukiwanymi wartościami zawiera następujące komórki
    Rozmieszczenie (to właśnie w tej komórce mogę znaleźć nazwę urządzenia bo informacja może wyglądać następująco "fg3456 umieszczone w segmencie A") chodzi mi głównie o to aby cała ta komórka została przeniesiona do wiersza obok wyszukiwanego urządzenia (nie nastąpiła strata informacji), dalej jest kolumna Opis na niej także mi zależy oraz kilka innych kolumn z dodatkowymi informacjami o urządzeniu.
    Dla uporządkowania wiersze muszą być poprzenoszone do arkusza z kolumną z której pobieram informacje do wyszukania bo obok niej mam kolumnę z grupą która dzieli mi urządzenia na odpowiednie grupy.
    Jeszcze raz wielkie dzięki za pomoc i odzew[/b]
  • #6 9533310
    PeteSh
    Poziom 30  
    Posty: 1500
    Pomógł: 95
    Ocena: 71
    Jeśli 'Rozmieszczenie' zaczyna się zawsze od szukanej nazwy (jest to pierwszy wyraz), to można w kolumnie obok stworzyć wycinek w postaci pierwszego słowa przy użyciu formuły =LEWY(C3;SZUKAJ.TEKST(" ";C3)-1). Wtedy mogłoby to wyglądać tak:
    Załączniki:
    • Elektroda210511-1.xls (27.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #7 9533372
    Gerald21
    Poziom 10  
    Posty: 10
    Niestety nie szukana nazwa może być w środku i tak jest najczęściej, próbowałem coś pokombinować twoją metoda ale działa tylko wtedy gdy szukana jest na początku inaczej program się sypie, nie wiem jak to poprawić niestety :cry:
    Wielkie dzięki za zainteresowanie
  • #8 9533689
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Napisz konkretnie jak i co, lub zamieść przykładowy plik. Formułami można dużo ;)

    Excel VBA: Skrypt do przenoszenia wierszy między arkuszami na podstawie wartości

    Excel VBA: Skrypt do przenoszenia wierszy między arkuszami na podstawie wartości

    ale gdzieś kończą się możliwości i pozostaje VBA...
  • #9 9533732
    PeteSh
    Poziom 30  
    Posty: 1500
    Pomógł: 95
    Ocena: 71
    Kolejna wersja; :)
    Załączniki:
    • Elektroda210511-1.xls (31 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 9696211
    kerax82
    Poziom 1  
    Posty: 1
    Witam

    Potrzebuje pomocy z napisaniem makra ale nie za bardzo wiem jak się za to zabrać. Jeśli ktoś mógłby pomóc byłbym wdzięczny. Mianowicie chodzi mi o makro , które wyszukuje w wierszu komórki o wartości np: 100, 200 i 300, jeśli znajdzie w wierszu wartość 100 przechodzi do pierwszej kolumny tego samego wiersza i wpisuje np "aaa", jeśli znajdzie 200 wpisuje "bbb", następnie przechodzi do kolejnego wiersza i robi to samo aż do końca pliku. W danym wierszu mogą znajdować się zarówno komórki o wartości 100 i 200, ale interesuje mnie tylko pierwsza znaleziona wartość.

    Pozdrawiam wszystkich ;)

Podsumowanie tematu

✨ Użytkownik poszukuje pomocy w napisaniu skryptu VBA w Excelu, który przenosi wiersze między arkuszami na podstawie wartości z jednej kolumny. Skrypt ma wyszukiwać wartości w tabeli na innym arkuszu, a jeśli znajdzie pasującą wartość, ma wyciąć odpowiedni wiersz i wkleić go obok kolumny z wartościami do wyszukania. W przypadku braku znalezienia wartości, skrypt powinien wstawić 0 w pierwszej wolnej kolumnie obok wyszukiwanej wartości. Użytkownik potrzebuje również, aby skrypt kopiował całe komórki, w których znajdują się dane, oraz umożliwiał dodawanie dodatkowych kolumn z informacjami o urządzeniach. W dyskusji poruszono również kwestie dotyczące formuł w Excelu oraz ograniczenia związane z wyszukiwaniem wartości w środku tekstu.
Wygenerowane przez model językowy.
REKLAMA