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

excel 2013 - lista rozwijalna

nunak 16 May 2014 10:07 1878 9
  • #1
    nunak
    Level 14  
    Witam.
    Proszę o poradę w jaki sposób zrealizować następujące zagadnienie.
    Mam dwa pliki.
    W jednym są dane pracowników * imię i nazwisko.
    W drugim -> cały plik roboczy.

    Potrzebuję w drugim pliku zrobić listę rozwijalną ze sprawdzaniem poprawności danych z imionami i nazwiskami pracowników.

    Po przeniesieniu danych do jednego pliku tyle że w innym arkuszu wszystko działa jak należy -> ale odwołanie zewnętrzne zgłasza błąd * należy odwołać się do pojedynczej komórki ( także nie działa ) lub odwołania do funckji.
    W excelu 2007 wszysztko było ok, ale 2013 już nie .
    Robię to przez Dane, Poprawność danych, Lista.

    W załączeniu przykładowy plik podglądowy.
  • #2
    JRV
    VBA, Excel specialist
    Witaj.
    Nie można dołączyć plik?
  • #3
    marek003
    Level 40  
    nunak wrote:
    ... W excelu 2007 wszysztko było ok ...

    Możesz załączyć przykładowe pliki z 2007 kiedy "wszystko było ok"
    Bo jak dobrze pamiętam to nigdy tak nie było - ale nie testowałem takiego rozwiązania więc .. .

    W E2010 zdefiniowana nazwa pozwala pobrać dane z innego pliku niestety poprawność danych zauważa że dane są poza skoroszytem i d..a blada.
  • #4
    nunak
    Level 14  
    Oj, w chwili obecnej dysponuję tylko officem 2013, ale tak mi się wydaje, że na wcześniejszej wersji tj 2007 można było spokojnie wstawić listę rozwijalną "ze sprawdzaniem poprawności danych" z innego pliku.
  • #5
    marek003
    Level 40  
    Może zrób arkusz pomocniczy w którym "na sztywno" przypisz odwołania do konkretnych komórek z drugiego skorosztu. I na tej podstawie zrób listę.

    Na marginesie dodam że jestem w stanie zaakceptować że w E2003 i w dół mogło to działać (poprzez definicję nazwy i później sprawdzanie poprawności) - ale sprawdzę dopiero jutro.
  • #6
    nunak
    Level 14  
    Wszystko by było ok, ale jest jedno ale.
    Plik z danymi pracowników -> będzie liczył około 1000 rekordów zmienne nawek kilka razy w tygodniu.
    Cały plik w którym pracuję -> czyli powiedzmy raport dzienny -> waży około 4 MB -> pusty szkic ( 90% arkusza to funkcje). Dodanie jeszcze tych rekordów zwiększy rozmiar pliku a niestety te kompy które mamy na firmie nie są demonami prędkości.
  • #7
    JRV
    VBA, Excel specialist
    Witam.
    Być może jest inne podejście do pracy. Sądzę, że wybierając z listy wartości 1000 nie jest szczególnie łatwa praca. Jeśli lista w innym pliku, można utworzyć kwerendę.
    nunak wrote:
    waży około 4 MB
    Weź mniej ozdoby i formatowanie.
  • #8
    nunak
    Level 14  
    żadnego formatowania zbędnego i ozdób nie ma.
    Jest to cała jakby tu nazwać aplikacja oparta na systemie kodów kreskowych.
    To wszystko jest już tak mocno rozbudowane , że zastanawiam się nad przejściem na coś typowo bazodanowego.
    Tylko mankament jest taki -> że Excela łatwo powiązać z Subiektem -> programem księgowym i dlatego ciągle pozostaję przy excelu.
    Lista z wartości faktycznie nie jest wymagana i może być uciążliwa ale to miało plus taki że jest sprawdzanie poprawności danych. A to jest dla mnie priorytem.
    Muszę mieć konkretnie takie same nazwy co w pliku wejściowym pracowników -> w przypadku 2 takich samych imion i nazwisk brane kolejne pole pod uwagę -> autorozliczanie godzin pracy, stawki, stanowisko itp.
  • #9
    Maciej Gonet
    VBA, Excel specialist
    Dzień dobry,
    Żeby poprawność danych mogła korzystać ze źródła w innym skoroszycie, należy posłużyć się nazwą zakresu. Najłatwiej zrobić to w taki sposób:
    1. W skoroszycie źródłowym nadać nazwę zakresowi danych źródłowych. Jeżeli danych będzie przybywać najlepiej, żeby był to zakres dynamiczny np. formuła
    Code: text
    Log in, to see the code

    której nadajemy nazwę np. Nazwiska. Ta formuła odwołuje się do całej kolumny A. Jeżeli można oszacować maksymalną liczbę wpisów, lepiej ograniczyć ten zakres, wtedy wyszukiwanie będzie sprawniejsze.
    2. W skoroszycie źródłowym tworzymy listę rozwijaną, wpisując jako zakres listy
    Code: text
    Log in, to see the code

    3. Kopiujemy komórkę z listą rozwijaną do skoroszytu docelowego. Wraz z listą skopiuje się definicja nazwy Nazwiska, przy czym odwołania zmienią się na takie:
    Code: text
    Log in, to see the code

    Aby to rozwiązanie działało oba skoroszyty powinny być otwarte i aby uniknąć problemów należy najpierw otwierać skoroszyt z listą, a potem ten ze sprawdzaniem poprawności, a zamykać w odwrotnej kolejności.
    Rozwiązanie to działa w Excelu 2007 i 2010, nie miałem możliwości sprawdzenia w wersji 2013, ale nie widzę powodu dlaczego miałoby nie działać. Ale proszę sprawdzić.
    Pozdrowienia.
  • #10
    nunak
    Level 14  
    Jakieś rozwiązanie to jest.
    Ale zapomniałem dodać, że ta powiedzmy "aplikacja" która napisałem działa w całej sieci lokalnej.
    Odwołania do poszczególnych komórek pobierane są z kilku miejsc sieciowych jednocześnie.
    Tak więc i ten plik z nazwiskami nie będzie *nie może być dostępny w całośći.

    W związku z powyższym -> aby nie zapętlać się może tak mocno -> zazkoduję poprostu imiona i nazwiska i dam pracownikom identyfikatory i wtedy brygadzista zmiany bez problemu sobie czytnikiem przejedzie. W ten sposób "po najmniejszej lini oporu załatwię sprawę" *poprawności danych.