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: Jak ustawić MsgBox jako przypomnienie dla wybranych wartości z listy?

Herat 12 Kwi 2011 09:00 1519 10
REKLAMA
  • #1 9390274
    Herat
    Poziom 10  
    Posty: 11
    Witam.
    Poszukuję rozwiązania następującego zagadnienia.(Excel)
    W komórce A1 mam listę rozwijaną z której po wybraniu konkretnego zapisu (w tym przypadku liczby) pojawiało by się okno komunikatu. Tylko jako przypomnienie, bez wykonywania procedury. Okno komunikatu ma reagować tylko na kilka zapisów w liście a nie na wszystkie pozycje listy.
    Dzięki za wszystkie porady.
  • REKLAMA
  • #2 9390983
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Wstaw taki kod do arkusza z komórką:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 9391290
    Herat
    Poziom 10  
    Posty: 11
    dzięki działa.
    To może jeszcze pomarudzę.
    Właśnie zmieniły się zasady wyskakiwania komunikatu - szefostwo buuu
    Makro ma sprawdzać zakres komórek, przyjmijmy że od a1 do a5 a okienko ma reagować na każdą wybraną z listy pozycję.
    przepraszam.
  • #4 9391462
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Zmiana w komórce A1 ma sprawdzać, czy wartość jest w zakresie A1 do A5??
    Coś nie bardzo ten przykład :), niech będzie sprawdzanie w zakresie C1:C5 w tym samym arkuszu.
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #5 9391526
    Herat
    Poziom 10  
    Posty: 11
    kurcze u mnie działa tak:
    jak wpiszę cokolwiek w komórki z zakresu C1:C5 to komunikat nie wyskakuje a jak wpisze i skasuję zapis w komórce A1 to dopiero wyskakuje komunikat :?

    Soryy. Własnie doczytałam się jakiego babola walnęłam.
    VB ma sprawdzać tylko zakres - np C1:C5.
    czyli : czy w zakresie komórek występuje zapis czy nie.
    Jeśli tak to komunikat
  • #6 9393647
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Niezdecydowany jak kobieta na zakupach... :]
    Czyli (makro reagujące na wartości podane w kodzie, przy zmianie komórki w zakresie C1:C5, rozbite dla większej czytelności na 3 if-y):
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Listę możesz zdefiniować w Excelu standardowo, tj. Dane->Sprawdzanie poprawności->Lista
  • REKLAMA
  • #7 9394583
    Herat
    Poziom 10  
    Posty: 11
    Dzięki za pomoc.
    Jeszcze jedno pytanko.
    Czemu VB nie pozwala na dwie procedury -w jednym arkuszu-uruchamiane przy tym samym zdarzeniu?
    Może to głupie pytanie ale dopiero uczę się programowania w VB.
  • #8 9394657
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Ne rozumiem pytania... :)
    Pozwala, piszesz dwie procedury w jednym zdarzeniu i uruchamiają się wtedy obydwie:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #9 9394708
    Herat
    Poziom 10  
    Posty: 11
    No to już wszystko rozumiem.
    Ja starałam się za każdym razem wpisywać :

    Private Sub Worksheet_Change(ByVal Target As Range)
    i procedurę1

    a następnie
    Private Sub Worksheet_Change(ByVal Target As Range)
    i procedura 2

    Mam kilka książek o vb ale niestety co doświadczene to doświadczenie.
    Zresztą mam od czasu do czasu wrażenie że omijają niektóre problemy uważając że to wynika samo z siebie.
  • #10 9394748
    marcinj12
    Poziom 40  
    Posty: 3404
    Pomógł: 1024
    Ocena: 250
    Procedura Private Sub Worksheet_Change(ByVal Target As Range) jest procedurą już zdefiniowaną, która wywołuje się przy każdej zmianie w arkuszu, i jako taka może być tylko jedna, podobnie jak inne funkcje wbudowane w pojedynczy arkusz: Activate, Calculate etc. czy cały Workbook: Open, Acivate etc.
    Jeżeli chcesz, żeby ta procedura wywoływała Twoje własne, musisz je podać jak w przykładzie powyżej.
    Pozdrawiam
  • #11 9394954
    Herat
    Poziom 10  
    Posty: 11
    Dziękuję za pomoc.

Podsumowanie tematu

✨ W dyskusji poruszono temat ustawienia okna komunikatu (MsgBox) w Excelu, które pojawia się po wybraniu określonych wartości z listy rozwijanej w komórce A1. Użytkownik poszukiwał rozwiązania, które umożliwiłoby wyświetlenie komunikatu tylko dla wybranych liczb (np. 1, 3, 5) oraz w przypadku zmian w zakresie komórek C1:C5. Ostatecznie zaproponowano kod VBA, który reaguje na zmiany w komórce A1 oraz sprawdza, czy wartość znajduje się w określonym zakresie. Użytkownicy wymienili się również informacjami na temat ograniczeń procedur w VBA oraz sposobów ich wywoływania.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA