Pagina 1 di 1
[Risolto]Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 10:54
da maxrome84
Salve a tutti, torno sull'argomento gridcontrol in finestre di dialogo perché mi sono accorto di un'altro problemino.
Questa mia griglia prende i dati tra le altre cose, da una colonna formattata come Data.Ora giustamente nella griglia invece di es. 12/02/2017 vedrò una serie di numeri es.45539
C'È modo per aggirare il problema o devo cambiare la formattazione sul foglio?Non vorrei visto che poi non potrei ordinare per data.
Tra l'altro questo problema è comune anche a listbox e combobox.
Grazie.
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 11:25
da Gaetanopr
No, devi leggere i dati come string quindi cambiare la macro
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 12:02
da maxrome84
Grazie intanto per la risposta Gaetanopr. Visto che popolo la griglia con un array come mi hai mostrato tu, ho provato a dichiarare string l'array ma il risultato non cambia...
dim arr() as string
Arr() = archivio.getcellRangeByName("A2:I" & LastRow+1).GetDataArray
datamodel.addRows(Arr, Arr)
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 12:07
da Gaetanopr
Non ho detto di dichiarare l'array come string ma di acquisire i dati come testo.
Una soluzione è popolare l'array e poi andare a cambiare solo la colonna interessata.
Riprendendo il tuo vecchio file, quindi colonne A B C , consideriamo che la colonna A è quella con le date, puoi fare in questo modo.
Codice: Seleziona tutto
Arr() = archivio.getcellRangeByName("A2:I" & LastRow+1).GetDataArray
For i = 1 To LastRow
Arr() = archivio.getcellByPosition(0, i).String
Next i
datamodel.addRows(Arr, Arr)
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 12:37
da maxrome84
Si inizialmente avevo pensato la stessa cosa, ma avevo scartato questa soluzione perché avendo moltissime righe, leggere riga per riga mi rallenterebbe troppo l'esecuzione.
A me andrebbe bene anche leggere l'intero range come string.C'é modo di farlo?
Grazie ancora.
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 12:45
da Gaetanopr
Guarda ho provato con 50000 righe ed è immediato, deve leggere solo una colonna gli array sono velocissimi non è come andare a leggere riga per riga, colonna per colonna ed inserirla nel grid come facevi inizialmente tu.
Comunque come dici tu si può fare solamente se formatti la cella come testo
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 13:36
da maxrome84
È vero scusa, non avevo considerato la differenza.
Quindi volendo lasciare la formattazione come DATA , dovrei convertire da codice la data in stringa?
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 15:26
da Gaetanopr
La macro che ti ho allegato fà questo
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 15:59
da maxrome84
Scusa Gaetanopr ma a me continua a visualizzare le date in modo sbagliato.Avrò sbagliato a modificare qualcosa.Ti allego un file di esempio.
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 16:13
da Gaetanopr
Ho sbagliato nel messaggio precedente
Codice: Seleziona tutto
For i = 1 To 28 'LastRow
Arr(i-1)(1) = sheet.getcellByPosition(1, i).String
Next i
datamodel.addRows(Arr, Arr)
Re:Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 16:30
da maxrome84
Grazie ancora tanto per la pazienza! Inserisco risolto!
Re: Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 16:41
da Gaetanopr
Re: [Risolto]Grid control visualizzare Date
Inviato: mercoledì 1 marzo 2017, 18:19
da maxrome84
Sistemato! Alla prima botta non ci azzecco mai!