roko |
13.04.2011 18:45 |
Predmet:Broj tjedna
Dali ima neka funkcija koja bi mi vratila dan prvi i zadnji dan tjedna ili samo prvi
dakle imam unos datuma za 4 uvjeta datum 1 datum 2 tjedan 1 tjedan 2
odprilike od 1 do 2 raspon Kad unosim datum imam funkciju koja vrača prvi i zadnji dan u tjednu
pa onda bez problema u i 2 vratim broj tjedna tjedan 1=Format(datum, "ww") ali kako u nazad odnosno tjedan 1 kad upišem 14 da mi vrati 02.04.2011 ?
PreuzmiIzvorni kôd (Text): Function DanUTjednu(datPocetak As Date, kraj As Boolean) As Date
Dim Pocetak As Date
Dim Zavrsetak As Date
Pocetak = DateAdd("d", -Weekday(datPocetak) + 1, datPocetak)
Zavrsetak = DateAdd("d", 6, Pocetak)
If Month(datPocetak) <> Month(Pocetak) Then
Pocetak = DateAdd("d", -Day(datPocetak), datPocetak) + 1
End If
If Month(datPocetak) <> Month(Zavrsetak) Then
Zavrsetak = DateSerial(Year(datPocetak), Month(datPocetak) + 1, 0)
End If
If kraj = True Then
DanUTjednu = Pocetak + 1
Else
DanUTjednu = Zavrsetak '''' -Pocetak + 1
End If
End Function
|
Prilozi: dat.JPG (Velicina datoteke:71.15 KB)
|
zxz |
13.04.2011 19:08 |
Predmet:Re: Broj tjedna
Samop jos jedno dodatno pitanje.
dali tjedne(sedmice) Racunas za svaki mjesec ili tjedan u godini. |
roko |
13.04.2011 19:26 |
Predmet:Re: Broj tjedna
unos 1 je početak od za tjedan unos 2 je kraja tjedna recimo unos 1 kad upiÅ¡em 02.05.2011 daje mi 19 tjedan a unos 2 kad upiÅ¡em 07.05.2011 vrača mi 19 tako isto da u tjedan 1 upiÅ¡em 19 ili u tjedan 2 19 trbao bih dobiti isti rezultat . bilo bi lakÅ¡e samo s jednim uslovom pa lista ali ovako mi u cjeloj formi smanjuje broj redova naročito jer sigurno 6 mjeseci imam jedan uslov a ovi drugi su na preskok |
zxz |
13.04.2011 23:26 |
Predmet:Re: Broj tjedna
PreuzmiIzvorni kôd (Visual Basic):Function DanUTjednu(Tjedan As Integer)
Dim DatumS
Dim T, Dan, Datum1, Datum2
DatumS = Date
Start:
T = Format(DatumS, "WW")
If Val(T) > Tjedan Then
DatumS = DatumS - 7
GoTo Start
ElseIf Val(T) < Tjedan Then
DatumS = DatumS + 7
GoTo Start
ElseIf Val(T) = Tjedan Then
Dan = WeekDay(DatumS)
Datum1 = DatumS - Dan + 1
T = Format(Datum1, "WW")
Datum2 = Datum1 + 6
T = Format(Datum2, "WW")
End If
DanUTjednu = Datum1 & "-" & Datum2
End Function
|
roko |
14.04.2011 07:50 |
Predmet:Re: Broj tjedna
tu je neki zez Ako je tjedan = 1 u 2011
DatumS=28.12.2008
na 2 tjedan daje ok 02.01.2011
Start:( pređe 1 i krene od 53 2010
T = Format(DatumS, "WW")
If Val(T) > Tjedan Then
DatumS = DatumS - 7
GoTo Start
imam obračunsko razdoblje pa ču koristiti umjesto DatumS = OB_razdoblje ali i dalje ne razumijem
zašto ge okrene i broji do 2008 |
roko |
14.04.2011 09:53 |
Predmet:Re: Broj tjedna
Evo riješio problem (2017 i 2011...)
vezo sam na prvu funkciju da vrati prvi i zadnji dan tjedna pa ako je 01.01.2017 nedelja
ne daje drugi tjedan kao prvi nego nedelju ka prvi pa onda dalje redom
PreuzmiIzvorni kôd (Text):Function BrojTjedna(Tjedan As Integer, koji As Boolean) As Date
Dim T, Dan, Pocetni
Dim Datum1 As Date
Dim i
Datum1 = "01.01." & Format(Now(), "yyyy")
Pocetni = Datum1
For i = 1 To Tjedan
Datum1 = DateAdd("d", 7, Datum1)
Next i
Dan = DateAdd("d", -7, Datum1)
If Dan = Pocetni And koji = True Then: BrojTjedna = Pocetni: Exit Function
If koji = True Then
BrojTjedna = DanUTjednu(DateAdd("d", -7, Datum1), True)
Else
BrojTjedna = DanUTjednu(DateAdd("d", -7, Datum1), False)
End If
End Function
|
zxz |
14.04.2011 11:04 |
Predmet:Re: Broj tjedna
Trebalo je samo promijeniti ovo:
DatumS = DatumS - 1 i
DatumS = DatumS + 1
PreuzmiIzvorni kôd (Visual Basic):Function DanUTjednu(Tjedan As Integer)
Dim DatumS
Dim T, Dan, Datum1, Datum2
DatumS = Date
Start:
T = Format(DatumS, "WW")
If Val(T) > Tjedan Then
DatumS = DatumS - 1
GoTo Start
ElseIf Val(T) < Tjedan Then
DatumS = DatumS + 1
GoTo Start
ElseIf Val(T) = Tjedan Then
Dan = WeekDay(DatumS)
Datum1 = DatumS - Dan + 1
Datum2 = Datum1 + 6
End If
DanUTjednu = Datum1 & "-" & Datum2
End Function
|
roko |
14.04.2011 11:22 |
Predmet:Re: Broj tjedna
Isao sam postaviti zbog obracunske godine pa je 01.01. pšocetak kako god okrenes
a treba mi mogučnost 2 upisa sa istom svrhom tijedan 1 dan 1 akou upisem recimo
tjedani 14 u kolonama1 dobijam 14 i 28.03.2011 a ako upisem u datum 1 03.04.2011
dobijam 14 i 28.03.201 a to mi je trbalo da se ne poklapaju dat1 i dat 2
samo u funkciji1 imam malo previše a to je
' If Month(datPocetak) <> Month(Pocetak) Then
' Pocetak = DateAdd("d", -Day(datPocetak), datPocetak) + 1
' End If
to trba maknuti |