[daily snippet] Excel VBA – autostart makra przy otwarciu arkusza

No Comments

Skoro wiemy już, jak zamknąć arkusz, przyda nam się wiedza, jak zrobić to w momencie otwarcia :)

A tak na poważnie – w niektórych firmach Excel jest używany do obróbki danych, bo interfejs jest znajomy dla większości pracowników biurowych, nie mających wiele wspólnego z komputerami. Można więc z arkusza Excelowego zrobić świetne narzędzie front-endowe. Komunikacja z dowolną bazą jest na wyciągnięcie ręki, więc niech użytkownik wprowadzi swoje dane, a VBA zrobi resztę.
W ten sposób można na przykład aktualizować stan magazynowy w sklepie internetowym. W takim przypadku przydałoby się zrobić to następująco:

Read More…

[daily snippet] Excel VBA – Zamykanie dokumentu (arkusza)

No Comments

W kolejnej odsłonie daily snippet – jak irytować użytkowników, czyli zamykanie aktywnego dokumentu.

Kod jest prosty, jak świński ogon. A możliwości są trzy:

   ActiveWorkbook.Close False ' - zamkniecie bez zapisywania zmian
   ActiveWorkbook.Close True  ' - zamkniecie z zapisem zmian
   ActiveWorkbook.Close       ' - użytkownik decyduje o zapisie

Życzę wielu pomyślnych zamknięć :)

[daily snippet] Excel VBA – blokowanie i ukrywanie arkusza, ukrywanie kolumny

No Comments

Dziś będzie krótko i łatwo. Zablokowanie/odblokowanie arkusza:

   ActiveSheet.Protect   ' - zablokowanie
   ActiveSheet.Unprotect ' - odblokowanie

Ukrycie/odkrycie arkusza:

   Sheets("x").Visible = False ' - ukrycie
   Sheets("x").Visible = True  ' - odkrycie

Ukrycie/odkrycie kolumny:

   Columns(zakres).EntireColumn.Hidden = True   ' - ukrycie
   Columns(zakres).EntireColumn.Hidden = False  ' - odkrycie
   '(gdzie np zakres = "X:Y")

[daily snippet] Excel VBA – Zaokrąglanie w górę i w dół

No Comments

Witam w nowym cyklu “daily snippet”. Nie oznacza to oczywiście, że snippety będą publikowane codziennie, ale postaram się częściej, niż zwykle. Będą to bardzo krótkie wpisy z maleńkimi (często jednolinijkowymi) fragmentami kodu. Taki zbiór przydatnych rzeczy. Krótko, więc z reguły bez “czytaj dalej”, a przynajmniej z esencją sensu posta w jego nagłówku :)

Na pierwszy ogień zaokrąglanie liczb. Excel VBA posiada funkcję Round(), która po prostu zaokrągla, ale warto wiedzieć, że można też zaokrąglać w górę i w dół, stosując kolejno:

   Application.RoundUp(liczba, miejscaPoPrzecinku)
   Application.RoundDown(liczba, miejscaPoPrzecinku)

Na marginesie, gdyby komuś się chciało analizować kod, zanim znalazłem te funkcje, zdążyłem już napisać własne. Smacznego:
Read More…