Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA - Automatyczne uruchamianie makra

17 Sty 2018 14:48 1188 4
  • Poziom 4  
    Witam
    Mam Taki problem.
    Chciałbym aby automat uruchamiał makro dla każdego arkusza stworzonego w Skoroszycie. Ten kod w takim zapisie uruchamia makro tylko w jednym arkuszu. Nawet w takim przypadku procedura zatrzymuje się na wierszy ( pogrubiłem wiersz)

    poniżej kod:

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Row = 50 And Target.Column = 22 Then

    Sh = ActiveSheet.Name
    Selection.Copy
    Sheets("TABELE").Select
    Range("AB65").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("aa95:ab102").Select
    Selection.Copy

    Range("af95:ag102").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

    Range("af95:ag102").Select
    Selection.Copy
    Sheets(Sh).Select
    Range("w52:x59").Select
    ActiveSheet.Paste

    End If
    End Sub
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Poziom 29  
    SZWAJCAR007 napisał:
    aby automat uruchamiał makro dla każdego arkusza stworzonego w Skoroszycie

    Umieść "ciałko" makra w procedurze modułu 'ThisWorkbook':
    Kod: vba
    Zaloguj się, aby zobaczyć kod

    Dodatkowo będziesz mieć "od razu" info o nazwie arkusza.

    Polecenie "Range("AB65").Select" jest odniesieniem nie do arkusza "TABELE", ale do bieżącego arkusza przed zaznaczeniem tegoż o nazwie "TABELE".
    "Wszystko" co masz bez kropki (tutaj Range <> .Range, porównaj z "Sheets("TABELE").Range("AB65").Select) i wyraźnego adresowania tyczy się arkusza, w którym znajduje się procedura "Worksheet_Change".
  • Poziom 4  
    Dzięki za radę

    Całość mam wrzucone do modułu 'ThisWorkbook.
    Nie bardzo rozumiem jak mam zmienić aby nie wyskakiwał błąd. Zależy mi na tym, aby np. z arkusza 1 wywołać makro, które na podstawie danej z arkusza 1 wrzuci do arkusza tabele i a wynik z arkusza tabele zostanie przeniesiony do arkusza 1 i oczywiście chciałbym po wykonaniu makra pozostać na zakładce arkusz1. Zależy mi na tym aby bez względu z którego arkusza wywołuje makro wynik powinien zostać przeniesiony do arkusza z którego wywołuję makro.
  • Poziom 29  
    SZWAJCAR007 napisał:
    ... aby bez względu z którego arkusza wywołuje makro ...

    Zakładka "TABELE" ma chyba jednak nie podlegać żadnym działaniom takiego makra ?
    Działałaby wtedy sama na sobie ...

    Edycja:
    Dwa warianty podstawowe oraz dwa skrótowe tych podstawowych, wybierz sobie najbardziej pasujący:
    Kod: vba
    Zaloguj się, aby zobaczyć kod
  • Poziom 4  
    Dzięki.
    Procedura działa