Zapis datuma

Pomoč pri izdelavi makrov
Odgovori
vilivj
Prispevkov: 23
Pridružen: To Sep 15, 2015 4:32 pm

Zapis datuma

Odgovor Napisal/-a vilivj »

Pozdravljeni, v VBA-ju sem imel zapis datuma s pikami npr. "05.02.2022" in to v WIn7 in prejšnjih različicah ni bil problem. Sedaj v Win10 mi po vpisu avtomatsko zabeleži namesto pike dvopičje ":" tako, da je zabeležena ura namesto datuma.Načeloma me ne bi to motilo, ampak ko sem vpisoval datum recimo 25:2:22 ga ni bilo možno vpisati, zato sem po dolgem ugotavljanju ugotovil , da je to ura, (ura 25 pa ne obstaja).
Sem v sistemu WIn10 zamenjal tam, kjer se nastavlja znak za decimalko ", ali .", ločilo tisočice itd. mi je zadeva delovala, vendar pa potem pri ostalih izračunih pride do napak.(recimo izračun :cena * 1,22=cenazddv).
lAli morda kdo ve v čem je problem morda samo v WIn10 ???
Najlepša hvala za odgovor.
lp
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Zapis datuma

Odgovor Napisal/-a admin »

Pozdravljeni,

Pišete, da se vam to dogaja v VBA, vendar tako kot opisujete, imate težave na nivoju operacijskega sistema.

Kaj pa drugi programi? Ne razumem namreč kaj točno se vam dogaja. VBA uporablja nastavitve OS in nobena država nima datuma z dvopičjem.

V vsakem primeru pa priložite vsaj del kode, ki naj bi napačno obravnavala datume.
lp,
Matjaž Prtenjak
Administrator
dragopre
Prispevkov: 105
Pridružen: To Dec 11, 2012 11:46 pm

Re: Zapis datuma

Odgovor Napisal/-a dragopre »

Pozdravljen.
Tudi sam sem imel, po prehodu iz Win 7 na Win 10, težave z datumi v VBA. Problem sem imel pri prirejanju/preračunavanju datumov. Problem je bil pri "rastavljanju" datuma na dan, mesec in leto.
Vzrok je pa naslednji:
VWin 7 je bil format datuma dd.mm.llll ( brez presledkov), Win 10 pa ima format DD. MM. LLLL ( presledek za piko, tako je pravopisno pravilno). V Win 10 datuma na staro obliko nisem uspel nastaviti.
V Excel-u sem imel še staro obliko datuma. Problem pa je nastal pri funkciji Date. Le-ta je vrnila datum v obliki Win10, ostali datumi v zvezku so bili pa v stari obliki. Ker program uporabljam na Win 10 in tudi na Win 7 je v VBA pri obdelavi datuma potrebno poenotenje.
To sem rešil takole:

Koda: Izberi vse

Function UrediDat(pVnos As String) As String

  Dim cSisDat As String

  pVnos = Replace(pVnos, " ", "")                                       ' Izločim presledke
  cSisDat = Date                                                        ' Sistemski datum v string, da vidim format
  If InStr(1, cSisDat, ". ") > 0 Then                                   ' Če je pri sistemskem datumu ločilo pika s presledkom
    pVnos = Replace(pVnos, ".", ". ")                                   ' tako uredim vnešeni datum
  End If
  UrediDat = pVnos                                                      ' Vrnem datum v pravem formatu
End Function
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Zapis datuma

Odgovor Napisal/-a admin »

Pozdravljeni,
dragopre napisal/-a: Po Mar 14, 2022 12:24 pm VWin 7 je bil format datuma dd.mm.llll ( brez presledkov), Win 10 pa ima format DD. MM. LLLL ( presledek za piko, tako je pravopisno pravilno). V Win 10 datuma na staro obliko nisem uspel nastaviti.
Ne, s slovenskimi nastavitvami imajo tudi WIN 10 nastavljeno brez presledkov. V vsakem primeru pa lahko to spremenite v sistemskih nastavitvah:

Koda: Izberi vse

Nastavitve / Ura in Jezik / Datum in Ura / (na desni stran) Datum, čas in območne nastavitve
Tu imate obrazec, kjer lahko nastavite oblike datuma in časa tako da izberete neko področno nastavitev ali pa kliknete spodaj opcijo Spreminjanje oblik zapisa podatkov in ta izberete povsem poljubno obliko.
lp,
Matjaž Prtenjak
Administrator
dragopre
Prispevkov: 105
Pridružen: To Dec 11, 2012 11:46 pm

Re: Zapis datuma

Odgovor Napisal/-a dragopre »

Pozdravljeni.
Hvala za popravek. V nastavitvah sem spregledal "Dodatne nastavitve datuma in ure".

Lep pozdrav
Drago
Odgovori