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 - Zapis zaznaczonego wiersza w innym arkuszu, w pierwszej wolnej pozyc

cyniuj 14 Paź 2015 13:28 1326 13
  • #1 14 Paź 2015 13:28
    cyniuj
    Poziom 6  

    Witam serdecznie.
    Chcę sobie utworzyć makro które strasznie mi ułatwi pracę, mianowicie:

    Mam kilka arkuszy z pozycjami cenowymi. Potrzebuję aby makro po zaznaczeniu wiersza kopiowało do wyżej wskazanego nowego arkusza zawartość całego wiersza ( tak, to jest wręcz banalne). problem polega na tym że nie mogę sobie poradzić z tym aby wklejał mi to w pierwszym wolnym wierszu(cały czas nakleja mi pozycje na te poprzednio "przerzucone")

    Proszę o pomoc i pozdrawiam :)

    0 13
  • #3 14 Paź 2015 13:57
    cyniuj
    Poziom 6  

    Prawie, tylko po podwójnym kliknięciu ma ten wiersz wysłać do innego arkusza, załóżmy mam 5 arkuszy cennika, a arkusz 6 będzie arkuszem zbiorczym, w którym znajdą się przekopiowane wartości :)

    Ale dzięki!

    0
  • #5 14 Paź 2015 14:18
    cyniuj
    Poziom 6  

    No i Pięknie!

    Tylko... jestem aż tak tępy, czy nie mogę sobie wyświetlić kodu makra?
    Chyba że mój excel się obraził...

    0
  • #6 14 Paź 2015 14:49
    PRL
    Poziom 33  

    Przy otwartym Excelu, Alt+F11.
    Następnie w lewym-górnym okienku 2x klik na nazwę arkusza.

    0
  • #7 16 Paź 2015 10:41
    cyniuj
    Poziom 6  

    Ostatnia rzecz... Dlaczego ta funkcja mi działa tylko w dwóch kartach?

    Rozwinąłem sobie do 10 kart, i lipa, działa tylko dla dwóch kart?

    0
  • #8 16 Paź 2015 10:50
    PRL
    Poziom 33  

    Musisz powyższy kod umieścić w modułach każdego arkusza.

    0
  • #9 16 Paź 2015 10:59
    cyniuj
    Poziom 6  

    No i galanto, dziękuję!

    0
  • #10 17 Paź 2015 09:17
    seba78787878
    Poziom 6  

    Fajna funkcja. Łatwo można ją przerobić na funkcję która po podwójnym kliknięciu usuwa wiersz. Dziękuje. Przyda mi się.

    0
  • #12 20 Paź 2015 22:51
    seba78787878
    Poziom 6  

    Fajna ciekawostka. Bardzo przydatna funkcja. Z mojego punktu widzenia jest tylko jeden problem. Nie ma jak cofnąć danej czynności gdy np przez przypadek zrobi się dwuklik nie w tym wierszu i się go usunie (brak czegoś na zasadzie cofnij).

    0
  • #13 21 Paź 2015 06:12
    PRL
    Poziom 33  

    Należy w procedurze Worksheet_SelectionChange kopiować wybrany wiersz do arkusza pomocniczego, żeby potem można byłoby go przywrócić.

    0
  • #14 15 Gru 2015 20:42
    seba78787878
    Poziom 6  

    Korzystając z ciekawostki kolegi PRL chciałbym przestawić rozwiązanie mojego problemu z kilku postów wyżej. Chodzi o to, że po usunięciu pozycji dwuklikiem móc cofnąć operację usunięcia wiersza.
    Makro poniżej sprawia, że po podwójnym kliknięciu w arkuszu "szablon" w pierwszej kolumnie w danym wierszu wiersz ten zostanie najpierw skopiowany do arkusza "robocze" a później usunięty w arkuszu "szablon".

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    Analogicznie można za pomocą kodu poniżej dwuklikiem w danym wierszu przenieść wiersz z arkusza "robocze" do arkusza "szablon" a na końcu sortując według własnych potrzeb (w pierwszej kolumnie miałem numerację, więc sortowałem według właśnie tej kolumny). W ten sposób można sobie wybrać cofnięcie niekoniecznie ostatniego usuniętego wiersza ale każdego innego w dowolnej kolejności.
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    Za pomocą kodu poniżej przypisując makro do jakiegoś skrótu klawiatury (np. crtl +w) można cofać ostatnie usunięte wiersze według kolejności usunięcia na zasadzie Windosowego "cofnij". Makro działa podobnie do tego powyżej ale przenosi i usuwa wiersze w arkuszu "robocze" od ostatniego usuniętego do pierwszego usuniętego wiersza.
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    Dodam ważną informację dla laików w programowaniu do których się również zaliczam. Pierwsze makro wrzucamy w VBA do Microsoft Exel Object do arkusza "szablon". Drugi podobnie tylko, że do arkusza "robocze" a trzeci kod wpisujemy w dowolnym module.

    Dzięki kolego PRL, że swoją ciekawostką sprawiłeś, że moje komórki mózgowe zaczęły działać i coś takiego poskładałem. Wrzucam w tym temacie rozwiązanie mojego problemu ponieważ może znajdzie się taka osoba, której się to przyda.

    0