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 EXCEL - Kopiowanie komórki do momentu pojawienia się wartości.

ster2006 24 Kwi 2013 12:07 2766 8
  • #1 24 Kwi 2013 12:07
    ster2006
    Poziom 7  

    Cześć,
    Chciałbym napisać makro, które będzie kopiowało daną wartość z kolumny w dół kolumny w pustych wierszach, do momentu napotkania innej wartości. Nie mam pomysłu jak to zrobić. Proszę o pomoc.

    0 8
  • Pomocny post
    #2 24 Kwi 2013 14:26
    adamas_nt
    Moderator Programowanie

    Czyli odwrotnie (zmień operator w warunku pętli) niż w tym temacie

    0
  • #3 24 Kwi 2013 16:19
    ster2006
    Poziom 7  

    rzeczywiście materiał bardzo pomocny ale niestety mam dalszy problem. Ściśle określony wyraz, np. "MAGMA" musi zostać znaleziony w arkuszu i skopiowany w tej samej kolumnie poniżej tej wartości, aż do momentu napotkania w kolumnie obok słowa "SUMA".

    0
  • Pomocny post
    #4 24 Kwi 2013 18:13
    adamas_nt
    Moderator Programowanie

    Hmm, może dwie pętle? Jedna do określenia Nr wiersza, druga do wypełniania...

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #5 24 Kwi 2013 20:25
    ster2006
    Poziom 7  

    działa świetnie! A jak zrobić, aby wyszukało kolejne słowo "MAGMA" w tej samej kolumnie i wykonało ponownie tę samą operację ale tak, aby w wierszu ze słowem "SUMA" w kolumnie "MAGMA" nie pojawiła się żadna wartość ? Czy byłby to dla ciebie kłopot, abyś w kilku zdaniach objaśnił mi działanie tego makra ? Nie rozumiem po co definiujesz "wrs" jako 1 i co ma znaczyć wrs=wrs +1

    0
  • #6 24 Kwi 2013 21:05
    adamas_nt
    Moderator Programowanie

    ster2006 napisał:
    A jak zrobić, aby wyszukało kolejne słowo "MAGMA" w tej samej kolumnie i wykonało ponownie tę samą operację tak, aby w wierszu ze słowem "SUMA" w kolumnie "MAGMA" nie pojawiła się żadna wartość
    Odpowiedniejsza była pętla For dla obszaru UsedRange i warunkowo zmienny znacznik typu Boolean. W zależności od jego stanu wypełniasz, lub nie komórki w kolumnie.

    W pętlach Do zwykle licznik trzeba inkrementować, inaczej wpadniesz w pętlę nieskończoną. Spróbuj, wyrzuć wrs=wrs+1 i wykonuj krokowo (klawisz [F8] w edytorze VB)...
    Zmienna wrs jest takim licznikiem dla obu pętli w przykładzie i jednocześnie argumentem Nr wiersza dla Cells()

    0
  • #7 29 Kwi 2013 19:51
    ster2006
    Poziom 7  

    Witam,

    Proszę o uwzględnienie tej mądrości w makro. Niestety próbowałem bez wrs= wrs+1 i nie działa. Pozdrawiam

    0
  • Pomocny post
    #8 29 Kwi 2013 21:34
    adamas_nt
    Moderator Programowanie

    Przykład chyba lepszy niż najdłuższy opis. Zerknij do załącznika, przeanalizuj...

    0
  • #9 29 Kwi 2013 22:08
    ster2006
    Poziom 7  

    I wszystko w temacie. Jestem pełen podziwu dla Twojej wiedzy. WIELKI SZACUNEK!
    Pozdrawiam serdecznie i dziękuję za rozwiązanie.

    0