Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

EXCEL - dodawanie wiersza w tabelach - VBA makro

kikanek 21 Jun 2018 10:53 8769 15
  • #1
    kikanek
    Level 10  
    Cześć,
    mam problem, otóż w pliku mam dwie tabele o nazwie "TABELA1" i "TABELA2"

    Chce dodać przycisk który będzie pod każdą tabelą a jego funkcją będzie dodawanie kolejnych wierszy (po jednym wierszu)
    Mam takie makro jak poniżej,
    jednak działa tylko dla pierwszej tabeli. Dla drugiej która jest 3 wiersze niżej już nie...
    Jak można to rozwiązać?
    
    Sub WstawWierszTABELA1()
    
    Dim ost&, ile&
    ost = Range("Bytowa2").Rows.Count + 3
    ile = 1
    Rows(ost & ":" & ost + ile - 1).Insert CopyOrigin:=xlFormatFromLeftOrAbove
    
    End Sub
    

    Dzięki za pomoc
  • #2
    lanzul
    Level 30  
    1. Załączając przykładowy plik z danymi - nie muszą być prawdziwe, ale muszą mieć docelowy uklad danych w arkuszu/arkuszach
    2. Powyższe wyjaśni też dokładnie, czy pisząc o tabelach, masz na myśli listy danych, czy "najzwyklejsze" excelowe tabelki-tabelkowe - listy danych mają dodatkowe polecenia vba do ich obsługi, zwykłe tabelki tylko "standardowe"
  • #3
    kikanek
    Level 10  
    Dziękuję za chęć pomocy,
    tabela jest utworzona w excelu poprzez "wstaw tabele"

    w załączniku plik z przykładem

    w docelowej wersji są jeszcze inne tabele niżej dla których też chce zrobić taki przycisk
  • #4
    lanzul
    Level 30  
    Czyli są to listy, a przecież one "same z siebie" dodają sobie wiersze ... ?
    Planujesz wstawiać coś tylko ręcznie, czy może "jakimś mechanizmem" przenosić do listy/list coś z innego miejsca arkusza/zeszytu ?
  • #5
    kikanek
    Level 10  
    Chce aby po przycisku makro dodawało kolejny wiersz w tabeli (nad wierszem "SUMA"). Tak aby każda tabela miała swój przycisk
    Plik wyżej musiałem zapisać xlsx bo xlsm nie przechodziło tutaj.
  • #6
    lanzul
    Level 30  
    Oki, tylko że jeśli postawisz kursor w danej tabeli, to masz już z autoamtu przygotowany pusty wiersz do wprowadzania danych, tak działa lista-tabela.
    EXCEL - dodawanie wiersza w tabelach - VBA makroNowy wiers...tabeli.jpg Download (22.31 kB)

    1. Czy chodzi ci zatem o to, żeby prócz tego wiersza z gwiazdką, makro wstawiało dodatkowy pusty wiersz, jako "kolejny" (wtedy będą dwa puste, w tym jeden z gwiazdką) ?
    2. Czy wystarczy może tylko, że ustawi kursor w wierszu z gwiazdką (po dokonaniu jakiegoś wpisu i tak pojawi się nowy z gwiazdką) ?
  • #7
    kikanek
    Level 10  
    1. Klikam przycisk "Dodaj wiersz"
    2. Makro dodaje jeden wiersz nad wierszem sumy zostawiając formatowania komórek. W tym przypadku numeruje z automatu kolejny wiersz w pierwszej kolumnie a drugi pozostawia pusty

    Uruchom sobie makro które jest w pliku to zobaczysz.
    Problem mam że przy wstawieniu tego makro i przypisaniu w nim zakresu "Tabela2" i tak wstawia mi do pierwszej tabeli
    EXCEL - dodawanie wiersza w tabelach - VBA makro
  • #9
    kikanek
    Level 10  
    Jest super, a powiedz mi jak zrobić taki samo makro "dodaj dodaj wiersz" tak aby na raz dokładało 5 wierszy

    Chciałbym dać jeszcze przycisk do usuwania wierszy jak doda się za dużo
  • Helpful post
    #10
    lanzul
    Level 30  
    Mała przeróbka makr:
    tabela..zip Download (18.43 kB)
    Wiersze można dodawać ze ściśle określonego zakresu, który sam sobie ustalasz ("If ilewrs > 10 Then Exit Sub").
    Usuwanie wierszy tylko pojedynczo, od ostatniego, aby zachować porządek.
  • #11
    kikanek
    Level 10  
    Jest naprawdę super :)

    Powiedz mi czy jest szansa dodać jakąś linijkę kodu do usuwania, aby nie dało sie usunąć pierwszego wiersza w tabeli?
  • Helpful post
    #12
    lanzul
    Level 30  
    Szansa (?) ... nie raczej nie ... ale jest taka możliwość ... :) ... aby dodać linijkę kodu, który zabezpieczy przed usunięciem 1-go wiersza, poniżej jedna z możliwości:
    Code: text
    Log in, to see the code

    tabela..zip Download (18.38 kB)
  • #13
    jend
    Level 1  
    Mam podobny problem jak kolega.. mam kilkanaście tabel w jednym arkuszu.. potrzebuję dodać do każdej z nich 2 wiersze.. czy jest taka możliwość żeby z automatu pod każdą tabelą wstawić dwa wiersze, w lewej kolumnie żeby wpisał się tekst OD a prawa kolumna miałaby być pusta. Czyli tak jak koledze numerują się kolejno wiersze to zamiast numeracji słowo OD i druga kolumna pusta a w drugim wierszu słowo DO i kolumna pusta. screen w załączniku EXCEL - dodawanie wiersza w tabelach - VBA makro
  • #14
    lanzul
    Level 30  
    jend wrote:
    ... dodać do każdej z nich 2 wiersze ... z automatu pod każdą tabelą wstawić dwa wiersze ...

    To znaczy, gdzie wstawić ... do tabeli czy pod tabelę ?
    Przygotuj przykład z minimum 3-4 tabelami w arkuszu.
  • #15
    mario123321123321
    Level 1  
    chciałbym wykorzystać twoje rozwiązanie z makrem "dodaj dodaj wiersz", ale nie radzę sobie (jestem totalnie zielony w excelu).

    Gdy chcę podpiąć twoje makro wyskakuje mi błąd "Run-time error '9'. Subscript out of range" a po kliknięciu debug wyskakuje mi to:
    EXCEL - dodawanie wiersza w tabelach - VBA makro

    możesz krok po korku napisać jak zaimplementować twoje makro w moim arkuszu?
  • #16
    lanzul
    Level 30  
    Zamieść jakiś miarodajny przykład, który wywołuje ten błąd, może to tylko kwestia odpowiedniej nazwy tabeli (zmienna nazwaTBL), a może co innego.