• 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).

Lista rozwijana z uprawnieniami cz. 2 (VBA)

Czyli jeśli góra zatwierdziła – nie można edytować!

W poprzednim wpisie pokazywałam jak zahasłować wybrane zakresy komórek w arkuszu tak, aby mogły je edytować jedynie osoby, które znają hasło. Dzisiaj pokażę kod VBA, który nie pozwoli edytować komórek, jeśli konkretna komórka została już uzupełniona.

W naszej sytuacji akceptowania warunków zamówień będzie to działać tak, że jeśli Kierownik Kontroli Kredytowej (KKK) zaakceptuje umowę (zaakceptuje = Tak), osoby wcześniej akceptujące (Dział Obsługi Klienta (DOK) i Dyrektor Sprzedaży (DS)) nie będą mogli już zmieniać swoich decyzji. Czyli, krótko mówiąc, zamówienie zostanie finalnie zaakceptowane.

Ma to działać tak:

MalinowyExcel Listy rozwijane z uprawnieniami cd VBA Wynik

Zabierzmy się więc za stworzenie takiego rozwiązania.

Czytaj dalej

Lista rozwijana z uprawnieniami cz.1.

Czyli tylko osoby znające hasło mogą edytować zakres

Załóżmy, że akceptacja sprzedaży w naszej firmie odbywa się trójetapowy: najpierw sprzedaż akceptuje kierownik Działu Obsługi Klienta (DOK), następnie Dyrektor Sprzedaży (DS), a na końcu kierownik Działu Kontroli Kredytowej (KKK). I ten ostatni ma decydujące zdanie: w końcu zależy nam na sprzedaży a nie dobroczynności tutaj.

Formatka z zamówieniami wygląda następująco:

Zależna Lista rozwijana z uprawnieniami1-Formatka

Formatka

W ostatnich trzech kolumnach decydenci wpisują Tak lub Nie. I tylko decydenci mogą to zrobić.

Do rozwiązania tego problemu potrzebujemy listy rozwijanej i dodatkowo ochrony zakresów w arkuszu i oczywiście ochronę arkusza.

Do dzieła!

Czytaj dalej

Wartość ostatniej komórki w kolumnie dzięki nazwie

Czyli dynamiczna nazwa

Chciałabym zawsze wiedzieć, jaka jest ostatnia transakcja na mojej liście. Konkretnie interesuje mnie jej numer i wartość (chcę je widzieć nad zakresem, w żółtych komórkach). Zestaw danych mam w zwykłym zakresie, o taki:

Formatka i wynik

Formatka i wynik

Ma to działać tak, że jak dopiszę dane do tego zakresu – to właśnie te dopisane, czyli ostatnie, mają się pojawić w żółtych komórkach. Dokonam tego za pomocą nazewnictwa. Najpierw pokażę jak to zrobić dla konkretnego arkusza, w którym jesteśmy (i tylko dla niego!), a potem – jak to zrobić do każdego, niezależnie jak się nazywa (jeśli układ arkusza jest analogiczny).

Czytaj dalej

Zapisz plik jako PDF w tym samym folderze (VBA)

Czyli zapisywanie pliku do PDF przyciskiem

Chodzi o to, że mamy plik w Excelu, np. ofertę dla klienta, i chcemy ją zapisać na dysku jako plik PDF. Jest to bardzo prosta czynność, którą spokojnie możemy wykonać ręcznie kilkoma kliknięciami myszki. Natomiast, gdy takich ofert generujemy sporo – zaoszczędzenie nawet tych kilku kliknięć może się okazać zbawienne.

I my właśnie te kilka kliknięć zaoszczędzimy dzięki prostemu makru: po kliknięciu przycisku drukowania, Excel stworzy plik PDF, który zapisze w tym samym katalogu, co sam jest i nazwie go tak, jak nazwa klienta.

Formatka będzie prosta i tak na prawdę nie ma ona kompletnie żadnego znaczenia. I tak będziemy zapisywać do PDF arkusz, czyli ważniejsze będą tutaj Twoje ustawienia wydruku danego arkusza. Ja drukuję obszar wydruku, który mieści się na jednej stronie, jest logo, data wydruku i wyśrodkowanie w poziomie:

Formatka

Formatka

To, co jest istotne, to nazwanie komórki D3 jako Klient. Po tej nazwie bowiem będziemy przywoływali klienta w kodzie VBA.

Czytaj dalej

Wyróżnianie aktywnej komórki kolorem

Czyli coś, o czym marzy każdy użytkownik…

… no, pewnie prawie każdy :). Ja bym się nie obraziła!

Chodzi o coś takiego:

Czyli gdziekolwiek w zakresie klikniemy – ta komórka ma się podświetlać na żółto (albo oczywiście jakikolwiek inny kolor). Tylko tyle i aż tyle, ponieważ, jak zobaczycie, to wcale nie będzie takie banalne… Do stworzenia tej magii użyję nazewnictwa komórek (choć da się bez), zdarzeń w VBA (makra) i oczywiście mojego kochanego formatowania warunkowego, do którego napiszę formułę…

Czytaj dalej