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.

[VBA][Excel] Wstawianie wierszy w dynamicznie zmieniających się miejscach

szczurky 17 Maj 2012 10:20 3509 2
  • #1 17 Maj 2012 10:20
    szczurky
    Poziom 2  

    W jednym arkuszu co jakiś czas jestem zmuszony tworzyć min. 5 wierszy (odpowiednio sformatowanych) i jest to dosyć czasochłonne, dlatego od kilku dni zmagam się z napisaniem makra, które by to trochę usprawniło. Chodzi o to aby przez buttony móc kopiować 5 wierszy z jednego arkusza do drugiego w odpowiednim miejscu. Problem polega na tym, że te miejsca będą się dynamicznie zmieniać wraz z dokładaniem następnych wierszy. Odpada więc wpisywanie sprecyzowanych adresów komórek w VBA.
    Myślałem początkowo, żeby makro w buttonie wynajdowało w kolumnie A określony przy nim powiat, zaznaczało go, offset'em przesunęło się tuż nad przycisk aby wstawić 5 nowych wierszy a w ich miejsce kopię pustej sformatowanej tabelki z innego arkusza (dlatego takie malwersacje, żeby mieć pewność, że wszystko dziać się będzie w obrębie scalonej komórki z nazwą powiatu).
    Wiem, że jest to pomysł "na około", ale nic innego mi nie przychodzi do głowy. Przypuszczam też, że trochę namotałem z opisem, więc jak będą jakieś pytania to chętnie odpowiem w miarę możliwości. Poza tym w samym VBA jestem na poziomie początkującym jak widać, więc proszę o wyrozumiałość.

    W załączonym pliku:
    Arkusz 1 - Tak makro miałoby mniej więcej działać, ale tutaj akurat zostało po prostu nagrane i przy dołożeniu choćby 1 wiersza nad tą tabelką tracę jej spójność;
    Arkusz 2 - Moje nieudolne próby skonstruowania makra kopiującego tabelkę z Arkusza 3 do 4.
    Zarys wygladu - tak powinna wyglądać tabelka za każdym razem gdy wklei się dodatkowe wiersze. Po wciśnięciu buttona przy określonym powiecie - tabelka z innego arkusza wkleja się tuż nad nim (nad buttonem).

    0 2
  • Pomocny post
    #2 17 Maj 2012 11:38
    adamas_nt
    Moderator Programowanie

    Zdaje się, że dla każdego powiatu musisz mieć osobne procedury dla przycisków. W przykładzie makro "orientuje się" po nazwie miasta wpisanej w komórce zakrytej przyciskiem.

    0
  • #3 17 Maj 2012 13:25
    szczurky
    Poziom 2  

    Dziękuję za szybką i trafną odpowiedź. Działa jak należy... prawie, bo po wklepaniu całego kodu do oryginalnego pliku faktycznie wstawia tabelkę, ale zaraz po tym wywala errora o błędnym typie danych.
    "Run-time error '13': Type mismatch" w linijce:

    nazwa = "program" & Mid(Cells(wrs, 2).Offset(-5, 0).Value, 8, 3) + 1

    Edit #1

    Problem rozwiązany przez usunięcie tej linijki, bo w sumie i tak nazwa tej komórki będzie zawsze edytowana przez użytkownika. Dziękuje jeszcze raz za pomoc. Zamykam.

    0