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) - Blokowanie kolumny po pwrowadzeniu danych do komorki

szarlich 14 Maj 2014 12:33 1305 4
  • #1 14 Maj 2014 12:33
    szarlich
    Poziom 7  

    Witam,
    chcialbym stworzyc kod ktory bedzie blokowal kolumne do ostatniej wprowadzonej w niej komorki tak by reszta osob majacych dostep po wpisaniu np. "yes" nie mogla juz nic w danej kolumnie zmienic. Wartosc z komorki uzywam potem do data validation (po Polsku chyba "sprawdz wartosc danych") w innej czesci arkusza. Komorki puste w danym wierszu powinny byc odblokowane

    Kod jaki stworzylem nie dziala poprawnie a z VBA nie jestem za dobry

    Kod: vb
    Zaloguj się, aby zobaczyć kod



    Prosze o pomoc ;)

    Dodano po 1 [godziny] 23 [minuty]:

    ok chyba mi sie udalo
    Kod: vb
    Zaloguj się, aby zobaczyć kod



    Ale jednak nie jest to satysfakcjonujace bo latwo ludki zrobia burdel w danych.
    Czy dalo by rade cos takiego:
    Jezeli w komorce j3 wstawie "y"
    to rzad a4:i4 odblokuje sie do czasu az ktos wstawi "y" w komorce j4
    jednoczesnie chcialbym odblokowac cala kolumne k na ewentualne komentarze w razie pomylki

    0 4
  • #2 14 Maj 2014 12:54
    Maciej Gonet
    Poziom 32  

    Dzień dobry,
    Nie wiem, czy o to dokładnie chodziło, ale można wypróbować coś takiego:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Jeżeli chroniona ma być tylko kolumna J, to wcześniej trzeba odblokować cały arkusz, bo wszystkie komórki są domyślnie zablokowane.
    Na początku sprawdzamy, czy zmiana była w kolumnie J, jeśli nie pomijamy całą procedurę. Następnie znajdujemy ostatni zajęty wiersz w kolumnie J. Nie trzeba dopisywać nazwy arkusza, bo procedura znajduje się w kodzie arkusza i tylko tego arkusza dotyczy. Zdejmujemy ochronę z arkusza (tu może być hasło jeśli było założone), odblokowujemy całą kolumnę, następnie blokujemy ponownie od drugiego wiersza do ostatniego i w końcu zakładamy ochronę arkusza (może być z hasłem).
    Proszę przetestować i dopasować do swojego arkusza.
    Pozdrowienia.
    P.S. Ta odpowiedź odnosi się do pierwszej części postu.

    0
  • #3 14 Maj 2014 14:15
    szarlich
    Poziom 7  

    Dziekuje Maciej Gonet,

    To co stworzyles to bardziej czytelna opcja drugiej czesci mojego postu.
    Dziekuje bardzo.
    to co daje sie we znaki dosc mocno to to ze jezeli komorka zostala juz raz zamknieta to usuniecie wartosci z komorki w kolumnie J po wpisaniu hasla nieodblokuje jej niestety ;(

    0
  • Pomocny post
    #4 15 Maj 2014 10:14
    Maciej Gonet
    Poziom 32  

    Dzień dobry,
    Trzeba wyraźnie napisać jak to ma działać. Z opisu zrozumiałem, że mają być blokowane wszystkie komórki w kol. J od drugiej do ostatniej zapisanej. W drugim przykładzie jest już od komórki pierwszej, teraz okazuje się, że mają być blokowane tylko komórki niepuste. To trzeba się zdecydować, bo napisać można wiele wariantów, na przykład jeśli niepuste komórki zawierają stałe (nie formuły) można napisać taki kod:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Druga część wczorajszego postu jest niejasna. Jeśli nadal oczekujesz pomocy, napisz co dokładnie i kiedy ma być zablokowane, a co odblokowane. Kolumna K cała stale odblokowana. A dalsze kolumny? Kolumny A:I mają być stale zablokowane, a tylko jeden wiersz ma się odblokowywać po wystąpieniu zdarzenia w kolumnie J? I ma to być wiersz 1 poniżej zdarzenia z kolumny J? A piszesz również o kasowaniu wpisów w kolumnie J po odblokowaniu arkusza. Co wtedy?
    Powiedzmy, że J5 zostało wyczyszczone, ale J6 jest zapełnione a wraz z nim szósty wiersz w zakresie A:I. Teraz do J5 coś wpisujemy, to wiersz szósty ma się odblokować, mimo że jest zapisany?
    Proszę to przemyśleć i dokładnie opisać.

    0
  • #5 15 Maj 2014 15:21
    szarlich
    Poziom 7  

    Witam,

    czyta mi Pan w myslach ;) Jednak chodziło mi o nie puste wartosci.

    Co do kolumn A:I to blokuje je za pomoca "data validation". Niechce ich haslowac bo inne pliki beda pobierac dane stamtad co rodzi kolejne problemy. Wiec po przemysleniach nie bede tego potrzebowal jednak.

    Wrzucam ostateczny wyglad kodu jesli komus sie by przydal dodalem wstawianie dzisiejszej daty w kolumnie c i aktywacje komorki w rzedzie b by szybciej mozna bylo wklepywac dane.

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Dziekuje bardzo za pomoc.

    0
  Szukaj w 5mln produktów