Forum Index

Rules  | Points  | Add...  | Recent posts  | Search | Register | Log in



MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza


  Main Page -> Forum Index -> Programming Generally -> Beginners Programming ->MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza Post new topic  Reply to topic 
Author
Hide the left column
Show left column Message
Vansen1
Level 9
Location: Lubin
Joined: 28 Jun 2012
Posts: 50
Vansen1
Level 9
Post#1 17 Mar 2014 22:46  Topic author   

MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza


Witam...

Szukając tematu związanego z kalendarzem dla Excela, znalazłem na naszym forum
post excel VBA - Microsoft MonthView Control - wstawianie kalendarza jak to zrobić??
z dnia 29 Grudnia 2012

Autorem tej perełki [kalendarza], jak wynika z postu, jest użytkownik marcinj12.

Pozwoliłem sobie na wykorzystanie tego kalendarza do własnych potrzeb.
Oczywiście mam jednak z nim związane pytania:
1. Kalendarz autorstwa marcinj12, do swojej aktywacji wykorzystuje ikonę przycisku [Button].
2. Wybraną w kalendarzu datę wstawia do jednej określonej komórki.
3. Po wybraniu daty i wstawieniu jej do komórki wyświetla komunikat o tym jaką datę wybrano.

Jak mogę dostosować ten kalendarz do swoich potrzeb.

Ad 1.
Chcę żeby aktywacja opcji wyboru kalendarza, następowała po kliknięciu na komórkę w kolumnach D i K.
Żeby wyświetlała się wówczas przy niej mała ikona strzałki, jak przy rozwijanej liście.
MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza

Dopiero po kliknięciu na nią aktywował się kalendarz (wyśrodkowany względem okna arkusza)
MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza

Wstawiona data do komórki w kolumnie D
MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza

I taka sama czynność dla komórek kolumny K

Ad 3.
Żeby nie wyświetlał się komunikat o tym jaką wybrano datę.
Chcę natomiast żeby wyświetlał się za to komunikat o błędzie, otóż:
- data w kolumnie D nie może być późniejsza od daty w kolumnie K
MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza

i odwrotnie

- data w kolumnie K nie może być wcześniejsza od daty w kolumnie D
MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza

Komunikaty (wyśrodkowane względem okna arkusza)

Ściślej rzecz ujmując:
- data w kolumnie D oznacza czas zatrzymania urządzenia,
- natomiast data w kolumnie K oznacza czas jej uruchomienia.

Proszę o pomoc...
-------------------------------------------------------
W załączeniu:
- Plik opisywanego arkusza (Format - MS EXCEL 2010 PL)
- Kalendarz autorstwa marcinj12
- Pliki graficzne - screeny

Attachments:

Helpful post? + 0
Back to top

Google Adsense
Google


Back to top
marcinj12
Level 40
Location: Wrocław
Joined: 14 Feb 2005
Posts: 3259
Helped: 964
Post rating: 98
marcinj12
Level 40
Post#2 17 Mar 2014 23:18    

Re: MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza


O proszę, miło wiedzieć, że mój kalendarz żyje i ma się dobrze ;)

Odpowiadając na Twoje pytania:
Jako że jest to forma i makro, po pierwsze Twój plik musi mieć rozszerzenie .xlsm
Musisz do niego zaimportować formę kalendarza z mojego pliku - w VBA opcją ExportFile oraz Import File. To na początek.

Ad. 1. i 2.
Tu się trochę rozmijamy - może się pokazywać po kliknięciu komórki [dokładniej: po zmianie selekcji], albo po wyborze czegoś z listy, którą sobie uprzednio utworzysz.
Jeżeli przy zmianie selekcji, można wykorzystać zdarzenie SelectionChanged.
Czyli w Arkusz1 dostaw kod:


Code: vb
You must be logged in to see the content.


Okno zdaje się jest wycetrowane względem dokumentu, natomiast ustawienia możesz zawsze zmienić we właściwościach [okienko Properties] formy ustawiając StartUpPosition.

Ad 3. Wystarczy dodać kilka warunków If sprawdzających, czy wszystko gra:


Code: vb
You must be logged in to see the content.


Helpful post? + 0
Back to top

Google Adsense
Google


Back to top
Vansen1
Level 9
Location: Lubin
Joined: 28 Jun 2012
Posts: 50
Vansen1
Level 9
Post#3 18 Mar 2014 23:16  Topic author   

Re: MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza


Na YouTube znalazłem film z odpowiedzią na część mojego pytania.
Link jest TUTAJ.

Film pokazuje krok po kroku, jak skopiować i wstawić makro do innego arkusza,
oraz jak sformatować komórki by wyświetlał się właściwy format daty.

Gdy człowiek ogląda na filmie jak robią to inni, to wszystko zdaje się być takie proste.
Ale tylko się zdaje, wiedza jednak kosztuje...

marcinj12 nie obraź się ale pozwoliłem sobie, do swojego arkusza wstawić kalendarz podobny do twojego.
Z linku znalezionego w tym filmie
- link do postu TUTAJ
- link do pliku TUTAJ

Twój kalendarz rzeczywiście jest wycentrowany, względem okna arkusza.
Moje niedopatrzenie - :oops:

Napotkałem jednak na problem.
Po wklejeniu Twojego drugiego kodu, dotyczącego wyświetlania komunikatów o wprowadzeniu błędnej daty.

Wkleiłem go do swojego arkusza, zaraz za kodem kalendarza.
Od tamtej pory, próba pracy z arkuszem kończy się wyświetleniem takiego komunikatu:
MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza

i przeniesieniem nas do okna edytora VBA.

Co zrobiłem źle... :?:

W załączeniu przesyłam:
- Plik arkusza (Plik_1_kod_VB.xlsm) z kodem kalendarza
- Plik arkusza (Plik_2_kody_VB.xlsm) z kodem kalendarza oraz Twoim kodem
- Kalendarz z podanego linku w filmie
- Screen komunikatu

Attachments:

Helpful post? + 0
Back to top
marcinj12
Level 40
Location: Wrocław
Joined: 14 Feb 2005
Posts: 3259
Helped: 964
Post rating: 98
marcinj12
Level 40
Post#4 19 Mar 2014 00:02    

Re: MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza


Masz 2x zdarzenie Worksheet_SelectionChange - a może być tylko jedno. Musisz połączyć te dwa kody, żeby dawały oczekiwany rezultat.

Helpful post? + 0
Back to top
Vansen2
Level 2
Joined: 18 Aug 2010
Posts: 3
Vansen2
Level 2
Post#5 19 Mar 2014 10:13    

Re: MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza


Najpierw zamieniłem w kodzie nazwę formuł kalendarzy:
z nazwy Kalendarz
na obecną nazwę CalendarFrm

Tak wyglądał kod kalendarza oraz komunikatów o błędzie daty,
przed jego połączeniem.



Code: vb
You must be logged in to see the content.


Tak wygląda teraz po połączeniu w jeden kod.
Niestety nadal nie działa, coś musiałem jeszcze przeoczyć.



Code: vb
You must be logged in to see the content.


Zerknijcie proszę swoim doświadczonym okiem, gdzie zrobiłem babola

Helpful post? + 0
Back to top
marcinj12
Level 40
Location: Wrocław
Joined: 14 Feb 2005
Posts: 3259
Helped: 964
Post rating: 98
marcinj12
Level 40
Post#6 19 Mar 2014 19:48    

Re: MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza


Bo tych kodów nie można tak po prostu połączyć - mój kalendarz wykorzystuje inne metody niż ten, który znalazłeś. On wstawia datę do arkusza już na poziomie formatki, więc w zasadzie musisz go przerobić tak, żeby to on sprawdzał poprawność kolumn... Zresztą, nie silę się na tłumaczenia, w załączniku działający przykład, podejrzyj sobie.

PS. adamas_nt wrzucił poniekąd słuszną uwagę, którą nie wiedzieć czemu już usunął, ale zdążyłem przeczytać ;)

Rzeczywiście, zamiast Worksheet_SelectionChange można wstawić całe zdarzenie w Worksheet_BeforeDoubleClick - wtedy kalendarz będzie się pokazywał po podwójnym kliknięciu. Tu się zgodzę, wybór należy do autora :)

Attachments:

Helpful post? + +1
Back to top
Post new topic  Reply to topic     Main Page -> Forum Index -> Programming Generally -> Beginners Programming -> MS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza
Page 1 of 1

Similar topics to mS EXCEL VBA - Wstawienie do komórki opcji wyświetlania kalendarza

VBA - Excel Wstawienie aktualnej daty jeśli np. C1=A2 (6)
excel VBA - Microsoft MonthView Control - wstawianie kalendarza jak to zrobić?? (20)
Excel VBA - import pliku txt - szukanie ciagu znakow i wstawienie do nowej komor (7)
[vba][excel] Przepisywanie koloru tła komórki (5)
Excel VBA -odczytanie komórki, zamiana i zapis (5)
VBA EXCEL - Replace - pobranie infomarcji z komórki (10)
Excel VBA- jak wybrać niepuste komórki w kolumnie (6)
[Excel, Vba] Zwiększanie komórki o wartoś z innego arkusza (4)
[VBA, Excel] wyszukanie pierwszej wolnej komórki w kolumnie (4)
[VBA] Excel 2010 - zwracanie komórki spełniające 2 warunki (5)


Switch to mobile version Switch to version for desktops

Administrator || Moderators || Forum Rules || General Rules || Cookies information || Editors || Contact for companies || Contact

Page generation time: 0.114 seconds