• Zapisz się do newslettera, aby otrzymywać powiadomienia o nowościach na blogu
    Zapisując się, wyrażasz zgodę na przesyłanie Ci informacji o nowościach na tym blogu. Zgodę możesz w każdej chwili wycofać (szczegóły).

Odzyskiwanie różnych formuł po nadpisaniu ich wartością

Czyli trudna rzecz rozwiązana prostą metodą

Niedawno opisywałam już podobny przypadek, natomiast dotyczył on trochę łatwiejszej sytuacji. Chodziło bowiem o to, żeby dać użytkownikowi możliwość wpisania do jednej komórki wartości z palca, lub skorzystania z wpisanej tam formuły. Taki switch: chcę wartość, to ją wpiszę, a jak ją skasuję, to na jej miejscu pojawi się formuła. Cudo!

Wtedy jednak opisywałam sytuację, gdy w komórce ma się pojawić tylko jedna, określona formuła. Teraz natomiast chodzi o to, żeby mogły się tam pojawiać różne formuły, w zależności od komórki, którą będę edytowała. Brzmi strasznie, ale jest bardzo proste. Wymaga tylko kolumny pomocniczej i leciutkiej edycji kodu VBA, który napisałam dla poprzedniej sytuacji.

Formatkę i całą magię pokazuje ten rysunek:

Formatka

Formatka

Let’s go!

Czytaj dalej

Odzyskiwanie formuły po nadpisaniu jej wartością

Czyli formuła, której nie da się skasować…

Załóżmy, że tworzymy szablon oferty, taki jak na obrazku poniżej. Chcemy wybierać z listy rozwijanej model produktu i na tej podstawie ma się podpowiedzieć cena netto. Cena ta jest pobierana z cennika, który znajduje się w innym arkuszu. To wszystko mamy już gotowe, natomiast chcemy mieć możliwość ręcznego wpisywania cen jednostkowych. TO oczywiście jest możliwe, natomiast jak to zrobimy – bezpowrotnie tracimy formułę, która wcześniej tę cenę podpowiadała.

I w tym zadaniu chodzi o to, aby po skasowaniu tej ręcznie wpisanej wartości, automatycznie wpisywała się formuła, która tam była…

Formatka

Formatka

Bez VBA się nie obejdzie 🙂

Czytaj dalej

Kasowanie wartości zależnej listy rozwijanej na długiej liście (VBA)

Czyli automatyczne kasowanie wartości po raz drugi

Ostatnio, w tym wpisie, pokazałam jak sprawić, żeby wpis na zależnej liście rozwijane sam się kasował, gdy tylko zostanie zmieniona wartość kategorii, czyli komórki, od której nasza lista rozwijana zależy. Wszystko fajnie, natomiast rozwiązanie to uwzględniało, że mamy tylko dwie komórki: z kategorią i podkategorią. Problem zaczyna się pojawiać, gdy tych komórek mamy więcej – całą listę. Taką sytuację pokazuje poniższy rysunek:

Formatka

Formatka

Czyli chodzi o to, że jak zmienię wartość listy rozwijanej w kolumnie B – ma się wykasować wartość Podkategorii (kolumna C) z odpowiedniego wiersza. Znamy kolumnę komórki, która ma zostać wykasowana (C), ale nie znamy wiersza, gdyż zależy on od tego, którą komórkę wybierze użytkownik. Na tym właśnie polega cała trudność tego zadania.

Do jego rozwiązania znów posłużę się VBA, oczywiście zdarzeniem, ale tym razem będzie ono bardziej skomplikowane. Użyję do tego konstrukcji warunkowej IF (odpowiednik arkuszowej funkcji JEŻELI), właściwości Cells zakresu i jeszcze kilku innych trików 🙂

Czytaj dalej

Zależna lista rozwijana – automatyczne usuwanie podkategorii po zmianie kategorii (VBA)

Czyli zależne listy rozwijane – kolejna odsłona

To już któryś z kolei wpis o zależnych listach rozwijanych. Dziś jednak będzie trochę inaczej, ponieważ samych list nie będę tykać, tylko pokażę jak skasować wpis na zależnej liście rozwijanej, po zmianie wyboru z pierwszej listy (tej, od której jest zależna).

Formatka jest prosta: potrzebujemy dwóch list rozwijanych (żółte pola): pole kategorii i pole podkategorii:

Formatka

Formatka

Po wyborze kategorii, do pola podkategorii wczytuje się odpowiednia lista rozwijana, w zależności od wyboru kategorii (o tym, jak to zrobić pisałam np. tutaj). Problem jednak polega na tym, że jak wybierzemy jakąś kategorię i podkategorię, a potem zmienimy kategorię – wybrana wcześniej podkategoria zostanie i, oczywiście, nie będzie pasowała do nowej kategorii. Można ją oczywiście wykasować, ale mi chodzi o to, aby trochę użytkownika wyręczyć i zrobić, aby Excel sam kasował wartość podkategorii, gdy zmieni się kategoria. Natomiast to już jest pole do popisu dla VBA i o tym będzie dzisiejszy wpis.

Czytaj dalej

Zero zamiast ujemnego podatku – alternatywa dla funkcji JEŻELI

Nowy rok nadszedł, a wraz z nim rozliczenia roczne podatków, wypełnianie PIT-ów itp. Pisałam już na blogu o funkcji, która może pomóc w rozliczeniu PIT-u, kiedy mamy wiele różnych PIT-ów 11, czyli uzyskujemy przychody z kilku źródeł/umów. Dziś napiszę o kolejnej takiej funkcji. Przy okazji poruszę techniczny temat, jakim jest zastępowanie liczby ujemnej zerem. W sytuacji podatkowej ma to zastosowanie, gdy z rozliczenia wyjdzie nam ujemny podatek. Takiego oczywiście nie płacimy, więc przy uzupełnianiu PIT-u będziemy wpisujemy zero. Pierwszym rozwiązaniem które się nasuwa jest funkcja JEŻELI. Oczywiście funkcja zadziała, jednak powiem Wam, że strasznie mnie ona denerwuje w tym zastosowaniu, ponieważ muszę dwa razy pisać to samo. W tym wpisie przedstawię więc alternatywne rozwiązanie: co zrobić, aby zamiast liczby ujemnej wpisać zero bez użycia funkcji JEŻELI.

Poniżej uproszczona tabelka przedstawiająca przychody, koszty, podstawę podatku oraz należny podatek. Wszędzie tam, gdzie podatek jest ujemny – chcę wyświetlić zero. Jeśli jest dodatni – chcę wyświetlić wartość tego podatku.

Alternatywa dla JEŻELI - formatka

Formatka

Czytaj dalej