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. MsgBox-Uzupełnij dane w komórce F7-I7 jeżeli E7 zawiera dany tekst.

piter polak 29 Paź 2017 14:47 522 3
  • #1 29 Paź 2017 14:47
    piter polak
    Poziom 2  

    Witam Wszystkich.
    Zaczynam przygodę z VBA, więc moja wiedza jest nieznaczna.
    Jeśli chodzi o makra, to potrafię niestety tylko nagrać makro.
    Czasem jednak to za mało.
    Potrzebuję makra, które by sprawdzało w Arkusz2, zawartość komórki E7 i jeżeli komórka zawiera tekst np. "DOSTARCZONO", to jako wymóg zapisu danych, jest uzupełnienie komórek F7, G7, H7, I7 z powiadomieniem MsgBox o takiej konieczności.
    Jeśli komórek nie uzupełniono, nie pozwala na zapis danych.
    Dodatkowo, jeśli w komórce E7 jest inny tekst niż wymagany, komórki F7, G7, H7, I7 są zablokowane do edycji, ale zapis danych jest możliwy.
    Jako początkującego, zadanie niestety mnie przerasta, więc prosiłbym znawców o pomoc w temacie.
    Naskrobałem kawałek kodu, ale brakuje finału po spełnieniu warunku.

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Wybaczcie jeśli podobny temat znajduje się na forum, ale szukając podobnych tematów, nie mogłem znaleźć rozwiązania.
    Być może źle formułowałem zapytanie.
    Jeśli potrzebny będzie Arkusz z przykładem, chętnie dołączę.
    Z góry bardzo dziękuję za pomoc.

    Pozdrawiam
    Piotr

    0 3
  • #2 01 Lis 2017 11:40
    lanzul
    Poziom 26  

    piter polak napisał:
    zawartość komórki E7 i jeżeli komórka zawiera tekst np. "DOSTARCZONO", to jako wymóg zapisu danych, jest uzupełnienie komórek F7, G7, H7, I7
    piter polak napisał:
    w komórce E7 jest inny tekst niż wymagany, komórki F7, G7, H7, I7 są zablokowane do edycji, ale zapis danych jest możliwy

    Sposoby zapisu ".xls'a":
    1. Menu główne: przynajmniej 4 opcje zapisu "bezpośredniego" - typu "Zapisz ..."
    2. Menu główne: przynajmniej 1 opcja zapisu "pośredniego" - opcja "Zamknij"
    3. Paski narzędzi: przynajmniej 1 opcja zapisu "bezpośredniego" - typu "Zapisz ..."
    4. Skróty klawiaturowe: CTRL+S, CTRL+W (na zamykaniu pliku), ALT+F4 (na zamykaniu pliku)

    Dużo pracy z zablokowaniem menu, pasków i skrótów klawiatury ... Oczywiście, można to "ominąć" w zdarzeniach: Workbook_BeforeClose i Workbook_BeforeSave.
    Ale i tak wystarczy wtedy otworzyć zeszyt "bez obsługi makr" i szlus, wszystko można sobie zapisać, a nawet jakby "nie", "z jakiegoś powodu", to z poziomu sąsiedniego zeszytu z makr można sobie obsłużyć "zapisowo" ten, który chcemy "chronić". Tak więc, cwany użytkownik i tak "wszystko ominie", jeśli więc nie masz "zbytnich wymagań" co do owego "zabezpieczania przed zapisem", to zastosuj odpowiednie warunki w zdarzeniach: "Workbook_BeforeClose" i "Workbook_BeforeSave".

    0
  • #3 01 Lis 2017 19:29
    piter polak
    Poziom 2  

    lanzul napisał:
    jeśli więc nie masz "zbytnich wymagań" co do owego "zabezpieczania przed zapisem", to zastosuj odpowiednie warunki w zdarzeniach: "Workbook_BeforeClose" i "Workbook_BeforeSave".


    Dzięki za odpowiedź.
    Nie mam szczególnych wymagań co do zabezpieczeń i wystarczyło by makro ze spełnieniem warunku, jeśli E7="DOSTARCZONO".
    Dasz radę dorzucić do mojego kodu?

    0
  • Pomocny post
    #4 03 Lis 2017 23:02
    lanzul
    Poziom 26  

    Sprawdź, może będzie według twoich założeń ... wydaje się, że działa według opisu, który zamieściłeś.
    Zeszyt..xls Download (33 kB)

    0