Power pivot nu recunoaste format de data
Buna ziua.
Imi bat capul de buna vreme cu un fisier ce foloseste power pivot. Deoarece in diferitele teste pe care le-am facut pe fisiere noi emuland structura fisierului de interes, totul mergea OK, atunci atasez fisierul original la care nu inteleg de ce nu merge, cu atat mai mult cu cat multa vreme a mers totul OK.
Descriere: in foaia "intrari&iesiri" avem un tabel (DB) care, alaturi de cel din foaia "avertizari" sunt folosite in modelul de date. In foaia "STOC" este un power pivot table si niste butoane. Ne intereseaza strict butonul INTRARE (sageata verde). Acestea porneste un form care dupa completarea campurilor+OK nu face altceva decat sa "scrie" aceste date in tabelul DB. Problema este la campul EXP DATE (cred). Desi daca completez o data in formatul D.M.YYYY (cel setat in DB pe coloana exp date), de ex 1.1.2018, imi strica complet tabelul din power pivot. La deschiderea ferestrei de power pivot toata coloana DUE (coloana calculata) este ERROR tocmai dat faptului ca nu recunoaste valorile din coloana EXP DATE ca fiind data ci text. Dar lucrul asta e valabil doar daca rulez VBA-ul din buton INTRARE. Daca fac exact acelasi lucru, dar manual, fara VBA, merge; adica daca ma duc in DB si ma apuc sa completez de mana 1.1.2018 merge. Nu inteleg de ce? Este exact aceiasi valoare. Sper sa ma fi facut inteles.
Imi bat capul de buna vreme cu un fisier ce foloseste power pivot. Deoarece in diferitele teste pe care le-am facut pe fisiere noi emuland structura fisierului de interes, totul mergea OK, atunci atasez fisierul original la care nu inteleg de ce nu merge, cu atat mai mult cu cat multa vreme a mers totul OK.
Descriere: in foaia "intrari&iesiri" avem un tabel (DB) care, alaturi de cel din foaia "avertizari" sunt folosite in modelul de date. In foaia "STOC" este un power pivot table si niste butoane. Ne intereseaza strict butonul INTRARE (sageata verde). Acestea porneste un form care dupa completarea campurilor+OK nu face altceva decat sa "scrie" aceste date in tabelul DB. Problema este la campul EXP DATE (cred). Desi daca completez o data in formatul D.M.YYYY (cel setat in DB pe coloana exp date), de ex 1.1.2018, imi strica complet tabelul din power pivot. La deschiderea ferestrei de power pivot toata coloana DUE (coloana calculata) este ERROR tocmai dat faptului ca nu recunoaste valorile din coloana EXP DATE ca fiind data ci text. Dar lucrul asta e valabil doar daca rulez VBA-ul din buton INTRARE. Daca fac exact acelasi lucru, dar manual, fara VBA, merge; adica daca ma duc in DB si ma apuc sa completez de mana 1.1.2018 merge. Nu inteleg de ce? Este exact aceiasi valoare. Sper sa ma fi facut inteles.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
-
- Moderator
- Mesaje:813
- Membru din:Vin Sep 09, 2011 4:05 pm
- Localitate:Iaşi
Re: Power pivot nu recunoaste format de data
Manual merge doar pentru ca setarile regionale sunt probabil pe Romania, cu punct ca separator data, Excel face in mod automat recunoasterea tipului de date introduse (daca introducem intr-o caseta oarecare textul "1-5", Excel face automat conversia in 1-Mai , deci recunoaste ca data acel text. Pentru un calculator cu setari altele decat cele standard romanesti, unde separatorul data este "/", o data introdusa cu punct nu va fi recunoscuta ca data.
Prin definitie, rezultatul unui textbox este text, se impune mai intai verificarea textului introdus, daca poate fi convertit in data, apoi se trimite in caseta de destinatie formatata ca data, nu ca text. La datele trimise din userform in sheet via vba, excel nu mai face acea recunoastere tip date.
Pentru verificare data introdusa:
La trimiterea datelor din form in foaia de lucru, transforma textul in data:
Prin definitie, rezultatul unui textbox este text, se impune mai intai verificarea textului introdus, daca poate fi convertit in data, apoi se trimite in caseta de destinatie formatata ca data, nu ca text. La datele trimise din userform in sheet via vba, excel nu mai face acea recunoastere tip date.
Pentru verificare data introdusa:
Cod: Selectaţi tot
Private Sub EXPBOX_Exit(ByVal Cancel As MSForms.ReturnBoolean)
dateString = EXPBOX.Value
If Not IsDate(dateString) Then MsgBox "Invalid date. Try again with dd/mm/yyyy format.": Cancel = True
End Sub
Cod: Selectaţi tot
Sheets("intrari&iesiri").Cells(cRow - 1, 10) = CDate(EXPBOX.Value)
Probleme să fie, că soluţii se găsesc...
Re: Power pivot nu recunoaste format de data
Oau. Chiar nu stiam chestia cu texboxul. Setarile regionale sunt pe Ro , dar le-am modificat un pic in sensul: decimal symbol ".""in loc de "," list separator "," in loc de ";". Nu vad unde ar fi separator de data. Formatul de data ales este dd.MM.yyyy. Si nu mergea. Intr-adevar dupa ce am implementat codul tau (nr 2) merge. Nu pot sa zic ca am inteles foarte exact ce se intampla, dar macar am rezolvat problema. Adica daca formatul de data era setat pe dd/MM/yyyy intelegeam sa nu mearga, dar asa...
Multumesc foarte mult.
Multumesc foarte mult.
Re: Power pivot nu recunoaste format de data
Buna,
Nu este greu de inteles. Intr-un TextBox, dupa cum arata si numele, pot fi inregistrate doar valor de tip text. Recunoasterea datei dintr-un text se face dupa criterii diferite, in functie de setarile regionale ale sistemului.
De aceea, trebuie sa va asigurati prin codul pe care il scrieti ca textul inscris in TextBox va fi recunoscut ca data pe orice claculator. Metodele sunt variate:
- folosirea evenimentelor Change, KeyDown, KeyPress, KeyUp pentru asitarea utilizatorului la introducerea datei.
Nu este greu de inteles. Intr-un TextBox, dupa cum arata si numele, pot fi inregistrate doar valor de tip text. Recunoasterea datei dintr-un text se face dupa criterii diferite, in functie de setarile regionale ale sistemului.
De aceea, trebuie sa va asigurati prin codul pe care il scrieti ca textul inscris in TextBox va fi recunoscut ca data pe orice claculator. Metodele sunt variate:
- - folositi functia IsDate() pentru a verifica daca textul introdus poate fi interpreteat ca data si in caz contrar obligati utilizatorul sa faca o nou introducere (totusi pot sa apara greseli datorate modului de interpretare a datei 10.11.12 poate fi interpretat ca 10 nov 2012 sau oct 11 2012)
- folosirea evenimentelor Change, KeyDown, KeyPress, KeyUp pentru asitarea utilizatorului la introducerea datei.
Am invatat sa inotam in apa, ca pestii
Am invatat sa zburam in aer, ca pasarile
A ramas doar sa invatam sa traim pe Pamant, ca Oamenii.
Am invatat sa zburam in aer, ca pasarile
A ramas doar sa invatam sa traim pe Pamant, ca Oamenii.
Re: Power pivot nu recunoaste format de data
Da. Asa este. Multumesc pentru lamuriri. Dintre solutiile propuse codul lui Catalin B. pentru verificare data si functia ISADTE mi-au "facut cu ochiul". Multumesc inca o data