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 odwołanie do innego arkusza

bartezgo 07 Gru 2011 11:35 10580 6
  • #1 07 Gru 2011 11:35
    bartezgo
    Poziom 9  

    Witam,

    nie miałem wcześniej styczności z VBA. Jak w VBA odwołać się do drugiego arkusza z tego samego pliku? Potrzebuję aby makro sprawdzało jaka liczba (od 1 do 30) jest w komórce w arkuszu A i na podstawie danej liczby pobierało dane z drugiego arkusza B.

    Dzięki i pozdrawiam,
    bartezgo

    0 6
  • Pomocny post
    #2 07 Gru 2011 11:42
    marcinj12
    Poziom 40  

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    albo
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    albo
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    albo
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Każde z powyższych można poprzedzić klasą ThisWorkbook.

    Jeżeli odwołujesz się do jakiegoś arkusza wielokrotnie, a chcesz skrócić zapis:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    1
  • #3 07 Gru 2011 13:04
    bartezgo
    Poziom 9  

    Dzięki wielkie za pomoc. A jeszcze jedno pytanie. Jak zrobić, żeby dane aktualizował automatycznie, a nie dopiero po wywołaniu makro skrótem klawiszowym?

    0
  • #4 07 Gru 2011 13:09
    marcinj12
    Poziom 40  

    Formułą jakąś? Podałeś za mało szczegółów żeby coś więcej powiedzieć.

    0
  • #5 07 Gru 2011 13:21
    bartezgo
    Poziom 9  

    Napisałem takiego case`a. Chodzi o to, że jak wpiszę wartość do komórki (2, 9) to chciałby żeby makro automatycznie się uruchamiało w tym momencie, a nie dopiero po kliknięciu sekwencji klawiszy przypisanych do makro.

    Sub copy()
    Dim nr_kolumny As Integer
    Dim il_kolumn As Integer
    Dim il_wierszy As Integer
    nr_kolumny = 2
    il_wierszy = 6

    Select Case Worksheets("Cost").Cells(2, 9)

    Case 1
    For il_kolumn = 1 To 49
    ' Worksheets("Cost").Cells(il_wierszy, 3).Value = nr_kolumny
    Worksheets("Cost").Cells(il_wierszy, 3).Value = Worksheets("Out put").Cells(7, nr_kolumny)
    il_wierszy = il_wierszy + 1
    nr_kolumny = nr_kolumny + 1
    Next il_kolumn

    Case 2
    For il_kolumn = 1 To 49
    Worksheets("Cost").Cells(il_wierszy, 3).Value = Worksheets("Out put").Cells(8, nr_kolumny)
    il_wierszy = il_wierszy + 1
    nr_kolumny = nr_kolumny + 1
    Next il_kolumn

    Case Else
    MsgBox "Upps error."

    End Select

    End Sub

    0
  • Pomocny post
    #6 07 Gru 2011 13:45
    marcinj12
    Poziom 40  

    W takim razie w arkuszu z tą komórką wstaw taki fragment:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Nazwa makra - copy() - nie jest zbyt fortunna, bo pokrywa się z poleceniem VBA o takim samym tytule. Lepiej zmień ją np. na myCopy

    0
  • #7 07 Gru 2011 13:53
    bartezgo
    Poziom 9  

    Jeszcze raz dzięki. Zmieniłem nazwę makra, dodałem fragment i wszystko śmiga.

    Pozdrawiam!

    0