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 - zaznaczanie niepustych

zimaidzie 25 Lut 2014 12:14 2190 10
  • #1 25 Lut 2014 12:14
    zimaidzie
    Poziom 5  

    Witam,
    mam w sumie prosty problem ale nie wiem jak go ugryźć.

    Mianowicie:
    potrzebuję stworzyć makro , które będzie zaznaczało kolumnę do ostatniej nie pustej
    (ctrl+shift+arrow) wykonywało pewne działanie (powiedzmy dodawanie wartości w dwóch sąsiednich komórkach) i wyrzucało wynik w nowej kolumnie, ale tylko do wiersza, który jest nie pusty. Chodzi mi o to, że dodawane będą nowe wiersze więc tak naprawdę nie wiem ile ich będzie docelowo.

    Z góry dziękuję i pozdrawiam!

    0 10
  • #2 25 Lut 2014 12:17
    markoz7874
    Poziom 31  

    A co konkretnie Ci jest potrzebne? Nagraj makro i prze edytuj do swoich potrzeb.
    Podaj na forum co Ci wyszło a czego nie potrafisz zrobić?

    0
  • #3 25 Lut 2014 12:40
    zimaidzie
    Poziom 5  

    mam coś takiego

    Sub wypelnienie_komorek()
    '
    ' wypelnienie_komorek Makro
    '

    '
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "=SUM(RC[-2]:RC)"
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "=SUM(RC[-2]:RC[-1])"
    Range("C1").Select
    Selection.AutoFill Destination:=Range("C1:C5")
    End Sub

    jak widać, zakres wyników, który tworzy się w kolumnie C obejmuje C1;C5

    Chciałbym zrobić takie makro , które wykrywałoby cały zakres wypełnionych kolumn, dodało jedną do drugiej i wyrzuciło wynik, ale zaznaczam, że ilość wierszy będzie się powiększać więc stałe odniesienia do adresów komórek w tym momencie nie wchodzą w grę.

    0
  • #4 25 Lut 2014 17:44
    JRV
    Specjalista - VBA, Excel

    Witam
    Innymi słowy, w kolumnie C musi suma komórek z kolumn A i B?

    0
  • #5 25 Lut 2014 18:58
    zimaidzie
    Poziom 5  

    tak :) ale najprościej rzecz ujmując ilość wierszy się zwiększa a makro powinno wpisywać wyniki z również w nowych wierszach, czyli jeśli teraz mam A1+B1=C1, to jeśli wpiszę A2+B2, to makro powinno mi wyrzucić wynik w C2 etc.

    0
  • #6 25 Lut 2014 19:13
    JRV
    Specjalista - VBA, Excel

    W najprostszym przypadku można zastosować przetwarzania zdarzeńia
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column > 2 Then Exit Sub
    rw = Target.Row
    Cells(rw, 3) = Cells(rw, 1) + Cells(rw, 2)
    End Sub

    0
  • #7 25 Lut 2014 19:36
    zimaidzie
    Poziom 5  

    niby działa ale zeby zobaczyć wynik trzeba zaznaczyc komorke. Ja to widzę tak: zaznacz zakres do ostatniej pełnej, potem dodaj i pokaz i wypełnij wynikiem do ostatniej pełnej / względnie ostatniego pełnego wiersza. any ideas?

    0
  • #8 25 Lut 2014 19:54
    JRV
    Specjalista - VBA, Excel

    zimaidzie napisał:
    potem dodaj i pokaz

    co do chego dodac?
    To wszystko zależy formuły nie ręcznie rozszerzyć?

    0
  • #9 25 Lut 2014 20:15
    zimaidzie
    Poziom 5  

    moze niezbyt jasno określiłem. A1+B1=C1, A2+B2=C2 chodzi o to, zeby makro samo wykrywało czy jest w trzecim wierszu A3+B3 i podstawiło wynik C3 itd. czyli jesli jest A4+B4 to wynik C4 ..

    0
  • #10 25 Lut 2014 20:28
    JRV
    Specjalista - VBA, Excel

    No spróbuj tak:
    Sub rozs()
    Dim ow&
    ow = Cells(Rows.Count, 1).End(xlUp).Row
    Cells(1, 3).Copy Range(Cells(2, 3), Cells(ow, 3))
    End Sub
    W C1 musi być przykładem formuły

    0
  • #11 25 Lut 2014 23:56
    cbrman
    Poziom 27  

    Przetestuj czy o takie działanie Ci chodziło

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0