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- VBA Automatyczne numerowanie i sortowanie na podstawie zadanego numeru LP

JaroFon 24 Sty 2012 13:52 7558 6
REKLAMA
  • #1 10441599
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    W arkuszu dodałem kod który automatycznie numeruje komórki jako liczba porządkowa. Kod wygląda tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Jednak docelowo pierwsza lista będzie miała 20 pozycji a druga lista będzie miała 120 pozycji. W sumie to żaden problem, jednak jak dodam do kodu wszystkie 140 pozycji to kod będzie dość spory, czy można to jakoś zminimalizować tak aby zachować działanie kodu na dwie listy? Z góry chciałbym dodać że kod zostanie jeszcze bardziej rozbudowany o dodatkową czynność którą będzie musiał wykonywać ale jeszcze nie wiem jak to zrobić, a dokładnie chodzi mi o to że jak widać w moim kodzie odpowiednie komórki mają przydzieloną liczbę porządkową. I to właśnie chciałbym wykorzystać w ten sposób że jeśli w którejkolwiek liście w kolumnie A np. w pozycji 5 wpiszę liczbę 2 to żeby kod wyciął te dwa wiersze przynależne pod tą komórkę i przeniósł je w miejsce gdzie powinna być liczba porządkowa 2, tak jak to pokazałem na screenie, czy jest to do zrealizowania?
    Excel- VBA Automatyczne numerowanie i sortowanie na podstawie zadanego numeru LP
    Załączniki:
    • Automatyczne numerowanie i sortowanie.rar (15.54 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #2 10441654
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Problem w tym, że nigdy nie uda Ci się wpisać innej liczby porządkowej przy tej postaci kodu (nawiasem pisząc, zdała by się pętla). Zanim makro "wyprostuje" numerację musiałbyś zrealizować kopiowanie... Czyli odpowiedź brzmi: Tak, jest do zrealizowania.
  • REKLAMA
  • #3 10441739
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Więc same przenoszenie wierszy w odpowiednie miejsce zrealizuję ręcznie ponieważ odpowiedniego kodu kopiowania i przenoszenia nie potrafię napisać. Ale jak zmniejszyć kod z pierwszego mojego pytania żebym nie musiał w kodzie pisać 140 linijek ale podać powiedzmy na to zakres numerowania komórek biorąc pod uwagę że komórki są łączone po dwie?
  • Pomocny post
    #4 10441789
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Spróbuj z arkuszem z załącznika (podmień kod)
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #5 10441980
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Ok do działa wyśmienicie, ale chcę teraz zrobić drugą listę która będzie się numerowała znowu od liczby. Zrobiłem tak jak w poniższej liście jednak kolejna lista zacznie się numerować ale tylko pierwsza pozycja drogiej listy i to jeszcze kolejną liczbą jaką została zakończona pierwsza lista czyli 21
    Excel- VBA Automatyczne numerowanie i sortowanie na podstawie zadanego numeru LP

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #6 10442021
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Następna lista musi zaczynać się od 43 wiersza. Czyli odwracając działanie w kodzie:
    (43+1) / 2 = 22
    I trzeba zresetować LP przed następną pętlą
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #7 10442089
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    No już myślałem że coś pomieszałem bo cuda zaczęły się robić ale widzę że poprawiłeś :)
    Dzięki wielkie za pomoc

    Dodano po 23 [minuty]:

    Teraz jest już wszystko ok. Niestety kod powoduje że czynność wykonuje się za każdym razem jak kliknę gdziekolwiek w arkuszu i spełnienie zadania trochę trwa dlatego kod przeniosłem do Modules i dodałem przycisk którym w razie potrzeby odświeżam arkusz. A kod wygląda tak w arkuszu w którym potrzebowałem go wykorzystać:
    Kod: text
    Zaloguj się, aby zobaczyć kod

Podsumowanie tematu

✨ W dyskusji poruszono temat automatycznego numerowania komórek w Excelu za pomocą VBA. Użytkownik przedstawił kod, który numeruje komórki w dwóch listach, jednak zasygnalizował potrzebę uproszczenia kodu, aby uniknąć pisania 140 linii. Odpowiedzi sugerowały użycie pętli do generowania numeracji oraz przeniesienie kodu do modułów, co pozwoliło na uruchamianie go za pomocą przycisku, zamiast przy każdym kliknięciu w arkuszu. Użytkownik ostatecznie dostosował kod, aby numeracja drugiej listy zaczynała się od odpowiedniego wiersza, co zostało osiągnięte przez resetowanie zmiennej elpe.
Wygenerowane przez model językowy.
REKLAMA