Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Uruchomienie makra po zmianie wartości w kolumnie

matylaczki 22 Maj 2012 08:40 3839 6
  • #1 22 Maj 2012 08:40
    matylaczki
    Poziom 8  

    Witam serdecznie,
    chciałbym zapytać, czy jest możliwość automatycznego uruchomienia makra w Excelu w momencie zmiany wartości w zakresie całej kolumny np."O", oraz jak w dalszej części kodu zapisać,aby wszelkie polecenia odbywały się w wierszu w którym została wcześniej zmieniona wartość.
    Może pytanie jest banalne, ale dla mnie raczkującego w VBA to MontEverest.
    Za wszelką pomoc z góry dziękuję.Pozdrawiam

  • #2 22 Maj 2012 10:25
    arnoldziq
    Moderator Programowanie

    Proszę dokładnie opisać, na czym miałaby polegać ta zmiana.
    Są to jakieś obliczenia, na zmienionych danych ?

  • #3 22 Maj 2012 11:10
    walek33
    Poziom 28  

    Cytat:
    czy jest możliwość automatycznego uruchomienia makra w Excelu w momencie zmiany wartości

    Do tego jest:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

  • #4 22 Maj 2012 22:12
    matylaczki
    Poziom 8  

    W kolumnie "O" wpisywane są wartości w zakresie 1-10. Przy zmianie wartości w jednym z wierszy danej kolumny powyżej 5 następuje uruchomienie makra, które tworzy nowy arkusz z formularzem do którego kopiowane są wartości z danego wiersza.(nie wiem czy to jest możliwe, aby za pomocą tego makra następowałoby wysyłanie e-maila z powiadomieniem zainteresowanych osób o utworzeniu nowego arkusza)

  • #5 05 Cze 2012 19:31
    matylaczki
    Poziom 8  

    Pisząc kod jak poniżej:
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Address = "$A$1" Then
    wszystko działa tak jak chciałem, ale tylko w zakresie podanej komórki.
    A czy można i jak zapisać aby działało w całej kolumnie?
    I jeszcze jedno pytanie:
    Wiersz = ActiveSheet.Cells(ActiveSheet.Rows.Count, "D").End(xlUp).Row
    -formuła wyszukuje ostatnią zapisaną komórkę w kulumnie "D", a jak napisać formułę wyszukującą ostatnią zapisaną komórkę w odpowiednim wierszu.

  • Pomocny post
    #6 05 Cze 2012 21:25
    adamas_nt
    Moderator Programowanie

    matylaczki napisał:
    A czy można i jak zapisać aby działało w całej kolumnie?
    W kolumnie, wierszu, zakresie, poza zakresem. Jak sobie życzysz.

    Po wpisaniu 'Target' i postawieniu kropki w edytowanym kodzie, otworzy się lista rozwijalna z własnościami i metodami. M.in. Address, Column, Range, Row, itp. W niemal każdym przypadku będzie nieco inna składnia zapisu. Można o to "zapytać" Excela przez Debug.Print, lub MsgBox. Sprawdź Np:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Właściwość 'Range.End' ma cztery kierunki: xlUp, xlDown, xlToLeft, xlToRight (argument w nawiasie). Resztę z pewnością sam rozgryziesz.
    Bardzo pomocne w nauce może być zarejestrowanie makra z naciskaniem Ctrl+strzałka (wszystkie po kolei) i przeanalizowanie kodu.

    p.s. Odważniej (częściej) korzystaj z pomocy Excela ;)

  • #7 06 Cze 2012 13:15
    matylaczki
    Poziom 8  

    Teraz wszysko stało się tak jakoś proste. Bardzo dziękuję za szybką pomoc.
    Wszystko działa tak ja chciałem. Jeszcze raz dziękuję!!!

 
Promocja -20%
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
tme