Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

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

DM06 28 Jan 2011 18:55 3738 8
  • #1
    DM06
    Level 10  
    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ę

    Code: vb
    Log in, to see the code


    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.
  • Helpful post
    #2
    adamas_nt
    Moderator of Programming
    Może przez szukanie w pętli z wykorzystaniem obsługi błędu. Np
    Code: vb
    Log in, to see the code
  • Helpful post
    #3
    walek33
    Level 29  
    Lub w inny sposób:
    Code: vb
    Log in, to see the code
  • #4
    DM06
    Level 10  
    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ę.
  • Helpful post
    #5
    adamas_nt
    Moderator of Programming
    Ad 1 i 2
    Code: vb
    Log in, to see the code
    Ad 3
    Code: vb
    Log in, to see the code
  • #6
    DM06
    Level 10  
    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:
    Code: vb
    Log in, to see the code


    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 :)
  • #7
    adamas_nt
    Moderator of Programming
    DM06 wrote:
    I to już będzie wszystko. obiecuje :)
    Hmm, nigdy nie mów "nigdy" :)
    Code: vb
    Log in, to see the code
  • #8
    DM06
    Level 10  
    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
  • #9
    adamas_nt
    Moderator of Programming
    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
    Code: vb
    Log in, to see the code