Moje doświadczenia z Excelem, Accesem i programowaniem w VBA
poniedziałek, 24 października 2016

Jak z poziomu kodu VBA (w Excelu lub Accessie) zmienić nazwy plików w określonym folderze? Służy do tego metoda (dość stara, ale ciągle użyteczna) Name .... As ....
Jej konstrukcja jest dość dziwna, liczy się skuteczność.o

Przykład kod z jej wykorzystaniem wygląda tak:

Public Sub ZmianaNazwy()
Dim StaraNazwa As String
Dim NowaNazwa As String
StaraNazwa = "C:\Wprawki\Obrazek.jpg"
NowaNazwa = "C:\Wprawki\Kwiatki.jpg"
Name StaraNazwa As NowaNazwa
End Sub

 

 

 

 

 

I już, nazwa pliku zapisanego na dysku została zmieniona - nie ma już pliku o nazwie Obrazek, jest za to Kwiatki. Warto zwrócić tu uwagę na to, że nie ulegają zmianie wartości przypisane do zmiennych, a jedynie nazwy plików.
Oczywiście, jeżeli plików jest więcej - robimy to w pętli.

Za pomocą tej metody można zmieniać nie tylko nazwy plików, ale również ich rozszerzenie. Jeżeli mamy na przykład pliki tekstowe z nietypowym rozszerzeniem (pochodzące np. z jakichś innych programów) np. *.abc - można też je zmienić np. na txt. W takim przypadku trzeba wyznaczyć nazwę podstawową pliku (wykorzystując funkcję InstrRev odszukującą położenie ostatniej kropki w nazwie pliku i zastępującą to, co po kropce - rozszerzeniem txt).

Moim zdaniem może mieć naprawdę szerokie zastosowanie.



 

Kurs Excel programowanie w VBA Kurs Access - programowanie w VBA

 

Excel 2013 i programowanie VBA

Tagi: metody VBA
23:15, marzatela , VBA
Link Dodaj komentarz »
wtorek, 18 października 2016

Gdy czasem zdarza się, że któraś z aplikacji pakietu Microsoft Office zaczyna "fiksować" - wystarczy "naprawić" jego instalację:

Naprawianie Excela

Pomaga na wiele problemów i jest szybkim i łatwym sposobem na ich rozwiązanie. Są jednak sytuacje, gdy pakiet Microsoft Office trzeba po prostu zainstalować na nowo.

Gdy laptop odmawia posłuszeństwa....

Mój pakiet Microsoft Office Professional nie jest wersją OEM, kupowałam klucz osobno, w wersji pudełkowej, choć bez płytki instalacyjnej - pobierałam go ze strony Microsoftu. Licencja na jeden komputer, ale ponieważ stary laptop mi padł (zresztą po wcześniejszej reinstalacji z recovery), więc nie przewidywałam problemów. Niestety, przy próbie aktywacji online okazało się, że jest to niemożliwe. Wyświetlił się komunikat, że liczba licencja dla tego produktu jest już wyczerpana, a bez rejestracji mogę korzystać przez 30 dni. Co zrobić w takiej sytuacji? Nawet Google nie podstawił zbyt wielu pomocnych odpowiedzi. Postanowiłam skorzystać z systemowego rozwiązania alternatywnego i przejść do rejestracji telefonicznej. Pełna obaw otworzyłam w Excelu stronę aktywacji telefonicznej, wybrałam kraj i pokazał mi się warszawski numer telefonu. Poniżej było 7 grup liter i cyfr. Zadzwoniłam. Przeszłam przez kolejne kroki wyboru (jeśli .... - wybierz ...., jeśli ..... , wybierz .....), aż trafiłam na moment umożliwiający wpisanie kolejnych grup widocznych na ekranie. Wstukałam je, przechodząc w ten sposób do następnego etapu. Znowu do wpisania kolejne grupy liter/cyfr, ale w drugą stronę - podawane przez lektora zestawy trzeba było wpisać w puste pola widoczne na ekranie komputera. Na koniec jeszcze kilka pytań dodatkowych (oczywiście też automatycznych) i już, aktywowałam Office'a.
Wygląda na to, że niepotrzebnie się bałam takiej formy aktywacji, poszło sprawnie, choć chwilę to trwało. Mam skłonność do literówek, więc na wszelki wypadek wszystko dokładnie sprawdzałam.
Nie mam możliwości sprawdzenia tego, ale zastanawiam się co stałoby się z Officem na moim poprzednim laptopie? Czy przeszedłby automatycznie do stanu bez aktywacji?


Microsoft Office
środa, 24 sierpnia 2016

Tworząc bardziej rozbudowane aplikacje w Excelu czy Accessie, często korzystamy z kilku różnych modułów. Z pewnością pozwala to na uporządkowanie procedur i funkcji. Ponieważ jednak część z nich może być wywoływana z innych modułów, konieczne będzie zadeklarowanie ich jako funkcji/procedur publicznych. Oznacza to jednak, że będą one także widoczne z poziomu skoroszytu - w okienku makr oraz w funkcjach użytkownika, co nie zawsze jest dobrym wyjściem. Gdy  zdecydujemy się na ich "ukrycie" czyli ustawimy jako procedury czy funkcje prywatne - będą one możliwe do wywołania tylko w obrębie modułu, w którym się znajdują.

W takiej sytuacji optymalnym wyjściem jest zadeklarowanie modułu jako prywatnego.

Opcje modułu


Robimy to poprzez wpisanie na początku modułu słów Option Private Module.
W ten sposób wszystkie funkcje i procedury publiczne w tym module będą możliwe do wywołania z poziomu kodu VBA (czyli wszystkich innych modułów), ale nie będą widoczne z skoroszytu czyli bez dostępu do edytora nie da się ich uruchomić.

Zasady te obowiązują zarówno VBA w Excelu, jak i Access.



 

 

Kurs Access - programowanie w VBA

Excel 2013 i programowanie VBA

czwartek, 18 sierpnia 2016

 Zarówno funkcje jak i procedury utworzone w kodzie VBA mogą mieć charakter prywatny jak i publiczny. Co to oznacza?

Funkcje (procedury) prywatne są widoczne tylko w obrębie modułu, w którym zostały umieszczone, nie można się do nich odwołać z innych modułów. Nie są także widoczne w okienku makr w skoroszycie czy na liście funkcji zdefiniowanych przez użytkownika.

W kodzie poprzedzone są słowem Private.

Private Function MojaFunkcja(Argument)

'.............

End Function

----------------------------------------------

Private Sub MojeMakro

'.............

End Sub




Funkcje (procedury) publiczne są dostępne i mogą być wywołane zarówno z innych modułów, jak i z poziomu skoroszytu (lista makr i lista funkcji zdefiniowanych przez użytkownika. 

W kodzie poprzedzone są słowem Public lub w ogóle nie mają oznaczenia - domyślną opcją jest charakter publiczny.

 Public Function MojaFunkcja(Argument)

'.............

End Function

----------------------------------------------

Sub MojeMakro

'.............

End Sub



 

Zasady te obowiązują w VBA zarówno w Excelu , jak i Accessie.



 



 

 

Kurs Excel programowanie w VBA

Excel 2016 i programowanie VBA

poniedziałek, 08 sierpnia 2016

Jak wiadomo - makra i procedury Excela służą do automatyzacji działań, pobierania czy analizy danych. A ponieważ "apetyt rośnie w miarę jedzenia" zawsze pojawia się chęć, aby jeszcze bardziej zoptymalizować, zautomatyzować i uprościć. Może warto się zastanowić, czy da się to zrobić zupełnie bez udziału użytkownika? Tak, aby nawet nie trzeba było otwierać skoroszytu Excela?

Załóżmy, że mamy plik z procedurą np. pobierającą z internetu aktualną wartość kursu waluty i zapisującą ją w kolejnych wierszach arkusza Excela. Czy nie byłoby fajnie, gdyby takie pobieranie danych odbywało się w tle, codziennie o określonej porze?
Przyjmijmy na roboczo, że takie makro (choć to oczywiście tylko przykład, dotyczy to każdego makra) nazywa się Aktualizuj i znajduje się w pliku Excela KursWalut.xlsm. Chcąc, aby automatycznie uruchamiało się przy otwarciu skoroszytu, musimy je umieścić w module skoroszytu. W zależności od wersji językowej Excela - jest on oznaczony jako Ten_skoroszyt lub This_workbook.

Moduł skoroszytu 

Klikając w tym miejscu - przejdziemy do modułu skoroszytu. W tym module tworzymy makro Workbook_Open i wpisujemy nazwę makra, które ma się uruchomić przy otwarciu skoroszytu.

Moduł skoroszytu 

W tym przypadku do zdarzenia skoroszytu przy otwarciu - dopisane jest makro Aktualizuj, znajdujące się w module ogólnym.
Teraz wystarczy zapisać i zamknąć plik - przy każdym jego otwarciu uruchomione będzie makro Aktualizuj.

A na koniec - pozostaje tylko ustawienie terminu i częstotliwości, z jaką nasz skoroszyt powinien się otwierać. To już jednak nie w Excelu, a w harmonogramie zadań Windowsa. Uruchamiamy go z paska startowego Windowsa:

harmonogram zadań

Następnie tworzymy nowe zadanie:

harmonogram zadań

Następnie w zakładce Akcje wpisujemy nazwę pliku do otwarcia (po naciśnięciu przycisku Przeglądaj z prawej strony możemy oczywiście odszukać plik na dysku):

harmonogram zadań


harmonogram zadań

Kolejny krok to przejście do zakładki Wyzwalacze:

harmonogram zadań

Naciskamy przycisk Nowy i w kolejnym formularzu ustalamy termin i częstotliwość.
Potem wystarczy już tylko nacisnąć OK, choć oczywiście zawsze można przyjrzeć się wszystkim opcjom.

W zależności od wersji Windowsa - wygląd harmonogramu zadań może się różnić, choć zasada działania jest identyczna. Moje screeny pochodzą z Windows10.

 


Kurs Excel programowanie w VBA

wtorek, 26 lipca 2016

Do najczęściej spotykanych opcji modułów VBA należy Option Explicit. Dotyczy ona modułów ogólnych, arkuszy i skoroszytu w Excelu oraz wszystkich modułów w bazie Access, ma więc charakter bardzo uniwersalny. Co oznacza?

Option Explicit to wymaganie deklaracji wszystkich zmiennych występujących w module. Nie muszą mieć one zadeklarowanych typów, ale poprzedzoną słowem kluczowym Dim nazwę - tak.

Option Explicit

Jeżeli któraś ze zmiennych nie będzie zadeklarowana - to przy kompilacji (lub przy uruchomieniu procedury pojawi się komunikat błędu kompilacji i mak0ro nie zostanie wykonane.

Option Explicit

Bez Option Explicit - kod skompilowałby się prawidłowo.

Mimo tego - warto stosować tę opcję. Głównie dlatego, że pozwoli na wyłapanie i eliminację błędów już na etapie debugowania, a nie dopiero przy wykonywaniu kodu. Przede wszystkim stanowi skuteczną barierę przed literówkami w kodzie - od razu je wskaże.

Oczywiście sama deklaracja zmiennych (obowiązkowa lub nie) też ma bardzo duże znaczenie, zarówno do kontroli danych jak i oszczędzania pamięci. Warto.

Option Explicit można wpisać ręcznie na początku każdego modułu, ale można też ustawić jako opcję domyślną.
Robimy to w edytorze VBA: Tools --> Options:

Opcje modułu

W kolejnym okienku zaznaczamy opcję Require Variable Declaration.

Opcje modułuOd tej pory każdy moduł w każdym skoroszycie Excela będzie rozpoczynał się właśnie od Option Explicin.


Kurs Excel programowanie w VBA

00:00, marzatela , VBA
Link Dodaj komentarz »
czwartek, 07 lipca 2016

Excel czy Access? Każde z tych narzędzi ma swoich zwolenników, można w nich osiągnąć podobne efekty końcowe, doskonale z sobą współpracują i tak naprawdę decydujące znaczenie powinna mieć ilość przetwarzanych danych. Jeżeli chcemy stworzyć aplikację z dużą ilością danych, a w dodatku ma być przeznaczona do jednoczesnej pracy wielu użytkowników to z pewnością bardziej wydajną i szybszą w działaniu będzie aplikacja zbudowana w Accessie. Warto więc z pewnością poznać przynajmniej podstawy Accessa - później będzie łatwiej i prościej, to wciąga.

Nie da się mówić o Accessie nie znając pojęcia kwerendy, to podstawa. Dlatego polecam świetny kurs video z  Videopoint:

Access 2013. Kwerendy baz danych

Kwerendy Access

Kurs ten nie jest raczej przeznaczony dla osób zupełnie początkujących, które nigdy wcześniej nie miały kontaktu z Accessem. Potrzebna jest choćby minimalna wiedza na temat tabel Accessa, ale w zasadzie nic więcej. Kwerendy to drugi krok w poznawaniu Accessa, więc trzeba je poznać.
Polecany przeze mnie kurs przedstawia różnego rodzaju kwerendy Access - zarówno proste jak i funkcjonalne. Dokładnie i szczegółowo poznamy sposoby tworzenia kwerend, czy to za pomocą kreatora czy też tworząc/modyfikując je samodzielnie w widoku projektu. Autor kursu omawia także podstawowe funkcje i możliwości ich wstawienia do pól obliczeniowych kwerendy. To bardzo przydatna wiedza, pozwalająca na znaczne rozszerzenie funkcjonalności kwerendy, a tym samym szybszą i głębszą analizę danych. Oczywiście wszystko na konkretnych przykładach. Dużym atutem kursu jest także osobny rozdział poświęcony danym typu Data i Czas i ich wykorzystaniu w kwerendach. To bardzo ważne, gdyż może stwarzać wiele problemów początkującym użytkownikom.

Autorem kursu jest Kamil Jóźwik. Całość kursu trwa 3 godz.10 min. , w formie 30 lekcji (można je zatrzymywać, wznawiać, powtarzać). Jest dostępny w trybie online lub do pobrania w formie pliku zip.

Kurs jest dostępny tu:

Access 2013. Kwerendy bazy danych

A w ramach promocji, specjalnie dla czytelników mojego blogu - kupon rabatowy na ten i na wszystkie inne kursy video z dziedziny Excel, Accessa i VBA. Wystarczy wpisać kod EXCEL15, aby skorzystać z 15% rabatu. Kupon jest ważny do końca lipca 2016.

 





poniedziałek, 27 czerwca 2016

Excel jest narzędziem o bardzo wielu możliwościach - to wiadomo. Można w nim naprawdę mnóstwo rzeczy zrobić, ułatwiając sobie pracę i to nie tylko z prostą analizą danych. tak naprawdę jednak to prawdziwa zabawa w automatyzację i optymalizację skoroszytu zaczyna się wtedy, gdy próbujemy stworzyć swoją pierwszą procedurę czy funkcję w kodzie VBA.
Owszem, jest nagrywarka makr pozwalająca na stworzenie takiej procedury, ale najczęściej wymaga to modyfikacji i/lub rozbudowy kodu. Bardzo istotne jest tu jednak to, że naprawdę istotne procedury (np. pętle, okna dialogowe, obsługa zdarzeń arkusza czy skoroszytu) nie dadzą się nagrać, trzeba je tworzyć bezpośrednio w edytorze VBA. I wbrew pozorom - nie jest to wcale takie trudne. Wystarczy zacząć i dać się wciągnąć.

Moja propozycja dla tych, którzy pierwsze początki VBA już poznali to kurs video z Videopoint:

Excel 2016 i programowanie VBA.
Zaawansowane techniki tworzenia makr.

Excel 2016 i programowanie VBA

Naprawdę warto zapoznać się z przedstawionymi w kursie rozwiązaniami i procedurami VBA. Sprawią one, że skoroszyt Excela stanie się bardzo rozbudowaną, w pełni automatyczną i zoptymalizowaną aplikacją.
W ciekawy i oczywiście oparty na konkretnych przykładach sposób można tu poznać takie zagadnienia jak różnego rodzaju komunikaty czy okna dialogowe, tworzenie rozbudowanych wykresów i przekształcanie ich w grafiki. Ważnym aspektem jest także automatyczne otwieranie innych plików, pobieranie z nich danych i to także w sposób niezauważalny dla obsługującego aplikację użytkownika. Znaczna część kursu omawia formularze, w tym korzystanie z rozbudowanych kontrolek ActiveX. No i oczywiście obsługa błędów powodująca uodpornienie aplikacji Excela na różnego rodzaju błędy użytkowników przy wprowadzaniu danych - każdy udostępniający plik Excela innym wie, jakie ma to znaczenie.

Autorem kursu jest Jarosław Baca. Całość kursu trwa 6 godz. 20 min. Można go przejść w trybie online lub pobrać w formie pliku zip.

 

Kurs jest dostępny tu:

 

Excel 2016 i programowanie VBA.

 

A w ramach promocji, specjalnie dla czytelników mojego blogu - kupon rabatowy na ten i na wszystkie inne kursy video z dziedziny Excel, Accessa i VBA. Wystarczy wpisać kod EXCEL15, aby skorzystać z 15% rabatu. Kupon jest ważny do końca lipca 2016.




piątek, 17 czerwca 2016

Top 100 w promocji

Promocja TOP 100 tytułów księgarni informatycznej w promocji 2za1.

Lista książek objętych promocją:

Jak czytać, to tylko najlepszych

Promocja trwa w dn.16-19 czerwca 2016r.

czwartek, 16 czerwca 2016

Księgarnia Videopoint Z GW Helion obchodzi dziś swoje pierwsze urodziny.

1. urodziny Videopoint

Znaleźć tam można szeroką ofertę kursów video. Głównie z informatyki, ale nie tylko. Warto sprawdzić i skorzystać z promocji.

Ja sama polecam te kursy:

Znam i polecam


sss

 
1 , 2 , 3 , 4 , 5 ... 35
| < Grudzień 2016 > |
Pn Wt Śr Cz Pt So N
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  


Książki warte polecenia
zobacz szczegóły...


A tu oferta na dziś:





ministat liczniki.org



Napisz do mnie!