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.

Makro,jezyk VBA problem z kopiowanie miedzy arkuszami

skrukik 09 Lut 2011 18:42 2623 4
  • #1 09 Lut 2011 18:42
    skrukik
    Poziom 2  

    Witam!

    Mam mały problem z makrem,mianowicie:
    Makro,które zapisane jest w programie działa tak:

    -Z arkusza1 wypisuje słowa kluczowe, następnie przechodzi do arkusza2,wyszukuje słowa kluczowe i na koniec wkleja je do arkusza1.

    Problem:
    -Makro kopiuje pierwsze napotkane słowo kluczowe i wkleja je do arkusza1,a chciałbym,żeby kopiowało mi wszystkie odnalezione słowa kluczowa w arkuszu2(baza),do arkusza1.

    Dodatkowo;
    -Po wykonaniu tych czynności,mam możliwość wybrania towarów,które mnie interesują wraz z cenami. Jednak istnieje możliwość zmiany cen,żeby ułatwić sobie życie potrzebowałbym takie rozwiązanie; Po skopiowaniu i wyselekcjonowaniu żądanych towarów mam gotowe zamówienie wraz z cenami. Następnie otrzymuję fakturę i sprawdzam zgodność z zamówieniem w excelu. Jeżeli cena uległa zmianie
    Najprościej byłoby zmienić ja w arkuszu1,a następnie makro podmienia ja w arkuszu2(baza).

    Dziękuję za pomoc

    0 4
  • #2 10 Lut 2011 00:17
    marcinj12
    Poziom 40  

    Nie czyścisz całego fragmentu (ceny), powinno być:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    poza tym polecam wyłączyć odświeżanie ekranu.
    Jakaś obsługa błędów też by była na miejscu :), czyli:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Jeżeli chodzi o wyszukiwanie, to po znalezieniu wartości funkcją Find musisz zapętlić, tutaj masz przykład:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    spróbuj dostosować do swoich potrzeb.

    Jeśli chodzi o dodatkowy problem, to nie bardzo rozumiem co chcesz osiągnąć :) Chyba ucięło Ci tekst po "Jeżeli cena uległa zmianie "

    0
  • #3 10 Lut 2011 14:57
    skrukik
    Poziom 2  

    Dziękuje bardzo za uwagę, nie mogę sobie jednak poradzić z tym kodem;/
    Jeżeli można prosiłbym o zmiany w załączonym pliku.

    W excelu jeszcze raz opisałem żądany efekt

    Dziękuje i pozdrawiam.

    0
  • #4 10 Lut 2011 15:41
    marcinj12
    Poziom 40  

    Wstawiłeś 2x .Find, a za drugim razem powinno być .FindNext.
    Ta całą pętla For powinna wyglądać tak:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Jeśli chodzi o zmianę ceny, to może w ten sposób?
    1. Wstaw drugi przycisk, nazwij go ZMIEŃ CENĘ
    2. Zaznaczasz nazwę produktu, gdzie chcesz zmienić cenę i klikasz przycisk ZMIEŃ CENĘ.
    3. Podepnij pod niego taki kod:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Czyli: wyszukuje zaznaczony produkt w bazie (dokładnie o wybranej nazwie). Jeżeli znajdzie: zmienia cenę w dwóch miejscach: w bazie i na arkuszu zamówienia
    Ewentualnie można przerobić żeby pobierał nazwę z zaznaczonego wiersza (wtedy zamiast Selection użyj Cells(Selection.Row, 5))

    0
  • #5 10 Lut 2011 19:11
    skrukik
    Poziom 2  

    Jesteś Wielki :D Dziękuje i pozdrawiam.

    Dodano po 2 [godziny] 51 [minuty]:

    Ostatnia sprawa :D Chciałbym,żeby kolory przy kopiowaniu i przenoszeniu też mi uwzględniał...

    Dodałem coś takiego i mi kopiuje z kolorem,ale wkleja do arkusza1 od "A1" ,a nie tak jak wcześniej ;

    wsbaza.Cells.Copy
    wscel.Cells.PasteSpecial xlPasteFormats

    0