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

VBA Excel usuń wiersz jeśli spełnia warunek -komórka jest w bazie innego arkusza

mania_85 08 Maj 2013 20:03 4590 8
REKLAMA
  • #1 12285807
    mania_85
    Poziom 9  
    Posty: 15
    Witam,

    w Arkusz1 mam bazę danych identyfikowaną po numerze (liczba) w kolumnie A (dane posortowane rosnąco po kolumnie A)
    np.
    A B
    1 ble ble
    2 coś tam
    3 coś tam jeszcze

    w Arkusz2 mam kolejną bazę, gdzie znajdują się bardziej rozbudowane dane, ale opierają się na tym samym identyfikatorze co w Arkusz1, z tym że tutaj znajduje się on w kolumnie E

    Potrzebuję taki kod, który porówna te dwie bazy i jeśli w Arkusz2 kolumna E, znajduje się identyczny identyfikator jak w kolumnie A z Arkusz1, to należy usunąć cały wiersz danych w Arkusz2, next kom ...

    czy ktoś mógłby mi pomóc z takim kodem?
  • REKLAMA
  • #2 12286393
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Na pewno potrzebna Ci będzie jedna pętla (do wyboru: Do, For), która będzie kolejno pobierała wartość komórki do porównania z kolumny A arkusza źródłowego. Dalej masz wybór. Druga, wewnętrzna pętla pobierająca wartość z E arkusza docelowego i porównanie w instrukcji warunkowej. Jeśli prawda, usuwasz wiersz.

    Możesz też wykorzystać metodę Find. Tu sprawdzasz wartość błędu. Jeśli Err=0, wiersz do usunięcia.
  • #3 12287373
    mania_85
    Poziom 9  
    Posty: 15
    adamas_nt, a mógłbyś proszę podpowiedzieć konkretne rozwiązanie?
    potrafię zaplanować pętlę, ale z jej wykonaniem już trudniej :(
    przerzucam kolejne strony książki Walkenbacha, ale z zastosowaniem tej wiedzy w praktyce u mnie ciężej :)

    będę zobowiązana!
  • REKLAMA
  • Pomocny post
    #4 12287441
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    mania_85 napisał:
    przerzucam kolejne strony książki Walkenbacha
    Hmmm, czyżby zapomniał wspomnieć o pętlach? ;)
    Przeanalizuj (w założeniu brak dubli w Arkusz2), dostosuj do własnych potrzeb
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #5 12287541
    mania_85
    Poziom 9  
    Posty: 15
    Rewelacja! Jakie to proste jak ktoś się na tym zna :)

    Podpowiesz mi jeszcze kodzik dla MsgBoxa z identyfikatorami które zostały usunięte?
  • REKLAMA
  • Pomocny post
    #6 12290802
    czeles
    Poziom 17  
    Posty: 93
    Pomógł: 27
    Ocena: 16
    Dopisałem informowanie w MsgBox o numerach identyfikatorów usuniętych wierszy:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #7 12291004
    mania_85
    Poziom 9  
    Posty: 15
    Wielkie dzięki czeles !!
    Działa bardzo fajnie ;)

    Do ideału brakuje mi tylko jednej rzeczy - aby MsgBox zwracał wartość usuniętego identyfikatora, a nie wiersz. Wiersz też jest ok, ale wymaga sprawdzenia pozycji, więc może da się tego uniknąć?
  • REKLAMA
  • Pomocny post
    #8 12294995
    czeles
    Poziom 17  
    Posty: 93
    Pomógł: 27
    Ocena: 16
    Jeżeli identyfikatorem jest wartość z pierwszej kolumny to należy tylko zmienić na:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #9 12302108
    mania_85
    Poziom 9  
    Posty: 15
    Super! Bardzo dziękuję!

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono problem usuwania wierszy w Arkuszu2 w Excelu, jeśli identyfikatory w kolumnie E są zgodne z identyfikatorami w kolumnie A Arkusza1. Użytkownik potrzebował kodu VBA, który porównywałby te dwie bazy danych. Odpowiedzi zawierały wskazówki dotyczące użycia pętli oraz metody Find do identyfikacji i usuwania wierszy. Użytkownik otrzymał również pomoc w dodaniu MsgBoxa, który informowałby o usuniętych identyfikatorach. Ostatecznie, kod został dostosowany, aby wyświetlał usunięte identyfikatory zamiast numerów wierszy.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA