Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel - wyszukaj.pionowo w kilku zakładkach

02 Sty 2020 19:02 423 24
  • Poziom 5  
    Witam, mam do dyspozycji excela 2010, komputer bez dostepu do internetu a tym samym do PQ.

    W pliku excela na zakładce nr 0 chcę mieć komórkę w której wpisuję odpowiednie ID i na jego podstawie wyświetla mi się miejscowość i nazwa ulicy przypisana do tego ID. ID (adresy) znajdują się w 3 zakładkach, ID zazwyczaj nie powtarzają się.
    Chciałem wykorzystać funkcję =WYSZUKAJ.PIONOWO(;;;0)&WYSZUKAJ.PIONOWO(;;;0), ale to się nie sprawdza. Realizuje to funkcję logiczną "i", a w moim przypadku potrzebuję "LUB" i tu sie zaczyna problem, bo nie wiem jak połączyć funkcje lub i wyszukaj.pionowo w moim przypadku Excel - wyszukaj.pionowo w kilku zakładkach
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Poziom 35  
    Źle tworzysz formułę :cry: Jeśli masz jedną tabelę danych prawidłowo oznaczonych identyfikatorami ID (bez powtórzeń :!: ) to ta funkcja jest idealna do Twoich zastosowań :idea:
    Poczytaj w pomocy nt funkcji wyszukaj.pionowo :cunning:
    I ewentualnie przejrzyj odpowiednie wątki na forum :D np https://www.elektroda.pl/rtvforum/viewtopic.php?p=17753739#17753739
  • Poziom 5  
    Nie mam 1 tabeli. Mam 3 tabele w 3 różnych zakładkach i na podstawie tych danych chce je stworzyć 1formułę, która przeszuka mi te 3 tabele i wyświetli 1 wynik
  • Poziom 35  
    cheater napisał:
    Mam 3 tabele

    To wprawdzie jest niezrozumiałe i chyba niepotrzebne :cry: , ale nie będzie sprawiało większego problemu dla utworzenia formuły :D

    Jednak jeśli nie spełnisz podstawowego warunku
    Cytat:
    identyfikatorami ID (bez powtórzeń )

    a jedynie
    cheater napisał:
    ID zazwyczaj nie powtarzają się

    to formuły oparte o funkcję wyszukaj.pionowo nie będą działały :cry:
  • Poziom 5  
    To załóżmy że sie nie powtarzają-ogarme to. Proszę o formułę, jak powinna wyglądać dla tych 3 tabel
  • Poziom 5  
    Dziękuję działa. Teraz 2gi problem:

    Wyświetlam już te nazwy miejscowości i ulic w zakładce 0. W jaki sposób mogę edytować te komórki w zakładce 0, np wyszukuje adres po ID i chcę dopisać drugą ulicę do tego ID albo zmienić jej numer domu z poziomu zakładki 0(bez przełączania się na zakładke nr 1, 2 lub3)?

    Mogę mieć 2 komorki obok siebie. W lewej wyświetlam przy pomocy powyższej komendy, a w praeej będę edytował, ale jaka formuła? :/
  • Poziom 35  
    cheater napisał:
    wyszukuje adres po ID i chcę dopisać drugą ulicę do tego ID albo zmienić jej numer domu z poziomu zakładki 0

    Takie działanie jest sprzeczne z logiką :!:
    Nie można dopisywać innych danych "do tego ID" bo to zmieni cały rekord w bazowej tabeli :D
    Można by ewentualnie rozważać wprowadzanie nowego rekordu pod nowym ID, ale taki sposób jest również nierealny :cry: ze względu na Twój pomysł "3 tabel źródłowych" :!: (nie widać w Twoich rysunkach żadnego uzasadnienia do takiego podziału danych źródłowych :cry: ) - a tu konieczne by było podanie jednoznacznego kryterium czy do kodu VBA, czy do tworzonej formuły :idea:
  • Poziom 5  
    Chodzi mi o możliwość edycji notatki po jej wyszukaniu, bez konieczności przechodzenia do zakładki z całym spisem ulic. Wiem, że tego nie da się zrobic w 1 komórce, więc jak zrobić to w dwóch?

    Excel - wyszukaj.pionowo w kilku zakładkach Excel - wyszukaj.pionowo w kilku zakładkach
  • Poziom 35  
    cheater napisał:
    mam do dyspozycji excela 2010

    A jaka to wersja Office :?: Jeśli to wersja Pro - to masz do dyspozycji również program Access, który posiada gotowe szablony do prowadzenia tego typu bazy danych :idea: Masz tam formularze wyszukiwania poszczególnych rekordów, ich edycji oraz wprowadzania nowych rekordów :!:
    Excel - wyszukaj.pionowo w kilku zakładkach2020-01-0..1).png Download (56.79 kB)
    Access to narzędzie idealne do prowadzenia takiej małej bazy adresowej :idea:
  • Poziom 5  
    Wolałbym w excelu to ogarnąć, bo mam znacznie więcej danych w tym arkuszu, pobieranych z innych arkuszy

    Wersja 14.0 32bit Standard 2010
  • Pomocny post
    Poziom 35  
    cheater napisał:
    więc jak zrobić to w dwóch?

    Jeśli zdecydujesz się na jeden arkusz źródłowy to można Twój moduł wyszukiwarki i moduł wprowadzania nowych rekordów rozwiązać tak jak na zrzucie :ok:
    Excel - wyszukaj.pionowo w kilku zakładkach2020-01-0..2).png Download (33.92 kB)
    Przykładowy plik (przygotowany przykładowo na 50 rekordów w bazie i z odpowiednim kodem VBA wprowadzania nowych rekordów) przedstawiam w załączeniu :idea:
    ProtWyszi..row.7z Download (29.33 kB)Punkty: 2.5 dla użytkownika
  • Poziom 5  
    Dziękuje, ale nie do końca o to mi chodziło. Nie chcę dodawać kolejnych rekordów, tylko móc zmieniać wybraną wartość w aktualnym rekordzie.
    Wyszukuję wartość np ID=5 i zmieniam tylko wybrane wartości (w moim przypadku to będą 3 najniższe pola z działaniami). Główna zakładka będzie wyglądać mniej więcej jak na zdjęciu, ewentualnie mogę rozbić te pola na 2 pola (do odczytu oraz edycji notatki).

    Excel - wyszukaj.pionowo w kilku zakładkach

    Excel - wyszukaj.pionowo w kilku zakładkach
  • Poziom 35  
    Na początku było :cry:
    cheater napisał:
    nie wiem jak połączyć funkcje lub i wyszukaj.pionowo

    potem nowe oczekiwania :D
    cheater napisał:
    chcę dopisać drugą ulicę do tego ID

    a teraz :cunning:
    cheater napisał:
    Nie chcę dodawać kolejnych rekordów, tylko móc zmieniać wybraną wartość w aktualnym rekordzie.


    Nie załączyłeś kolego żadnego przykładowego pliku tylko "cykasz" swoje obrazki :-x i prezentujesz kolejne nowe potrzeby :D

    Edycja wybranych rekordów możliwa jest np poprzez zastosowanie kolejnego oprogramowanego modułu - tak jak na zrzucie
    Excel - wyszukaj.pionowo w kilku zakładkach2020-01...png Download (44.48 kB)
    i w załączonym pliku.
    ProtWyW..d.7z Download (38.13 kB)Punkty: 3 dla użytkownika
  • Poziom 5  
    Dzięęęęękuje. Próbuje zmienić kod pod siebie, ale coś nie do końca chce mi to działać. O czymś zapomniałem. Nie rozumiem co robi "R2C3,TabBaz"

    Excel - wyszukaj.pionowo w kilku zakładkach

    Code:

    Private Sub Zapisz_Click()
    Dim c As Integer
    Dim aktual As String, notat As String
    Dim zapl As String
    'aktywacja roboczego arkusza
    Worksheets("Baza").Activate
    With ActiveSheet

    c = TextBox3.Text + 1 ' numer wiersza aktywnej komórki

    'nazwy okien tekstowych
    aktual = TextBox1.Text
    zapl = TextBox2.Text


    'zapis danych do komórek arkusza
    .Cells(c, 6).Value = aktual
    .Cells(c, 7).Value = zapl

    End With
    Worksheets("WYSZUKIWARKA").Activate
    Range("C16").Select
        ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(R2C3,TabBaz,6,FALSE),"""")"
    Range("C20").Select
        ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(R2C3,TabBaz,7,FALSE),"""")"

    End Sub
  • Poziom 35  
    cheater napisał:
    O czymś zapomniałem

    Tego nie wiem :D Ale z Twojego nowego obrazka :cunning: znowu widać, że rozszerzyłeś bazę danych o kolejne kolumny :!:
    Musisz zatem sprawdzić poprawność dynamicznej nazwy tabeli TabBaz :!:
    i ewentualnie rozszerzyć zakres formuły "autonumerowania" jej rekordów :idea:
    Budowa modułu wyszukiwania oparta jest na prostych formułach wyszukaj.pionowo.
    Moduły wprowadzania rekordów i ich edycji oparte są o 4 (stosownie do ilości kolumn tabeli TabBaz) kontrolki Textboxów z odpowiednio ustawionymi właściwościami, oraz kodem VBA ich obsługi :idea:
    cheater napisał:
    Nie rozumiem co robi "R2C3,TabBaz"

    W module edycji aktywne Textboxy (kontrolka Identyfikatora jest nieedytowalna :D ) są podlinkowane do odpowiednich komórek modułu wyszukiwarki - to powoduje, że po zmianie treści w którymkolwiek Textboxie - wyszukiwarka traci swoje formuły wyszukujące :arrow: koniec kodu VBA przycisku "zapisz" przywraca zatem wszystkie utracone formuły. :spoko:
  • Poziom 5  
    Tak sie zastanawiałem po co liczyłeś ilość wierszy, ale nigdzie nie widziałem że to użyłeś xd Gdzie zanajde tą tabele TabBaz?
  • Poziom 5  
    Nieeee wiem. Zmieniłem tą BazTab na =PRZESUNIĘCIE(Baza!$A$1:$G$1;0;0;1+Baza!$J$1;7) i dalej nic :crazyeyes: (w polu J1 mam max ID)
    Dołączam mój plik excela.

    Btw, dałoby się zrobić, żeby było tylko to okienko do edycji? Teoretycznie da się w nim również wyświetlać, wiec bez sensu dublowanie. Jak się nie da albo dużo zmieniania to najwyżej rozciągnę to okienko i zakryje to lewe (jak na obrazku)


    Excel - wyszukaj.pionowo w kilku zakładkach
  • Poziom 5  
    Dzięki za gotowca, ale chciałbym wiedzieć czemu moje nie działa ( nic się nie wyświetla w polach do edycji), czego nie zrobiłem. Jak masz czas to chętnie skorzystam z TeamViewer :P
  • Poziom 35  
    cheater napisał:
    czemu moje nie działa

    Lista "grzechów" jest długa :please: , ale generalnie porównaj kod VBA z Twoim, oraz właściwości Textboxów :!:

    Zmodyfikowany plik testowałem pod Excel 2016 i Excel 2007 :D
    Excel - wyszukaj.pionowo w kilku zakładkach2020-01...png Download (89.57 kB)
    Wszystko działa dla obu edytowalnych Textboxów - proponuje sprawdzić w Centrum Zaufania Excela ustawienia dla obcych makr :?:
  • Poziom 5  
    Największym grzechem było nie wpisanie nic w LinkedCell we właściwościach pola :oops:

    Przykładowo, zwiększyłem sobie ilość wierszy do 90 i wszytko działa- wprowadziłem drobne zmiany w kodzie oczywiście. Natomaist jak dodałem 2 kolumny to już lipa, nie działa :D Stawiam na R3C3, ale nie wiem jak to zmienić.

    =PRZESUNIĘCIE(Baza!$A$1:$K$1;0;0;1+Baza!$W$1;11)

    Code:
    cc = Range("C3") + 1
    
    Worksheets("Baza").Activate
    With ActiveSheet
    'nazwy okien tekstowych
    aktual = TextBox1.Text
    zapl = TextBox2.Text
    'zapis danych do komórek arkusza
    .Cells(c, 10).Value = aktual
    .Cells(c, 11).Value = zapl
    End With

    Worksheets("WYSZUKIWARKA").Activate
    Range("C16").Select
        ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(R3C3,TabBaz,10,FALSE),"""")"
    Range("C20").Select
        ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(R3C3,TabBaz,11,FALSE),"""")"

    End Sub
  • Poziom 35  
    cheater napisał:
    zwiększyłem sobie ilość wierszy do 90

    :D A to bardzo ciekawe :?: Bo w ostatnim pliku autonumerowanie rekordów było już ustawione na 100 rekordów :arrow: patrz na kolumnę A i komórki powyżej 90 wiersza, których może jeszcze nie zepsułeś :please:
    cheater napisał:
    dodałem 2 kolumny to już lipa, nie działa

    Musisz precyzyjnie kopiować kod :cunning: - skąd u Ciebie wzięła się ta zmienna cc :?: Jak przyjąłeś taką nazwę dla wyszukanego wiersza to później musisz tą samą nazwę konsekwentnie używać przy wstawianiu danych do bazy :bye:
  • Poziom 5  
    Udało się, problem było to że musiałem za każdą zmianą w kodzie klikać mój przycisk Zapisz, dziwne.