logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Makro do blokowania komórek w kolumnie na podstawie wartości w Excelu

zbysiomysio 29 Wrz 2017 06:56 2175 10
REKLAMA
  • #1 16727337
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    Witam
    W jaki sposób można zrobić, aby były blokowane komórki w kolumnie w zależności od wartości. Chodzi mi o to, że mam chroniony arkusz. Zależy mi na tym, że jeżeli wartość w wierszu drugim wynosi 1, to byłyby odblokowane komórki w kolumnie od trzeciego wiersza do dwudziestego pod daną wartością. Czyli np. w komórce B2 byłaby wartość 1 to komórki C3:C20 byłyby odblokowane (możliwość edycji). Z tym, że chodzi o to, żeby makro nie działało dopiero po zmianie wartości komórki w B2, bo wartość w tej komórce jest wynikiem formuły, a więc nie będzie zmieniana ręcznie (nie wchodzi więc w rachubę change)
  • REKLAMA
  • Pomocny post
    #2 16727383
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Change dla całego arkusza (arkuszy), a wewnątrz If B2=1 Then
  • REKLAMA
  • #3 16727398
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    Wykombinowałem coś takiego, ale to nie działa:
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
    [/code]
  • REKLAMA
  • Pomocny post
    #4 16727424
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Zaznacz cały arkusz, odptakuj "zablokuj" w zakładce "Ochrona" (formatowanie komórek). I wtedy:
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod

    A dla wielu kolumn, Np od B2 do F2
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #5 16727447
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    Dzięki. Makro działa. A jak zrobić, aby makro działało w kolejnych kolumnach analogicznie jak w kolumnie B, t.j. w kolumnach od C do Z
  • #6 16727453
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Tak się domyślałem, dlatego (nie zdążyłem na czas) zmieniłem post ;)
  • #7 16727488
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    Coś mi jednak nie działa w tym makrze, bo bez względu na to jaka jest wartość w drugim wierszu, komórki poniżej nie odblokowują się
  • #8 16727497
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Może trzeba zaokrąglić, odwołać się do innego arkusza... Wrzuć przykład.
  • #9 16727610
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    Nie mam jeszcze zrobionego tego pliku tak jak powinien być, ale próbowałem na surowym arkuszu to zrobić i nie wychodzi mi. Załaczam przykładowy plik, który zrobiłem do wypróbowania makra
    Załączniki:
    • Przykład.xls (24 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • Pomocny post
    #10 16727620
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    :)
    Może byś jednak zdarzenie arkusza oprogramował?
  • #11 16727654
    zbysiomysio
    Poziom 6  
    Posty: 249
    Ocena: 40
    Dzięki wielkie za info. Ale ze mnie pierdoła....

Podsumowanie tematu

✨ Użytkownik poszukiwał sposobu na zablokowanie komórek w kolumnie w Excelu w zależności od wartości w komórce B2, która jest wynikiem formuły. W odpowiedziach zaproponowano użycie makra VBA, które odblokowuje komórki w zakresie C3:C20, jeśli wartość w B2 wynosi 1. Użytkownicy sugerowali również, aby makro działało dla wielu kolumn, od B do Z, oraz aby zdefiniować zdarzenie arkusza, które automatycznie reaguje na zmiany. Problemy z działaniem makra były zgłaszane, a użytkownicy sugerowali sprawdzenie zaokrągleń i odwołań do innych arkuszy.
Wygenerowane przez model językowy.
REKLAMA