Forum Index

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

This site uses cookies. Learn more about cookies and changing the settings in your browser.

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


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
Author
Message
Vansen1
Poziom 9
Poziom 9


Joined: 28 Jun 2012
Posts: 34
Location: Lubin

Post#1 Post from the author of the topic 17 Mar 2014 22:46   

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 message? + -

Back to top
   
Google


Google Adsense


Post# 17 Mar 2014 22:46   





Back to top
   
marcinj12
Poziom 23
Poziom 23


Joined: 14 Feb 2005
Posts: 2891
Location: Wrocław

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 Wink

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 message? + -

Back to top
   
Google


Google Adsense


Post# 17 Mar 2014 23:18   





Back to top
   
Vansen1
Poziom 9
Poziom 9


Joined: 28 Jun 2012
Posts: 34
Location: Lubin

Post#3 Post from the author of the topic 18 Mar 2014 23:16   

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 - Embarassed

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... Question

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 message? + -

Back to top
   
Ad


Ad


Post# 18 Mar 2014 23:16   



Back to top
   
marcinj12
Poziom 23
Poziom 23


Joined: 14 Feb 2005
Posts: 2891
Location: Wrocław

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 message? + -

Back to top
   
Vansen2
Poziom 2
Poziom 2


Joined: 18 Aug 2010
Posts: 3

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 message? + -

Back to top
   
marcinj12
Poziom 23
Poziom 23


Joined: 14 Feb 2005
Posts: 2891
Location: Wrocław

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ć Wink

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 Smile

Attachments:

Helpful message? + -

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


Administrator || Moderators || Forum Rules || General Rules || Cookies information || Contact

Page generation time: 0.053 seconds

elektroda.pl topic RSS feed