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]VBA makro zamieniające kod na tekst

MrGrzechoo 10 Mar 2010 16:01 3987 6
  • #1 10 Mar 2010 16:01
    MrGrzechoo
    Poziom 9  

    Witam,
    czy mozliwa jest w excelu zamiana czesci zawartosci komorki i skopiowanie zmienionej zawartosci do innej komorki??
    Tzn. w kolumnie A mam kody towarow np. CORRI-BLRE-BRA-070A- i to jest zakodowana informacja o towarze (zawsze 20 znakow).
    Teraz chce miec w kolumnie B nazwe (CORRI->CORRIDA), w kolumnie C kolor (BLRE->CZERN/CZERWIEN), w kolumnie D towar (BRA->BIUSTONOSZ) a w kolumnie E rozmiar (070A->70A)
    Mam nadzieje, ze wsztstko jasne.
    Czy jest to mozliwe do zrobienia w excelu za pomoca makra (automatycznie wszystko)?
    Z gory dziekuje za wszelkie odpowiedz i pozdrawiam

    0 6
  • #2 10 Mar 2010 16:30
    yogi009
    Poziom 42  

    Tu nie trzeba makra, wystarczy funkcja łańcuchowa wycinająca fragment od lewej, albo od zadanego momentu w tekście. Sugeruję utworzenie dodatkowej kolumny i skopiowanie tam formuły wycinającej. No i nie wszystko jest proste, bo jeszcze powstawiałeś tam jakieś "czerwony", itd. Skąd to się niby bierze ? Excel ma to wiedzieć ? Sprecyzuj temat.

    0
  • #3 10 Mar 2010 17:36
    adamas_nt
    Moderator Programowanie

    Pomysł kolegi yogi009 jak najbardziej trafiony i możliwy do realizacji przy pomocy kombinacji funkcji: LEWY, PRAWY, FRAGMENT.TEKSTU, DŁ, ZNAJDŹ i PODSTAW

    [excel]VBA makro zamieniające kod na tekst
    Założenie: kod składa się z 4 członów,
    Jeśli kod jest zawsze w formacie 5-4-3-4 to jeszcze łatwiej.

    W dalszej kolejności należałoby utworzyć arkusz z tablicami zawierającymi wszystkie możliwe kody i ich "tłumaczenie" (zwracany ciąg) po zastosowaniu funkcji Np WYSZUKAJ.PIONOWO lub INDEKS.

    0
  • #4 10 Mar 2010 19:26
    MrGrzechoo
    Poziom 9  

    Dziekuje za szybka odpowiedz. Chodzi mi tu raczej o cos w stylu znajdz->zamien->skopiuj do odpowiedniej komorki. Poczatkowo wprowadzam dane, ktore maja zostac odnalezione i na jakie dane zamienione, a potem te zamienione dane wpisac w odpowiednie komorki. Nie zawsze kody wygladaja tak jak przedstawilem. Czasem kod wyglada tak CORRI-BLRE-BRAS075DD. W tym przypadku chce zeby CORRI zamienic na CORRIDA i wpisac do kolumny B w tym samym wierszu, BLRE zamienic na czern/czerwien i wpisac do komorki C(ten sam wiersz), BRAS zmienic na bransoleta i wpisac do kolumny D i 075DD zamienic na 75DD i wpisac do komorki E w tym samym wierszu.
    Czy jest jakis sposob na to??

    0
  • #5 10 Mar 2010 21:09
    adamas_nt
    Moderator Programowanie

    Zastanów się nad wstępną normalizacją kodów, bo czeka Cię nie lada zadanie...

    [excel]VBA makro zamieniające kod na tekst

    W VBA można wykorzystać funkcję Split ale przy tym ostatnim zapisie założenie bierze w łeb i trzeba szukać pierwszej liczby w łańcuchu. Może byłoby i łatwiej. Jeśli tablica po rozbiciu łańcucha miałaby mniej niż 4 elementy, to mamy warunek niespełniony i szukamy liczby...

    0
  • #6 10 Mar 2010 22:59
    yogi009
    Poziom 42  

    Generalnie zrób sobie na białej kartce papieru JEDEN SPÓJNY system kodowania. Wtedy i algorytm prosty i porządek na wieki. Jeśli natomiast kody masz z zewnętrznego źródła, popatrz na nie przyjaznym okiem i zapytaj sam siebie, jak je można optymalnie poddać ujednoliceniu. Ta faza ZNACZNIE UŁATWI ci życie w następnych latach używania sobie na tych danych :-)

    0
  • #7 08 Lip 2010 19:59
    MrGrzechoo
    Poziom 9  

    Niestety nie udało się zautomatyzować tego zadania, wszystko musiałem robić ręcznie. Skopiowałem cały kod do czterech kolumn (w czterech kolumnach to samo) i w każdej kolumnie kasowałem zbędne elementy. Następnie użyłem opcji znajdź i zamień. Po kilku godzinach pracy w końcu się udało. Dziękuję za wszystkie podpowiedzi i pozdrawiam

    0