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.

Usuwanie całego wiersza w Excelu za pomocą przycisku.

Laik2013 12 Cze 2013 13:05 1812 9
  • #1 12 Cze 2013 13:05
    Laik2013
    Poziom 11  

    Cześć,

    Poniżej napisałem kod odnośnie kasowania całego wiersza w Excelu za pomocą przycisku.

    Nie wiem dlaczego, ale wartości wprowadzone po przez user form do różnych komórek w wierszu pozostają w tych komórkach, mimo że kod powinien wyczyścić wszystkie komórki.

    Czy ktoś może mi napisać jak zmodyfikować ten kod, aby na pewno wyczyścił cały wiersz?


    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Wielkie dzięki za pomoc,

    Laik2013

    0 9
  • Pomocny post
    #2 12 Cze 2013 14:38
    adamas_nt
    Moderator Programowanie

    Pomimo dość dziwacznego kodu, jak przystało na laika ;) makro działa...

    Linia

    Kod: vb
    Zaloguj się, aby zobaczyć kod
    powoduje zaznaczenie komórek wiersza do pierwszej "dziury" (Ctrl+Shift+strzałka w prawo) i stąd pozostające wartości.

    Proponuję małą przeróbkę (koniecznie przeanalizuj!)
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #3 12 Cze 2013 20:05
    Laik2013
    Poziom 11  

    Dzięki :-)

    Teraz już wiem jak kombinować

    Pozdrawiam
    Laik2013

    0
  • #4 14 Kwi 2015 11:07
    kwiatek24
    Poziom 2  

    Witam forumowiczów,

    pozwolę się podpiąć pod ten temat, żeby nie zakładać nowego a jest powiązany z obecnym.

    Proszę o pomoc/wskazówki w stworzeniu makra, które będzie usuwało określoną ilość wierszy zawierającą konkretne dane.

    Mianowicie :

    - w kolumnie C mam kody produktu
    - w kolumnie J, datę produkcji
    - w kolumnie K, godzinę produkcji

    W innej tabeli mam dane kod i ilość palet( kolumny C,D) np:

    kodu "a" mam 30 pal
    kodu "b" , 5 pal itd.

    Chciałbym, żeby makro automatycznie usuwało wiersze zawierające kody podane w drugiej oraz ilość usuniętych wierszy ma być równa ilości pal z warunkiem, że usuwane pozycje muszą być kolejności rosnącej po kolumnach J i K np:

    kodu "a" ogólnie jest 60 pal i chcę usunąć tylko 30 pal z datami w kolumnie J od 01.01.15 do 03.01.15 i godzinami w kolumnie K od 00:00 do 23:59.

    Bardzo proszę o pomoc w rozwiązaniu takiego (chyba skomplikowanego) problemu.

    Pozdrawiam,

    0
  • #5 14 Kwi 2015 11:31
    JRV
    Specjalista - VBA, Excel

    Załóżmy, że usuwanie z pierwszej tabeli( C, J, K).
    Po usunięciu rekordow w innej tabeli "kod a-30 pal" również usunąć?
    W stosunku do których kolumn sortowanie danych w tabeli pierwszej?
    Że nazwy arkuszy z tabel? Start z pierwszego wiersza?

    0
  • #6 14 Kwi 2015 14:24
    kwiatek24
    Poziom 2  

    dane będą usuwane z pierwszej tabeli ; druga tabela służy jako informacja i ile wierszy danego kodu trzeba usunąć. filtrowanie odbywa się po kolumnie z kodem ( kolumna "C"). poniżej zarejestrowane makro.

    Range("C12").Select ' tabela 2
    Selection.Copy
    ActiveSheet.Range("$A$1:$L$49").AutoFilter Field:=3, Criteria1:="77099803"

    Rows("2:3").Select ' w tym miejscu ręcznie zaznaczam ilość wierszy, które chcę usunąć np kod a 30 pal = 30 wierszy kodu a

    Selection.SpecialCells(xlCellTypeVisible).Select
    Application.CutCopyMode = False
    Selection.delete Shift:=xlUp

    zaznaczenie w sposób manualny zawsze zaczyna się od wiersza nr 2 kolumny J i K są posortowane rosnąco.

    Ten proces chciałbym zautomatyzować, żeby ilość zaznaczanych wierszy pobierana była z tabeli 2

    Dodano po 1 [godziny] 7 [minuty]:

    w załączniku zamieszczam plik z przykładowymi danymi

    arkusz dane : z tego arkusza usuwamy wiersze
    arkusz tabela 2 : informacja ile wierszy danego kodu trzeba usunąć

    0
  • #7 14 Kwi 2015 14:26
    JRV
    Specjalista - VBA, Excel

    kwiatek24 napisał:
    żeby ilość zaznaczanych wierszy pobierana była z tabeli 2

    Z tekstu makra wynika, że usunąć wierszy z tabeli 2
    Jeśli można dołączyć przykład pliku, makro powinno wiedzieć co najmniej nazwy arkuszy lub ich kolejność.

    0
  • #8 14 Kwi 2015 14:51
    kwiatek24
    Poziom 2  

    plik zamieściłem post wyżej

    0
  • #9 14 Kwi 2015 15:00
    JRV
    Specjalista - VBA, Excel

    No widzisz

    kwiatek24 napisał:
    arkusz tabela 2
    faktycznie tabela2
    kwiatek24 napisał:
    W innej tabeli mam dane kod i ilość palet( kolumny C,D)
    faktycznie A,B
    Wtedy
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    1
  • #10 14 Kwi 2015 15:34
    kwiatek24
    Poziom 2  

    Dziękuje bardzo za pomoc ,kod działa tak jak powinien :) , a mogę poprosić jeszcze o opis poszczególnych linii kodów, co dokładnie robią ? Tak na przyszłość bo dopiero zaczynam uczyć się programowania a ta procedura i schemat na pewno się jeszcze przyda.

    0