logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Excel] Jak makro może wpisywać datę w komórce z przyciskiem?

Gamblee 25 Paź 2011 19:08 1666 6
REKLAMA
  • #1 10065147
    Gamblee
    Poziom 9  
    Posty: 41
    Ocena: 2
    Witam wszystkich,

    Chciałem wykorzystać kalendarz w swoim arkuszu z https://www.elektroda.pl/rtvforum/topic1460712.html. Przypisałem go do przycisku. Chciałem, żeby makro nie wpisywało mi daty w aktywnej komórce, tylko w komórce gdzie znajduję się przycisk.

    Chciałem stworzyć kilkadziesiąt - około 70, takich przycisków w jednym skoroszycie. Czy nie będzie to zbytnio wpływać na wagę pliku, jak i na jego działanie?

    Liczę na Waszą pomoc :D
  • REKLAMA
  • #2 10065374
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Wywołuj formularz przy zdarzeniu arkusza "BeforeDoubleClick" w zakresach z datą i nie będą potrzebne żadne przyciski. Reszta do przerobienia w module klasy "clsInfo". Jeśli nie ma być aktywowana nst. komórka w pionie, wystarczy "zaremować" linie z offsetami.
  • REKLAMA
  • #3 10078841
    Gamblee
    Poziom 9  
    Posty: 41
    Ocena: 2
    Zamiast "BeforeDoubleClick" skorzystam z "SelectionChange", gdyż po dwukrotnym klikniecie nie mogłem wybrać daty w formularzu.

    Teraz pytanie:
    1. W jaki sposób ustawić to tylko dla pewnego zakresu?
    2. Po wybraniu daty chciałbym, żeby formularz się zamykał, jak również po wybraniu komórki z poza zakresu.

    To są moje początki w VBA:)
  • #4 10079332
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Ad 1. Określasz to w procedurze zdarzeniowej arkusza. W załączniku przykład ograniczający otwarcie formularza przez podwójne kliknięcie dla żółtych zakresów.

    Ad 2. Kod w module klasy.

    Przy "BeforeDoubleClick" trzeba wyłączyć edycję: Cancel=True
    Załączniki:
    • Gamblee.xls (76 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #5 10079433
    Gamblee
    Poziom 9  
    Posty: 41
    Ocena: 2
    Wielkie dzięki za załącznik.

    Nie wiem czy to tylko u mnie, ale po dwukrotnym kliknięciu w inną komórkę (nie z zakresu) wyskakuje błąd:
    Object variable not set (Error 91)
  • REKLAMA
  • Pomocny post
    #6 10080009
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Załącznik był podmieniony po 5min. Zaciągnij jeszcze raz. Lub popraw: if not intersect ... is nothing then
  • #7 10080905
    Gamblee
    Poziom 9  
    Posty: 41
    Ocena: 2
    Dzięki o to mi chodziło:)

Podsumowanie tematu

✨ W dyskusji poruszono temat wykorzystania makr w Excelu do wprowadzania daty w komórkach za pomocą przycisków. Użytkownik chciał, aby makro wpisywało datę w komórce, w której znajduje się przycisk, a nie w aktywnej komórce. Zasugerowano użycie zdarzenia "SelectionChange" zamiast "BeforeDoubleClick" dla lepszej funkcjonalności. Użytkownicy podzielili się przykładami kodu oraz wskazówkami dotyczącymi ograniczenia działania formularza do określonych zakresów komórek. Wskazano również na problemy z błędami w kodzie, które można rozwiązać poprzez odpowiednie sprawdzenie zakresów.
Wygenerowane przez model językowy.
REKLAMA