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.

Ustawienie zakresu działania w komórach arkusza przed wykonaniem procedury makra

MaciejBinek 02 Maj 2017 21:14 609 6
  • #1 02 Maj 2017 21:14
    MaciejBinek
    Poziom 3  

    Witam wszystkich serdecznie!
    Dopiero zaczynam przygodę z VBA

    Napisałem w Excelu(makro) procedurę dla zakresu komórek w kolumnie G.

    For Each Cells In Arkusz1.Range("G2:G101")
    Procedura itd.

    Do przycisku w arkuszu przypisałem wspomnianą procedurę, jednak zakres jej wykonania muszę zmieniać ręcznie w makro, a chciałbym ten zakres wpisywać w komórkach arkusza lub stworzyć specjalny przycisk. Ma ktoś może jakiś pomysł ?
    Przykładowo w komórkach E3 i E4 wpisuję, że procedura będzie wykonana dla zakresu od G10 do G40.

    0 6
  • #2 02 Maj 2017 21:33
    lesławek
    Poziom 31  

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    zakres w A1

    0
  • #3 02 Maj 2017 22:27
    MaciejBinek
    Poziom 3  

    Niestety po wielu próbach poległem.

    method range of object _worksheet failed

    Cytat:
    Sub Makro3()

    Dim rngAdress As Range

    rngAddress = Range("C18:C19").Value

    For Each Cell In Arkusz1.Range(rngAddress)

    Cell.Copy
    Call Wszystko

    Next Cell


    End Sub


    Próbowałem z Dim oraz bez, próbowałem różnych wariantów z zakresami, ale to nic nie dało. Po debugowaniu podświetla linkę For Each Cell In Arkusz1.Range(rngAddress)

    Wiem, że to pewnie błahostka dla Was, bardzo proszę o wyrozumiałość.

    0
  • #4 02 Maj 2017 22:49
    JRV
    Specjalista - VBA, Excel

    MaciejBinek napisał:
    w komórkach E3 i E4 wpisuję
    Co konkretnie w tych komorkach?

    0
  • #5 02 Maj 2017 23:06
    MaciejBinek
    Poziom 3  

    JRV napisał:
    MaciejBinek napisał:
    w komórkach E3 i E4 wpisuję
    Co konkretnie w tych komorkach?


    Mam kolumnę G w której znajduje się powiedzmy 100 komórek z numerami.
    Napisałem procedurę, która ma drukować każdy z tych numerów i w makro jest kod:

    Cytat:
    For Each Cell In Arkusz1.Range("F2:F4")


    Dalej jest procedura i wszystko działa tylko, że jeżeli chce zmienić zakres drukowanych komórek to muszę wejść w makro,
    a chciałbym robić to w arkuszu w komórkach przykładowo E3 i E4, lub stworzyć taki przycisk w którym się wpisuje taki zakres.

    0
  • Pomocny post
    #6 02 Maj 2017 23:21
    lesławek
    Poziom 31  

    w tym przykładzie:
    rngAddress = Range("A1").Value
    Range(rngAddress).select

    w komórce A1 wpisz zakres np G2:G200

    makro zaznaczy G2 do G200...

    0
  • #7 02 Maj 2017 23:59
    MaciejBinek
    Poziom 3  

    Troszkę zmieniłem, ale działa :D

    rngAddress = Range("A1").Value

    Range(rngAddress).Activate

    For Each Cell In Arkusz1.Range(rngAddress)

    Przeogrmone dzięki!!

    0