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.

[VBA Exell] lekka edycja makra

blue_17 20 Wrz 2011 18:07 1688 7
  • #1 20 Wrz 2011 18:07
    blue_17
    Poziom 32  

    Witam jakiś czas temu eksploatowałem makro jak poniżej

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Niestety arkusz i dane mi się nieco pozmieniały, a niestety ni w ząb nie znam basica :|

    Chciałbym aby makro za pierwszym razem działo tak jak jest w bieżącej postaci

    A po kolejnym użyciu nie kopiowało nagłówka tabeli tylko wstawiało wyszukane rekordy

    Było by też świetnie kiedy rekordy z 1 próby były innego koloru (kolor mógł by być pobierany z komórki jak powyżej) niż w 2 próbie i tak na przemian, co ułatwiło by mi komfort pracy

    Myślę że z pozostałymi zmianami dam radę bo będę nagrywał makra i będę się starał na nich wzorować

    Pozdrawiam

    0 7
  • Pomocny post
    #2 21 Wrz 2011 10:01
    adamas_nt
    Moderator Programowanie

    Naprzemienne kolory zrealizujesz formatowaniem warunkowym. Formuła: =MOD(WIERSZ();2)=1

    Co rozumiesz pod pojęciem

    Cytat:
    A po kolejnym użyciu nie kopiowało nagłówka tabeli tylko wstawiało wyszukane rekordy
    Z nagłówkiem nie ma problemu, wystarczy sprawdzić czy jest i kopiować warunkowo (gdy nie ma). Natomiast nic nie wiadomo co to za "wyszukane rekordy".

    0
  • #3 21 Wrz 2011 13:25
    blue_17
    Poziom 32  

    Arkusz do którego kopiuję jest 2 arkuszem z kolei w pierwszym arkuszu wyszukuję i podświetlam je a następnie naciskając przycisk którego zawartość podałem przepisuje wyniki wyszukiwania do drugiego arkusza

    Obecnie za każdym naciśnięciem klawisza czyści arkusz i wszytko wpisuje od nowa nagłówek i wyszukane rekody.

    Chciałbym aby za pierwszym razem przepisało z nagłówkiem a potem już bez nagłówka doklejało rekordy tylko pokolorowany na inny kolor, ponieważ tą operację będę wykonywał kilkakrotnie i chciałbym aby próby były jakoś wizualnie rozdzielone.

    Pozdrawiam

    0
  • #4 21 Wrz 2011 20:10
    adamas_nt
    Moderator Programowanie

    "Podświetlam" tzn zmieniam kolor czcionki? Nie ma tu nic typu "Selection", natomiast warunkiem jest kolor wypełnienia =Range("L4").
    Rozumiem, że makro ma sprawdzać co już jest skopiowane, kopiować tylko wybrane (jak? kolor tła, zaznaczenie) rekordy i zmieniać kolor czcionki na jakiś inny niż poprzednio. Można warunkować kolor na podstawie ostatniego zapisanego wiersza w arkuszu docelowym i kolorować na inny, używając Np 2, 3 naprzemiennie.

    0
  • #5 21 Wrz 2011 20:29
    blue_17
    Poziom 32  

    Dokładnie tak, a warunek jest dlatego taki bo wyszukane wyniki podświetlam kolorkiem tzn jeśli chodziło mi o zmianę koloru to chodzi mi o kolor tła komórki a właściwie wierszy :)

    Chciałbym wykonywać to tak

    1. w pierwszym arkuszu daję aby mi wyszukało i podświetliło na dany kolor // to mam już zrobione
    2. jeśli arkusz jest pusty to kopiuje nagłówek tabeli w której wyszukiwano i wkleja podświetlone rekordy i kolor wypełnienia komórek przykładowo jest biały
    3. wracam do 1 arkusza czyszczę wyniki wyszukiwania i wykonuję kolejne wyszukiwanie
    4 . znów podświetla mi wyniki i kopiuje do istniejącego już arkusza (dokleja dalej do tabeli) nagłówek tabeli i wyniki wyszukiwania i komórki wypełnia np zielonym kolorem
    5. w kolejnych przypadkach wyszukiwania i wklejania wyniki są na przemian np białe i zielone, a formatowanie nagłówka chciałbym pozostawić bez zmian

    Na przemian to znaczy nie co drugą komórkę tylko co drugi wynik wyszukiwania a to jest po kilka rekordów zazwyczaj z każdego wyszukania

    Pozdrawiam

    0
  • Pomocny post
    #6 21 Wrz 2011 22:12
    adamas_nt
    Moderator Programowanie

    Spróbuj

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #7 21 Wrz 2011 23:35
    blue_17
    Poziom 32  

    Wielkie dzięki oto mi chodziło :)

    Tylko zauważyłem jedną nie dogodność kopiowanie odbywa się do ostatniego arkusza jaki utworze, a chciałbym aby kopiowanie było sztywnie przypisane do arkusza o nazwie Wynik niestety nie mogę zlokalizować w kodzie gdzie to jest napisane.

    Ewentualnie jak pobrać zakres komórek który jest obecnie zaznaczony.

    Pozdrawiam i dziękuje resztę będę się edukował :)

    0
  • Pomocny post
    #8 22 Wrz 2011 08:29
    adamas_nt
    Moderator Programowanie

    Linia

    Code:
    Set ws = Worksheets(Worksheets.Count)
    w nawias wpisz nazwę w cudzysłowie lub indeks arkusza.

    0