logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Excel: Automatyczne numerowanie listy pracowników w kolumnie 'A' po dodaniu

JaroFon 04 Gru 2012 15:39 2613 9
REKLAMA
  • #1 11609594
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Jestem w trakcie tworzenia nowego pliku który będzie mi służył do ewidencji pracowników, czyli tworzenia listy pracowników z różnymi danymi osobowymi (dodawani, edytowanie, usuwanie). Z samą opcją dodawania pracownika poradziłem sobie na swój sposób. Poniższy kod dodaje mi nową pozycję do listy, jak zrobić żeby po dodaniu nowej listy lista została automatycznie ponumerowana? Czyli chcę aby Kolumna 'A' od wiersza 2 była numerowana po dodaniu nowej pozycji?

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 11610628
    Taczan
    Poziom 12  
    Posty: 22
    Pomógł: 6
    Po Next dodać

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Powinno działać. Pamiętaj tylko, że gdy w = 1 dostaniesz error, bo spróbujesz się odnieść do Row = 0. Oraz, jeśli ta komórka nad nie będzie liczbą(bądź pusta), a spróbujesz do niej dodać 1. Można temu zapobiec dodając kilka If'ów.

    Jednakże myślę, że nie jest to takie znów konieczne, gdyż arkusz będzie edytowany tylko przez makro, a nie użytkownika, więc nic takiego nie powinno mieć miejsca. ;>
  • REKLAMA
  • #3 11613935
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Jak zrobić żeby listę pokazaną na screenie przefiltrować? Docelowo na dzień dzisiejszy mam w ewidencji ponad pięciuset pracowników. Zdarzy się że będę potrzebował wyszukać któregoś pracownika aby go edytować lub usunąć, jak przy pomocy dolnych okien TextBox mogę przefiltrować listę pracowników na podstawie nazwiska lub numeru, bez konieczności przewijania całej listy?
    Excel: Automatyczne numerowanie listy pracowników w kolumnie 'A' po dodaniu

    W oknie które pokazuje listę pracowników mam wklejony taki kod:

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #4 11615672
    Taczan
    Poziom 12  
    Posty: 22
    Pomógł: 6
    Fajne te Twoje pytania. ;) Ile sam sie przy nich uczę. ;)

    Znalazłem rozwiązanie na Twoje pytanie, daj mi 10 min to poskładam to czytanie i wrzucę tu. ;)

    Kod: text
    Zaloguj się, aby zobaczyć kod

    Zamiast
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Możesz dac
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Jako iz listę zdefiniowałeś przy ladowaniu - jednak musisz w tym wypadku dodać na początku Modulu przed jakimikolwiek procedurami

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #5 11618967
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Kurcze nie potrafię uruchomić tego kodu. Nie działa mi :cry:

    Dodano po 7 [minuty]:

    A jednak się myliłem, poszło. Coś źle zrobiłem i nie chciało się uruchomić. Dzięki wielkie

    Dodano po 11 [minuty]:

    Ale jednak mam drobne pytanko, dlaczego po przefiltrowaniu listy do konkretnego np. nazwiska na liście pojawia się jedno puste pole jak widać na screenie? Przed filtrowaniem tego pola nie ma, pojawia się przy wprowadzeniu już pierwszej litery w polu 'Nazwisko' lub cyfry w polu 'Znaczek'
    Excel: Automatyczne numerowanie listy pracowników w kolumnie 'A' po dodaniu
  • #6 11622226
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Proszę powiedzcie mi w jaki sposób mogę z powrotem załadować danego pracownik z listy aby móc go prze edytować lub usunąć? Z samą opcją dodawania nowego pracownika poradziłem sobie. Może krótko opiszę jak to zrobiłem (zrobiłem to po swojemu tak jak potrafiłem). Jak już wprowadzę wszystkie dane pracownika to w przycisku 'Dodaj' mam kod:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    ...a w 'Module' :

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Po wpisaniu danych w Text i ComboBoxy dane automatycznie zapisują się w pomocniczym wierszu (komórki widoczne w powyższym kodzie) jaki jest utworzony w tym samym arkuszu w którym jest lista pracowników. Ostatecznie zostaje wykonane poniższe zadanie:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Powyższe jest może trochę skomplikowane ale inaczej nie potrafiłem, jeśli ktoś zaproponuje coś lepszego to będę wdzięczny.
    Proszę pomóżcie mi jak z powrotem załadować danego pracownika do okna 'Kwestionariusza', albo prościej jak zrobić możliwość prze edytowania pracownika lub jego usunięcie

    A to jest okno 'Kwestionariusza' :
    Excel: Automatyczne numerowanie listy pracowników w kolumnie 'A' po dodaniu
  • REKLAMA
  • Pomocny post
    #7 11627718
    Taczan
    Poziom 12  
    Posty: 22
    Pomógł: 6
    Puste pole pojawia się, gdyż poepłniłem błąd. Przy linii ReDim strNowaLista odejmij 1 od intPozycja

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Co do usuwania/modyfikowania danych pracowników.

    Masz coś, co załaduje Ci ich dane do UserForma, tak? Coś co znajduje odpowiedni wiersz i ładuje?

    Jeśli tak, i znasz numer wiersza, to chyba nie powinien być problem
    Przy modyfikacji po prostu nadpisujesz, a przy usuwaniu kasujesz cały wiersz.

    Czy problem jest bardziej złożony?
  • #8 11628327
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Dzięki, pusta pozycja już się nie pojawia. Jeśli chodzi o modyfikacje to chcę aby powiedzmy na to dane do edycji przenieść do (tak zaplanowałem) wiersza'AA3-AV3' arkusza '4' ale nie wiem jak to zrobić. Pewnie rozwiązanie jest banalne ale nic mi nie wychodzi. Na poniższym screenie widać że dodałem przycisk 'Wstaw' i po kliknięciu na niego żeby zaznaczona pozycja przeniosła się do wiersza 'AA3-AV3' lub po bezpośrednim kliknięciu na danego pracownika bez przycisku 'Wstaw'
    Excel: Automatyczne numerowanie listy pracowników w kolumnie 'A' po dodaniu
  • REKLAMA
  • #9 11635110
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Mam problem z zastosowaniem poniższego kodu. W UserForm przyciskiem chcę aby zostało wykonane zadanie z poniższego kodu który jest umieszczony w 'Modules', niestety po kliknięciu na przycisk w UserForm nic się nie dzieje. Jeśli ten sam kod wstawię do przycisku który umieszczę bezpośrednio w arkuszu to jest wszystko ok, kod wykonuje zadanie.

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Jak zrobić żeby to samo zadanie zostało wykonane z przycisku pokazanym na poniższym screenie?

    Excel: Automatyczne numerowanie listy pracowników w kolumnie 'A' po dodaniu

    ...do przycisku mam wklejony poniższy kod:

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #10 11635864
    Aldrin
    Poziom 22  
    Posty: 317
    Pomógł: 68
    Ocena: 49
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Excel nie wie gdzie jest Wstaw2.
    Trzeba to poprzedzić nazwą modułu, w którym jest Wstaw2,
    np. Call Module1.Wstaw2
    (pod warunkiem, że Wstaw2 tam właśnie jest, a nie w Module5 czy innym).

Podsumowanie tematu

✨ Użytkownik pracuje nad plikiem Excel do ewidencji pracowników, w którym chce automatycznie numerować listę w kolumnie 'A' po dodaniu nowego pracownika. Otrzymał wskazówki dotyczące modyfikacji kodu VBA, aby dodać numerację, a także porady dotyczące filtrowania listy pracowników w UserFormie. Użytkownik zadał pytania dotyczące przenoszenia danych do innego wiersza oraz uruchamiania kodu z modułu. Problemy związane z filtrowaniem i przenoszeniem danych zostały rozwiązane poprzez poprawki w kodzie, a także wskazówki dotyczące wywoływania funkcji z różnych modułów.
Wygenerowane przez model językowy.
REKLAMA