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.

Excel - Makro kasujące komórki z podaną wartością

DM06 28 Sty 2011 18:55 2988 8
  • #1 28 Sty 2011 18:55
    DM06
    Poziom 9  

    Witam.

    Szukam makra, do excela, które będzie przeszukiwało cały wiersz numer 1, w celu znalezienia wartości np.: MSISDN oraz KOD SPRZEDAWCY
    I kiedy znajdzie taki wpis - usunie całą kolumnę "MSISDN" oraz "KOD SPRZEDAWCY" wraz z wartościami i danymi, które znajdują się poniżej tej komórki.

    Dodam, że tych niepotrzebnych wartości jest około 11, a sama oryginalna tabela zawiera łącznie około 20 kolumn.

    Dorzucam załącznik, może trochę to rozjaśni sytuację.


    Szukałem po googlach ze dwie godziny i nigdzie nie mogę znaleźć czegoś odpowiedniego, a jak łączę dwie teorie, to wyskakują mi same błędy...


    Próbowałem makra, które usuwałoby daną kolumnę

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    No ale niestety przy formule na 11 kolumn, w miejsce pustej wskakuje następna i excel usuwa nie te co powinien.

    Bardzo bym prosił, o opisanie na przykładzie jak uzyskać zamierzony efekt, tak żeby to było idioto-odporne :D:D
    Dziękuję bardzo za pomoc.

    0 8
  • Pomocny post
    #2 28 Sty 2011 19:36
    adamas_nt
    Moderator Programowanie

    Może przez szukanie w pętli z wykorzystaniem obsługi błędu. Np

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #3 28 Sty 2011 19:50
    walek33
    Poziom 28  

    Lub w inny sposób:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #4 29 Sty 2011 02:18
    DM06
    Poziom 9  

    Bardzo wam dziękuję! Podziałało i znacznie ułatwi mi to pracę.

    Skoro, ktoś już się moim tematem zainteresował, potrzebowałbym jeszcze 3 makr, także starałem się coś wykombinować, ale ciągle mam jakieś błędy..

    1) Jeżeli któraś z komórek w kolumnie E, ma wartość "kontrakt deaktywny", makro koloruje cały wiersz w którym jest ta komórka na czarno.

    2) Jeżeli któraś z komórek w kolumnie C, posiada jakąkolwiek wartość (nie jest pusta), makro koloruje cały wiersz w którym jest ta komórka na szaro

    3) Makro drukuje plik w ustawieniu poziomym (jakby udało się to połączyć z wyborem drukarki, byłoby zacnie!)

    W załączniku są dwie tabelki, pierwsza u góry wygląda przed użyciem makr, a druga zakładany efekt po zastosowaniu makra.

    B dziękuję.

    0
  • Pomocny post
    #5 29 Sty 2011 12:27
    adamas_nt
    Moderator Programowanie

    Ad 1 i 2

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    Ad 3
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #6 29 Sty 2011 19:27
    DM06
    Poziom 9  

    Super! Wszystko działa!

    Tylko mam jeszcze dwa małe problemy.
    Pliki, na których pracuję są eksportowane ze strony, i mają pewne wady.

    W miejscu Rodzaj kontraktu zamiast pustego pola jest spacja.

    Kod:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Przy spacjach powoduje zaznaczanie wszystkiego na szaro. :cry:

    Drugi problem -> wiersze mają domyślną szerokość, i jest ona za mała.
    Czy istnieje makro na autodopasowanie szerokości kolumn?

    I to już będzie wszystko. obiecuje :)

    0
  • #7 29 Sty 2011 19:44
    adamas_nt
    Moderator Programowanie

    DM06 napisał:
    I to już będzie wszystko. obiecuje :)
    Hmm, nigdy nie mów "nigdy" :)
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #8 29 Sty 2011 20:02
    DM06
    Poziom 9  

    No powiem tak, formuła działa.

    Ale tylko wtedy kiedy z komórki ręcznie usunę spację (deletem).

    edit: dodałem plik. problem dotyczy kolumny E

    0
  • #9 29 Sty 2011 20:52
    adamas_nt
    Moderator Programowanie

    Kod znaku Np w E4 to 160, gdy spacja to 32 i dlatego nie działa trymowanie...

    Excel - Makro kasujące komórki z podaną wartością

    Ustal sobie minimalną długość ciągu, tutaj dla mniej niż 3

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0