• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego makro nie działa w komórce

Object Storage Arubacloud
+1 głos
107 wizyt
pytanie zadane 21 września 2023 w Visual Basic przez magda_19 Gaduła (3,080 p.)

Cześć,

Komórka C16 ma zawierać datę, jeśli data wypadnie na sobotę, to makro powinno wyrzucić wiadomość "Wpisałeś dzień niepracujący"

Najpierw tworzę makro, które ma wyrzucić wiadomość, a potem je przywołuję w Private Sub (). Mój kod poniżej: 

Sub blokujDate()

If (Weekday(C16, 2) > 5) Then
    MsgBox ("Wpisałeś dzień niepracujący!!!")
End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "C16" Then
    Call blokujDate
End If

End Sub

Mimo wpisania date weekendowej, makro nie działa. Nie jestem pewna jak mogę przypisać makro do komórki C16

2 odpowiedzi

0 głosów
odpowiedź 21 września 2023 przez neo1020 Dyskutant (8,550 p.)

https://learn.microsoft.com/en-us/office/vba/api/excel.range(object)

aby odwołać się do komórki musisz użyć Range 

Weekday(Range("C16").Value, 2)
0 głosów
odpowiedź 21 września 2023 przez VBService Ekspert (254,490 p.)

Proponuje drugi parametr dla Weekday zostawić pusty, czyli vba użyje wartości domyślnej dla ustawień systemowych komputera i dla lepszej czytelności kodu proponuje użyć stałych vba vbSaturday i vbSunday

Sub blokujDate()
    Dim cellValue As Date
    Dim dayOfWeek As Integer

    ' Pobierz wartość z komórki C16 jako datę
    cellValue = Range("C16").Value

    ' Sprawdź, który to dzień tygodnia (1 - nie, 2 - pon, ..., 7 - sob)
    dayOfWeek = Weekday(cellValue)

    ' Sprawdź, czy to sobota lub niedziela
    If dayOfWeek = vbSaturday Or dayOfWeek = vbSunday Then
        MsgBox "Wpisałeś dzień niepracujący (" & Format(cellValue, "dddd") & ") !!!"
    End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$C$16" Then
        Call blokujDate
    End If
End Sub

 

Podobne pytania

0 głosów
1 odpowiedź 102 wizyt
pytanie zadane 20 września 2023 w Visual Basic przez magda_19 Gaduła (3,080 p.)
0 głosów
0 odpowiedzi 208 wizyt
pytanie zadane 26 listopada 2020 w Visual Basic przez ZenekMarjewka Nowicjusz (120 p.)
+1 głos
1 odpowiedź 379 wizyt
pytanie zadane 25 września 2020 w Visual Basic przez doeg Początkujący (430 p.)

92,655 zapytań

141,545 odpowiedzi

319,979 komentarzy

62,024 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...