Power pivot nu recunoaste format de data

Doua add-onuri gratuite oferite de catre Microsoft ce completeaza functionalitatea Excel atat de bine incat incepend cu Excel 2013 Power Pivot vine preinstalat (doar trebuie activat) iar in Excel 2016 Power Query este inclus direct in interfata Excel (nu mai este add-on)
Închis
RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Power pivot nu recunoaste format de data

Mesaj de RAMBO » Lun Ian 30, 2017 2:23 pm

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.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Catalin B.
Moderator
Moderator
Mesaje: 813
Membru din: Vin Sep 09, 2011 4:05 pm
Localitate: Iaşi

Re: Power pivot nu recunoaste format de data

Mesaj de Catalin B. » Lun Ian 30, 2017 8:03 pm

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:

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
La trimiterea datelor din form in foaia de lucru, transforma textul in data:

Cod: Selectaţi tot

Sheets("intrari&iesiri").Cells(cRow - 1, 10) = CDate(EXPBOX.Value)
Probleme să fie, că soluţii se găsesc...

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Power pivot nu recunoaste format de data

Mesaj de RAMBO » Mar Ian 31, 2017 10:03 am

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.

TudyBTH
Moderator
Moderator
Mesaje: 993
Membru din: Joi Feb 11, 2016 2:12 pm
Localitate: Cluj Napoca

Re: Power pivot nu recunoaste format de data

Mesaj de TudyBTH » Mar Ian 31, 2017 12:41 pm

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:
  • - 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)
- folositi un utilitar de introducerea datei prin selectare de tipul Calendar Control 12.0, Date Picker, etc sau folositi TextBox-uri separate pentru introducerea zilei, lunii si anului.
- 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.

RAMBO
Mesaje: 474
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Re: Power pivot nu recunoaste format de data

Mesaj de RAMBO » Mie Feb 01, 2017 11:35 am

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

Închis

Înapoi la “Power Query & Power Pivot”