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 - Jak wyświetlić dane pracownika w osobnych liniach?

JaroFon 23 Sty 2012 18:18 8073 9
REKLAMA
  • #1 10438110
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Witam.
    W arkuszu mam 150 komórek w których wpisuję dane pracownika: Nazwisko, Imię i Numer. Docelowo chcę aby te wszystkie dane wyświetlały się jedno pod drugim. Najprościej to w komórkach włączyłem zawijanie tekstu. Jednak komórki są na tyle rozszerzone aby zmieściły się w jednej linie długie nazwiska i rozszerzenia komórki nie chcę już zmieniać. Ale jest problem, kiedy nazwisko i imię jest krótkie to wyświetlą się w jednej linii a ja potrzebuję żeby mino to wyświetliły się jedno pod drogim. Próbuje do kodu VBA arkusza dodać poniższy kod ale niestety nie wiem czy kod jest poprawny i w jakim dokładnie miejscu kodu powinienem umieścić poniższy kod aby zawsze kiedy dodam lub zmienię dane pracownika od razu kod zadziałał i podzielił dane. czy mogę poprosić o podpowiedź w rozwiązaniu problemu?
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 10439763
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Najlepiej zrealizować to w procedurze zdarzeniowej przy zmianie.
    Ograniczać zakres już umiesz ;) If Not Intersect(Target, Range...
  • #3 10441263
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Kurcze nic mi z tego nie wychodzi, daje taki kod ale wywala błąd:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #4 10441339
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Nie to zdarzenie, nie taka składnia, reszta OK...
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #5 10441390
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Hmmm. Dziwne ale kod nie wykonuje zadania. Błędów nie ma a w komórkach wyrazy nie zostały rozdzielone
  • REKLAMA
  • #6 10441398
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Kod we właściwym arkuszu? Zakres OK ("A1:A6")?

    Excel VBA - Jak wyświetlić dane pracownika w osobnych liniach?
  • #7 10441451
    JaroFon
    Poziom 23  
    Posty: 1631
    Pomógł: 11
    Ocena: 355
    Już jest ok. Nie pomyślanemu że trzeba dane wpisać od nowa lub dwa razy kliknąć na komórkę. W sumie to zamknięcie i ponowne otwarcie pliku też nie wykonało zadania.
  • Pomocny post
    #8 10441596
    marek003
    Poziom 40  
    Posty: 4607
    Pomógł: 801
    Ocena: 487
    JaroFon napisał:
    ... W sumie to zamknięcie i ponowne otwarcie pliku też nie wykonało zadania.


    Bo to dotyczy modułu Change arkusza i jeszcze warunku z "Target".
    Czyli tak na wprost w mocnym uproszczeniu:
    wykonaj gdy nastąpiła jakaś zmiana w arkuszu ... gdy (if) się zmieni coś we wskazanym zakresie - czyli zrób podstawienie w momencie zmiany (próby zmiany) komórek w danym zakresie.
  • #9 10499814
    wpat
    Poziom 22  
    Posty: 448
    Pomógł: 38
    Ocena: 39
    Do przenoszenia do następnego wersu w zakresie jednej komórki podczas pisania używam lewy ALT + Enter
    Kowalski ALT+Enter
    Adam ALT+Enter....
  • REKLAMA
  • #10 11214405
    cajgi
    Poziom 10  
    Posty: 21
    Ocena: 1
    Mój problem jest podobny jednak wykonać go musze trochę inaczej. Mam w excelu wyrazy takie jak ==319102=02PU02++02VW154+VO-XS6 w jednej komórce. Różnią się one końcówką po +VO, może być naprzykład -XS7, -XS8. Chcę tak długi wyraz rozdzielić do następnego wersu po podwójnym plusie czyli żeby wyglądał w jednej komórce tak:
    ==319102=02PU02
    ++02VW154+VO-XS6

    Jak najłatwiej coś takiego zrobić. Wspomnę że wyrazów tych jest ich bardzo dużo i metoda alt+enter nie jest zbyt wygodna, natomiast o VBA nie mam za bardzo pojęcia. Prosiłbym o pomoc w tym problemie

Podsumowanie tematu

✨ W dyskusji poruszono problem wyświetlania danych pracownika w Excelu, gdzie użytkownik chciał, aby nazwisko, imię i numer były wyświetlane w osobnych liniach w jednej komórce. Użytkownik próbował użyć VBA, aby automatycznie wprowadzać podział tekstu, jednak napotkał trudności z poprawnym umiejscowieniem kodu oraz jego działaniem. Ostatecznie, po kilku próbach i wskazówkach od innych uczestników, użytkownik zrozumiał, że kod powinien być umieszczony w procedurze zdarzeniowej `Worksheet_Change`, co pozwala na automatyczne przetwarzanie danych po ich zmianie. Wskazano również na konieczność ponownego wprowadzenia danych, aby kod zadziałał poprawnie.
REKLAMA