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

VBA Excel - VBA - wyszukanie produktów w jadłospisie

Szoszon 10 Maj 2016 06:40 1008 14
  • #1 10 Maj 2016 06:40
    Szoszon
    Poziom 13  

    Witam
    Chciałbym pomóc żonce w jej ciężkiej pracy ale niestety jestem za słaby w tworzeniu własnego kodu VBA więc proszę Was o pomoc :)
    Jadłospis jest rozpisany na kilku arkuszach w excel , w pierwszym arkuszu jest lista produktów które powinny być wyszukiwane w tych jadłospisach i zaznaczane np. pogrubieniem czcionki.
    Czy możecie mi z tym pomóc ?
    Znalazłem coś w necie ale nie działa mi to , zaznacza przypadkowe słowa :(

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0 14
  • #2 10 Maj 2016 08:10
    adamas_nt
    Moderator Programowanie

    To zależy od układu danych i oczekiwań. Przydałby się przykład w Excelu.
    Zerknij jeszcze tutaj Link, żeby nie trzeba było zadawać tych samych pytań ;)

    0
  • #3 10 Maj 2016 08:35
    Szoszon
    Poziom 13  

    Dziękuję za zainteresowanie moim problemem :)
    W załączniku dałem próbkę o co mi chodzi :)
    A żeby jeszcze bardziej zamącić to arkuszu Jesien_tyg są tylko formuły :(

    Z Arkusz1 ma zaznaczać produkty w następnych arkuszach

    0
  • #4 10 Maj 2016 19:41
    adamas_nt
    Moderator Programowanie

    1. Zaznaczanie zadziała tylko w komórkach z tekstem, nie z formułą.
    2. "Chleb wieloziarnist" <> "chleb wieloziarnisty" - tu InStr zwróci zero
    natomiast
    "hleb wieloz" = "hleb wieloz" (funkcja Mid z liczeniem znaków Len) już nie

    Jakimś rozwiązaniem przy tym układzie danych byłoby warunkowe "zakolorowanie" komórki jadłospisu. Z drugiej strony: czy to bardzo ułatwi pracę? Dalej jest mnóstwo szukania po arkuszach...

    0
  • #5 11 Maj 2016 08:58
    Szoszon
    Poziom 13  

    Witam
    Czyli mam rozumieć że przy tak skonstruowanych danych ciężko zrobić cokolwiek sensownego ?
    Kolorowanie odpada ponieważ tylko te produkty powinny być zaznaczone w danej komórce które znajdują się w Arkusz1.
    To trudno ... przynajmniej się dowiedziałem że nie da się tego zrobić.
    Pozdrawiam

    0
  • #6 11 Maj 2016 09:33
    JRV
    Specjalista - VBA, Excel

    Dlaczego nie można przewidzieć co dzień 8... 10 komórek i dopasowanie produktów w poszczególnych komórek, a nie listę

    0
  • #7 11 Maj 2016 13:08
    Szoszon
    Poziom 13  

    A można zrobić aby wyszukał jeden produkt w jadłospisie i pogrubił czcionkę a później następne itd. ? jeśli tak to poproszę o przykład :)

    0
  • #8 11 Maj 2016 13:20
    JRV
    Specjalista - VBA, Excel

    Jak w jednej komorce jeden produkt, naprosto formatowaniem warunkowym bez makra

    0
  • #9 12 Maj 2016 07:22
    Szoszon
    Poziom 13  

    JRV napisał:
    Jak w jednej komorce jeden produkt, naprosto formatowaniem warunkowym bez makra


    To rozumiem , ale nie mam tak sformatowanych danych wejściowych.
    Widzę że i tak nic z tym nie da się zrobić więc dziękuję za zaangażowanie i pozdrawiam :)
    Temat do zamknięcia :)

    0
  • Pomocny post
    #10 12 Maj 2016 07:37
    adamas_nt
    Moderator Programowanie

    Przy porannej kawie pomyślałem jak bym sobie to usprawnił.
    W arkuszu "S1" (śniadanie), zrobiłem "bazę" i tabelkę do składania jadłospisu. Wypełniałoby się tylko to, co zaznaczone ramką - czyli datę początkową oraz jakieś znaczniki w C3:H14

    Arkusz wynikowy układa się "sam" (jest na formułach) - z wyjątkiem A1 oraz wiersza z alergenami (to też można zautomatyzować)

    Całą listę zakupów masz w kolumnie B arkusza S1. Wykorzystując MAX()+1 można ją sobie przepisać wiersz, pod wierszem w dodatkowym zakresie/arkuszu, oraz wiele innych operacji (bazodanowy układ danych)

    Formuły są w pełni "kopiowalne" - można je kopiować, przeciągając w lewo/prawo/dół/góra
    To samo możesz zrobić dla pozostałych posiłków. Zamiast dzielić na posiłki, można podzielić na dni - jak wygodniej. Listę zakupów można poskładać z poszczególnych arkuszy jako jednodniową, tygodniową, od -do, etc

    Edit:

    Szoszon napisał:
    Temat do zamknięcia
    Zawsze się nieco spóźniam :) To jak, zamykamy?

    0
  • #11 12 Maj 2016 12:35
    Szoszon
    Poziom 13  

    Witam
    Muszę tą koncepcję obgadać z żonką bo to jest inne podejście do tematu. Wiem że jest używana i sprawdzana przez sanepid tzw. "dekadówka" i " tygodniówka " , jest to też drukowane dla potrzeb księgowych w samej placówce więc format takiego jadłospisu powinienem zachować jak był , ale już z czego się to bierze to żaden nie widzi :)
    Rozumiem także że przy takim rozbiciu wyrazów na poszczególne komórki ułatwi sprawę zaznaczania wyrazów na inny kolor poprzez formatowanie warunkowe :)

    Cytat:
    Zawsze się nieco spóźniam :) To jak, zamykamy?


    Nie wiedziałem że się spóźniasz :) to może jeszcze coś podyskutujemy :) dzięki :)

    Ps. Do produktów w osobnej kolumnie w arkusz S1 np. w kolumnie A dopisałbym do jakiej grupy alegrenów należy dany produkt - jak je "zespolić" w jednej komórce tak aby były widoczne jak na arkuszu Dekada jesien ? Formuła musiałaby wiedzieć że lista produktów na poniedziałkowe śniadanie ma np. chleb z alergenem z grupy 3 i masło z alergenem gruby 6 - jak to rozwiązać ?

    0
  • Pomocny post
    #12 12 Maj 2016 18:35
    adamas_nt
    Moderator Programowanie

    Szoszon napisał:
    więc format takiego jadłospisu powinienem zachować jak był
    Dałoby się, gdyba zamiast Np "Chleb wieloziarnisty" umieścić w arkuszu 'Baza' "Chleb wieloziarnisty z masłem" itd. Gorzej będzie z "coś lub coś lub coś" :)
    Szoszon napisał:
    Formuła musiałaby wiedzieć że lista produktów na poniedziałkowe śniadanie ma np. chleb z alergenem z grupy 3 i masło z alergenem gruby 6 - jak to rozwiązać ?
    Też do zrobienia.
    Daj znać o wyniku konsultacji z żoną, to pomyślimy.

    0
  • #13 12 Maj 2016 18:49
    Szoszon
    Poziom 13  

    Żonka jeszcze tego nie widzi ale ja już wiem ze to jej spasuje :)
    Wolałbym aby pozostało już to jako osobne produkty czyli chleb wieloziarnisty i osobno masło.
    Do S1 dodałem kolumnę z grupami alergenów a w Arkusz3 wstawiłem komentarz w alergenach o co mi chodzi ?
    Może wystarczy połączyć teksty z kolumny z alergenami i wstawić do jednej komórki w jadłospisie ? ale wcześniej by musiał wyszukać które są wybrane.
    Dzięki za pomoc :)

    0
  • Pomocny post
    #14 13 Maj 2016 07:07
    adamas_nt
    Moderator Programowanie

    Uzupełnione.
    Jak napisać formułę w R2 ark.S1, instrukcja:
    wpisujesz: =ZŁĄCZ.TEKSTY(TRANSPONUJ(tu zaznacz jednokolumnowy zakres))
    następnie nie naciskając ENTER!
    zaznaczasz (na pasku formuły): TRANSPONUJ(nasz zakres) i naciskasz F9
    usuwasz nawiasy tablicowe {} i naciskasz ENTER

    I tak z kolejnymi (S2, T2...) Nie da się, niestety, skopiować i trzeba będzie ją wpisywać przy każdej zmianie. Ale przydaje się przy dużych zakresach.

    Inny (moim zdaniem bardziej uniwersalny) sposób:
    wpisujesz: =ZŁĄCZ.TEKSTY(
    naciskasz i przytrzymujesz Ctrl
    klikasz kolejno komórki zakresu, zamykasz nawias i naciskasz ENTER
    To da się skopiować, no i wystarczy wpisać raz.

    0
  • #15 16 Maj 2016 13:36
    Szoszon
    Poziom 13  

    Witam
    Dopiero dzisiaj mam czas aby się z tym zapoznać i znowu się czegoś nauczyć.
    Bardzo dziękuję za pomoc ... przećwiczę ten temat i jak będę miał jeszcze jakieś dodatkowe pytania to ośmielę się napisać :)
    Pozdrawiam

    Dodano po 5 [godziny] 24 [minuty]:

    adamas_nt napisał:
    Uzupełnione.
    Jak napisać formułę w R2 ark.S1, instrukcja:
    wpisujesz: =ZŁĄCZ.TEKSTY(TRANSPONUJ(tu zaznacz jednokolumnowy zakres))
    następnie nie naciskając ENTER!
    zaznaczasz (na pasku formuły): TRANSPONUJ(nasz zakres) i naciskasz F9
    usuwasz nawiasy tablicowe {} i naciskasz ENTER

    I tak z kolejnymi (S2, T2...) Nie da się, niestety, skopiować i trzeba będzie ją wpisywać przy każdej zmianie. Ale przydaje się przy dużych zakresach.

    Inny (moim zdaniem bardziej uniwersalny) sposób:
    wpisujesz: =ZŁĄCZ.TEKSTY(
    naciskasz i przytrzymujesz Ctrl
    klikasz kolejno komórki zakresu, zamykasz nawias i naciskasz ENTER
    To da się skopiować, no i wystarczy wpisać raz.


    Witam ponownie :)
    Pierwszy sposób jest fajny ale po zmianach w grupie alergen B:B nie odświeżają się wyniki.
    W drugim brakuje mi jednej rzeczy - jak zrobić aby pokazywał tylko po jednej cyfrze z tego złączonego tekstu ? przykładowo jeśli mam trzy produkty z grupy 8 to dostaję w alegrenach trzy ósemki a chciałbym aby była tylko jedna.

    0