Temat: Ktory dzien w roku na podsawie daty VBA

Mam prośbę dotyczącą zadania, które na podstawie daty powie mi który to dzień w roku i dodatkowo wytulaczy dlaczego, tzn przykladowe liczby
20.05.2020
120 dzien roku, bo 31 dni stycznia, 28 dni lutego itd.
Ma ktoś pomysł? :(
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Ktory dzien w roku na podsawie daty VBA

Jest taka funkcja jak dateadd która ma kilka parametrów związanych z operacjami na datach
DateAdd("d", 120, "01.01.2020")

i 120 dnień to 30.04.2020
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Ktory dzien w roku na podsawie daty VBA

Oskar, ale w Twojej formule chyba powinno się to liczyć nie od 1 stycznia tylko od 31 grudnia roku poprzedniego?
I autorce chyba bardziej chodziło o coś odwrotnego czyli nie o dodanie 120 dni tylko o sprawdzenie, dla danej daty, który jest to dzień rok? Przynajmniej tak ja to zrozumiałam.
I tu wystarczyło zwykłe odejmowanie po konwersji do CLng.

Temat: Ktory dzien w roku na podsawie daty VBA

Mam taka formule, ktora liczy mi po tym jak ktos wybierze date, ktory jest to dzien roku.
I mam zadanie dopisać, po tym jak sie wyswietli ze jest to np 145 dzien roku uzasadnienie
145 dzien, poniewaz 31 dni styczen, 28 luty itp.

Jestem noga z informatyki takze mnie to przerasta :/ caly czas jakis blad

zalaczam zdj

Obrazek
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Ktory dzien w roku na podsawie daty VBA

DTPicker to kontrolka z zestawu CC2: http://vbatools.pl/metody-pracy-z-common-controls-cc2/

A twój problem to po prostu arytmetyka - czyli odejmowanie liczb, bo data to liczba.
Trudnością to wysznaczenie dnia początkowego roku - czyli 1 stycznia + 1 bo pierwszy dzień nie jest zerowym:
Private Sub DTPicker1_Change()
Dim d_year&: d_year = Me.DTPicker1.Year
Dim d_ktorydzen&: d_ktorydzen = DTPicker1.Value - CDate("1/1/" & d_year) + 1
MsgBox "Wybrano: " & Me.DTPicker1.Value & vbCr _
& "To dzień: " & d_ktorydzen, vbInformation, "VBATools.pl"
End Sub


Funkcja jaka ty natomiast używasz: vba.DatePart też może zostać użyta i daje ten sam wynik
MsgBox "Wybrano: " & Me.DTPicker1.Value & vbCr _
& "To dzień: " & VBA.DatePart("y", Me.DTPicker1.Value), vbInformation, "VBATools.pl"


Zatem masz swoje uzasadnienie.
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Ktory dzien w roku na podsawie daty VBA

Wydaje mi się jednak że ty nie używasz developera VBA, ale VB z Visual Studio...
czyli generalnie język jak najbardziej pokrewny, ale liga wyżej - czyż nie?

Czyżby rósł nam nowy developer (na razie co prawda bardzo malutki no ale jak już opanuje kontrolki to kto wie)...

Temat: Ktory dzien w roku na podsawie daty VBA

Racja Visual Studio, dziekuje bardzo :)

Następna dyskusja:

VBA zmiana formatu daty




Wyślij zaproszenie do