Wpis z mikrobloga

Mirki, mam problem i może jest ktoś w stanie nakierować na jakieś rozwiązanie. Załóżmy że mamy dwa pliki excela: formularz.xlsx oraz dane.xlsx

W pliku formularz mamy dwie kolumny (patrz zdjęcie).Teraz chce zrobić coś takiego
1. W kolumne B uzytkownik wpisuje trzycyfrowy kod.
2. Po wprowadzeniu wartości nastąpiło wyszukanie danego kodu w drugim pliku dane.xlsx w kolumnie A.
3. Po znalezieniu tego kodu, chce by excel przekopiował opis z kolumny B odpowiadający temu kodowi.
4. Przekopiowany opis został wklejony w pliku formularz w miejscu dopiero co wpisanego kodu.

Jeszcze inaczej: chce by po wpisaniu kodu, excel zobaczyl czy ma odpowiadający temu symbolowi opis. Jeżeli tak to wprowadzoną dopiero co wartośc powinnien podmienić na znaleziony opis.

Dalo by rade coś takiego zrobić? Nakieruje ktoś na jakieś rozwiązanie?

#excel
Pipot - Mirki, mam problem i może jest ktoś w stanie nakierować na jakieś rozwiązanie...

źródło: comment_efPzNB3IgfEE0RDbSNAr0NAAXceeCIp5.jpg

Pobierz
  • 29
@Pipot: Możesz próbować z WYSZUKAJ.PIONOWO w kolumnie obok(C), ale jeśli chcesz zamieniać wartość w komórce, w której użytkownik wpisuje jakieś dane(B) nie obejdzie się bez makr, arkusz może zawierać makra?
@Polinik: Tylko to jest dobre w sytuacji, gdy kody masz cały czas takie same, w przypadku gdy dane w pliku drugim (ten z kodami) się zmieniają lepiej zrobić to makrem (a podejrzewam, że nie bez powodu są dwa pliki).
@5QR_: Możesz w menedżerze nazw zdefiniować zakres, nie musisz na sztywno ustawiać.
Jak masz tabelkę z opisami kodów -- to zaznaczasz całą tabelkę.
"Utwórz z zaznaczenia". ( ͡° ͜ʖ ͡°)
@vaxpnk:
No tak, racja.
@Pipot:
To jak koniecznie muszą być liczby to tylko makro.
A jak możesz używać literek -- menedżer nazw, albo prawilnie wyszukaj.pionowo, które zadziała i na liczby i na litery.
@Polinik:
Tak jak zostało zauważone, nie użyjesz jako nazw liczb. Po drugie trzeba pamietać o "=", a formularz ma być idiotoodporny.

@vaxpnk: @urwisjakichmalo: @5QR_: @Polinik:

Dzięki za wskazanie wyszukaj.pionowo. Jest to bardzo zbliżone do tego co chce osiągnać. Skoro mówicie że trzeba będzie użyc makra, to postaram sie coś wykombinować. Tylko jeszcze pytanie - czy makra nie trzeba będzie aktywować jakimś skrótem klawiszowym, żeby zadziałał i podmienił?
@Pipot:
Jak napiszesz w VBA funkcję to daj pod deklaracją nazwy funkcji

Application.Volatile

wtedy będzie się przeliczać tak jak wbudowane fukcje -- przy każdej zmianie jakiejś komórki.
@Polinik:

Jak napiszesz w VBA funkcję to daj pod deklaracją nazwy funkcji Application.Volatile


Pierwsza zasada budowy jakiegokolwiek arkusza to unikanie funkcji typu volatile, nie mam pojęcia po co miało by być użyte w tym przypadku i w jaki sposób volatile UDF miałoby być lepsze niż sugerowane wyżej vlookup?
@brak_nicku:
Bo autor chce, żeby podmieniać kod, który wpisze użytkownik w komórce na tekst przypisany temu kodowi. I chce, żeby było to automatycznie, po wpisaniu kodu, bez żadnych dodatkowych akcji wyzwalanych ręcznie.
Vlookup tego nie potrafi -- nie podmieni kodu w B2 na jakiś ciąg literek w B2.
A volatile -- żeby się podmieniało automatycznie po wpisaniu kodu.

Chyba, że znasz inny sposób, to z chęcią poszerzę wiedzę, bo temat w
@Polinik: żadna formuła (czy to wbudowana, czy napisana przez użytkownika) nie jest w stanie podmienić formuły na wynik formuły. Ogólnie funkcja UDF VBA nie może zmienić wartości wartości ani formatowania żadnej komórki poza tą, w której jest wpisana. Są pewne tricki, które pozwalają to obejść, ale w tym wypadku nie ma takiej potrzeby. Znacznie prostszym rozwiązaniem jest obsługa zdarzenia Change arkusza i podmiana wartości.
@brak_nicku:
To napisz jak to zrobić, zamiast pisać w stylu "da się to zrobić tak jak chcesz, ale nie ma potrzeby, więc nie napiszę jak. Da się to zrobić inaczej, ale też nie napiszę jak".
Nie bądź jak te stereotypowe typy z elektrody.