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 vba - komunikat o nie wypełnieniu komórki jeżeli warunek

projectorEL 30 Sie 2014 00:38 8004 11
REKLAMA
  • #1 13919236
    projectorEL
    Poziom 11  
    Posty: 22
    Witam, ponownie proszę o korektę kodu i tym samym pomoc w rozwiązaniu kwestii wymuszenia wypełnienia komórki, jeżeli wiersz został rozpoczęty...

    Poniższy kod działa w sposób: sprawdź czy K jest coś jak jest to możesz zamknąć.

    A potrzebuje :
    sprawdź czy w komórce K coś jest jeżeli tak to zamknij , ale jeżeli nic niema a
    w komórce A w danym wierszu jest więcej niż 0 "zero" to = MsgBox Komórka K musi być ...

    Cytat:

    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    '
    ' If Len(Range("K1")) < 4 Then
    ' MsgBox "Komórka K musi być wypełniona przed zamknięciem dokumentu!"
    ' Cancel = True
    'Else
    ' MsgBox "OK, komórka K wygląda na poprawnie wypełnioną :)"
    ' Me.Save
    'End If
    'End Sub


    jak to rozwiązać ;/ ?
  • REKLAMA
  • #3 13920984
    projectorEL
    Poziom 11  
    Posty: 22
    witam dziękuję, sprawdze po powrocie do domu, ale czy to działa niezależnie dla każdego wiersza w dol? o taki rozwiązanie mi chodzi... pE
  • REKLAMA
  • #4 13921812
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Kolego PRL,
    Twój kod nie wygląda za bardzo logicznie, chociaż formalnie jest OK.
    Drugi wariant warunku wystąpi gdy obie komórki w kol. A i K są puste, więc komunikat zamiast:
    Kod: text
    Zaloguj się, aby zobaczyć kod
    powinien raczej brzmieć:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Pozdrowienia
  • #5 13921816
    PRL
    Poziom 41  
    Posty: 6986
    Pomógł: 953
    Ocena: 923
    Masz rację Maciek. Niech sobie takie duperele autor sam zmieni.:)

    A do Autora: chcesz sprawdzać komórki w dół.
    A co w przypadku, gdy tych spełniających warunek komórek będzie 100?
    Użytkownik ma 100 klikać 'ok'?
    Pomogłem? Kup mi kawę.
  • #6 13934634
    projectorEL
    Poziom 11  
    Posty: 22
    witam,
    chodzi o to aby dla każdego kolejnego wiersza zawsze komórka K była wypełniona , jeżeli dane w danym wierszy zostaną wpisane to w wierszu "x" w kolumnie K musi tez być wpis. Jeżeli dany user wpisze np 20 wierszy to w kolumnie K tez 20 x musi być jakiś wpis, jeżeli nie to brak możliwosci zapisu...


    Cytat:
    A co w przypadku, gdy tych spełniających warunek komórek będzie 100?
    Użytkownik ma 100 klikać 'ok'?


    najlepiej byłoby kliknąć tylko raz "ok" ...


    makro ma być zastosowane w pliku który jest listą zleconych prac i w tym zakresie nie będzie już edytowany, obok zostanie wpisane kiedy zostanie wykonane, a na bieżąco będą dopisywane kolejne wiersze około 3000 w ciągu roku.


    Pytanie jak dostosować makro aby zmienic zakres dla większej ilości wierszy?


    czy ktoś życzliwy mógłby podpowiedzieć coś co mogło by mi pomóc ruszyć z tematem dalej?
  • REKLAMA
  • #7 13995623
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Dzień dobry,
    Proszę spróbować zastosować takie makro:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Opiera się ono na następujących założeniach:
    1) Działa tylko w aktywnym arkuszu, to znaczy, że jeśli ktoś zmieni arkusz np. na pusty, to może zamknąć skoroszyt, mimo iż jest niekompletny. Z kolei po zmianie arkusza aktywnego będzie oczekiwać podobnej zawartości.
    2) Procedura działa przy zamykaniu skoroszytu i jeśli aktywny arkusz jest kompletny zapisuje skoroszyt automatycznie, a jeśli nie jest kompletny, wyświetla komunikat i nie pozwala zamknąć arkusza. Procedura nie zabrania zapisu niekompletnego arkusza poleceniem Zapisz lub Zapisz jako.
    3) Przy stwierdzeniu braku wpisu w kolumnie K kursor ustawia się w tej komórce i wyświetlany jest komunikat. Za każdym razem wyświetlany jest komunikat dotyczący pierwszej niekompletnej komórki. Jeśli jest więcej braków, przy ponownej próbie zamknięcia pojawi się następny komunikat.
    4) Zakładam, że przynajmniej jedna komórka w kolumnie "A" będzie wypełniona.

    Proszę sprawdzić, czy to odpowiada Pana potrzebom. Zagadnienie nie było dokładnie opisane, więc być może szczegóły trzeba będzie poprawić.
    Pozdrowienia
  • REKLAMA
  • #8 13996548
    projectorEL
    Poziom 11  
    Posty: 22
    hehe działa właściwie serdecznie dziękuje.

    najbardziej zależało mi na tym co już działa, ale jeszcze zapytam, aby rozszerzyć zakres kolumn do nadzoru o "H","I","J" to wiele roboty jest do zmiany kodu vba?
    jak by to mogło wyglądać choćby dla jednej dodatkowej kolumny?

    jeszcze raz dziękuje
    pE
  • #9 13996698
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Dobry wieczór,
    Ale jak to miałoby działać? W danym wierszu musiałyby być wypełnione wszystkie komórki z kolumn H, I, J, K, czy którakolwiek z nich, czy chodzi o kody niezależnie sprawdzające każdą z wymienionych kolumn?
    Proszę to doprecyzować.
    Pozdrowienia
  • #10 13996990
    projectorEL
    Poziom 11  
    Posty: 22
    Dobry wieczór
    Miałem na myśli aby wszystkie cztery komórki H I J K w danym wierszu miałyby być wypełnione - co dawałoby rezultat zgoda na zamknięcie pliku.
    Komunikat mógłby być konkretny gdzie jest puste, ale nie koniecznie, nie upieram się przy tym :)


    dane od A:K wypełnia zgłaszający:
    są to dane typu: ... "jaki dział", "na kiedy", "kontakt", "jaki user"

    pozdrawiam
    pE
  • Pomocny post
    #11 13998168
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Zmodyfikowana wersja makra:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Działa podobnie jak poprzednia, sprawdzając kolumny H do K.
    Pozdrowienia
  • #12 13999537
    projectorEL
    Poziom 11  
    Posty: 22
    Suuuuuuuuuuuuuuuuper działa !
    dziękuje !
    Pozdrawiam serdecznie pE

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukiwał pomocy w zakresie modyfikacji kodu VBA w Excelu, aby wymusić wypełnienie komórki K w każdym wierszu, jeśli w kolumnie A znajduje się wartość większa niż 0. Otrzymał kilka propozycji kodu, które sprawdzają, czy komórki K są wypełnione przed zamknięciem dokumentu. W miarę postępu dyskusji, użytkownik chciał rozszerzyć zakres sprawdzania na kolumny H, I, J oraz K, co zostało zrealizowane w zmodyfikowanej wersji makra. Ostatecznie, użytkownik potwierdził, że rozwiązanie działa zgodnie z jego oczekiwaniami.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA