Newsgroup: it.comp.lang.visual-basic
Titolo: Creazione File XLS (Excel) Date

Salve a tutti,
a qualcuno è mai capitato di avere problemi nell'inserimento dati in un file
excel?
Mi spiego meglio...
Ho fatto un PRG che mi acquisisce dei dati da 2 file TXT.... li elabora e il
risultato me li scrive su un file XLT che poi salvo in XLS.
E bene, il programma fa tutto giusto, ma mi accorgo che ad un certo punto
(Di solito nelle ultime righe del foglio Excel) mi ritrovo con le date
invertite (MM/DD/YY) mentre all'inizio del foglio erano giuste (DD/MM/YY),
ho provato in tutti i modi, tra format Cdate ecc ecc.
Ma mi chiedevo se il problema era dovuto ad altro...
Grazie a tutti...

 ho provato in tutti i modi, tra format Cdate ecc ecc.
Ma la scrittura nelle celle come la fai?
Da qui non riesco a leggere bene il tuo codice.
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

 che siamo noi.
Scusa, ma non avevo postato ancora il codice... FX2 è la flexgrid da dove
prelevo i dati da inserire nel Foglio Excel... Sulla Flexgrid le date sono
giuste...
Ecco quindi il codice:
Set xlApp = CreateObject("Excel.Application")
Dim strNFile As String
Dim Risp
strNFile = App.Path & "\Excel\Rilevamento.xlt"
'Set xlBook = xlApp.Workbooks.Open(strNFile)
'Set xlSheet = xlBook.Worksheets(1)
Set xlBook = xlApp.Workbooks.Open(strNFile)
Set xlSheet = xlBook.Worksheets(1)
xlApp.Visible = False
xlSheet.Cells(5, 2) = Date
xlSheet.Cells(7, 2) = Label7
xlSheet.Cells(9, 2) = lettore
Dim N As Long
Dim Col As Long
N = 1
For Col = 12 To (FX2.Rows - 2) + 12
FX2.Row = N
FX2.Col = 1
xlSheet.Cells(Col, 1) = Format(CDate(FX2.Text), "DD/MM/YY") <---- questa è
una delle prove che ho fatto.
FX2.Col = 2
xlSheet.Cells(Col, 2) = FX2.Text
FX2.Col = 3
xlSheet.Cells(Col, 3) = FX2.Text
FX2.Col = 7
xlSheet.Cells(Col, 4) = FX2.Text
FX2.Col = 8
xlSheet.Cells(Col, 5) = Replace(FX2.Text, ",", ".")
N = N + 1
If N = FX2.Rows Then
    Exit For
    Else
    FX2.Row = N
End If
Next Col
xlSheet.Cells(Col, 4) = "Totale (¤.):"
xlSheet.Cells(Col, 5) = Replace(Label3, ",", ".")

 una delle prove che ho fatto.
Tra le prove che hai fatto, c'č anche 
xlSheet.Cells(Col, 1).Value = CDate(FX2.Text)
?
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
Se i tempi non chiedono la tua parte migliore, inventa altri tempi. 
(Baolian, libro II, vv. 16-17)
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Caspita!!! Sembra Fungere... Grazie 1000.
E io che credevo che ci volesse qualcosa di piů Codicioso!!!

 E io che credevo che ci volesse qualcosa di più Codicioso!!!
In effetti, quella consigliata è una soluzione un po' brutale, che fa
affidamento sulla coerenza tra le impostazioni internazionali della
macchina su cui viene eseguito il codice e il formato con cui la data è
scritta nella grid.


 Sergio
Si, lo so, ma tutti i PC sono configurati allo stesso modo, e il formato
data sulle impostazioni internazionali, li metto sempre su GG/MM/YY e le ore
HH:MM, quindi non dovrebbero esserci piů problemi...
Non ho messo il .value dopo la parente, ma sembra andare lo stesso, ora lo
faccio testare all'interessato.
Grazie ancora.

 Non ho messo il .value dopo la parente, ma sembra andare lo stesso
Mi auguro tu sappia il perchč...



Credo sia per il server.createobject
o no, prof?

 o no, prof?
Capisci, Melchiade, perchè chi sviluppa in altri linguaggi sostiene che 
con VB si creino solo minchiate?
Una roba illeggibile come quella di Ulisse, in un sistema serio non 
dovrebbe neppure compilare.
Invece, in VB si compila, e 'sembra andare lo stesso'.
Ciao


 che siamo noi.
Grazie Albe, ma sai, non tutti hanno avuto la possibilità di andare a fare
corsi e a certificarsi M$... Noi Autodida facciamo le cose ad intuito...
Faremo così, finche chi ci circonda invece di indirizzare chi come me può
avere o meno problemi di "Codice Scritto e Funzionalità" continua nella sua
ignoranza da super PROG divertendosi a manifestare boria e superiorità...
Che su NG di gente Brava ce ne, ma quella seria, è quella parte che pur se
dall'alto, abbassano lo sguardo e prende per mano che ha bisogno senza tanta
puzza sotto il naso.
Ciao
Massimiliano

 o no, prof?
No.
Più semplicemente, perchè Value è la proprietà di default dell'oggetto
cells.
A scanso di equinozi, ti comunico che sono un autodidatta anche io.


 Noi Autodida facciamo le cose ad intuito...
Sono autodidatta anche io.
Ma se uno bravo mi dava un codice scritto in un modo, l'ultima cosa che 
mi permettevo di fare era di persistere in una determinata sintassi, 
perchè 'tanto funziona lo stesso'.
L'approccio giusto (l'unico approccio giusto) è quello di chiedersi 
'perchè uno bravo l'ha scritto così, ed io no?'.
Al che, sia con google che con MSDN, avresti saputo ciò che Melchiade 
ti risponde nell'altro post.
Ma tu non hai proceduto in questo modo, anzi, hai preferito sparare a 
caso alla domanda di Melchiade (che aveva il chiaro scopo di farti 
riflettere, non certo quello di offenderti).
Come vedi, non è questione di 'sapere', ma di 'apprendere'.


 che siamo noi.
Guarda che Melchiade si č comportato piů che bene ( e lo ringrazio)... Non
mi sono mica offeso... Ho risposto alla sua domanda, non certo di dare la
risposta esatta... Ma almeno non si ne lamentato e ne l'ha giudicata la
sintassi.. mi ha fatto solo riflettere... Rispettando le mie lacune che sono
infinite, certo... E il discorso che ho fatto prima, non era sul fatto di
Sapere o meno, ma su come si č appreso o no il Sapere che si ha...
La mia č stato solo una domanda semplice, che se non disturba troppo, puň
ricevere una risp semplice... Capisco bene che qualcuno sia stufo di leggere
e rileggere le stesse cose... Ma nessuno lo obbliga a dare risposte... come
qualcuno che oltre a non dare risposte, giudica in modo non costruttivo.
Ciao, Max


Questo si che è Postare, con rispetto di tutti.. sei una persona corretta...
e ti ringrazio.. io sono nel mondo VB da 2 anni e non è il mio lavoro... io
sono la manovalanza dell'informatica... Quello che corre per mettere a posto
un compiter che non si avvia ad esempio. Ma ho anche la necessità di prog.
ma non riesco a dedicare 24 ore al giorno del tempo. Purtroppo...
Ma non è una giustificazione... Grazie a Voi del NG ho imparata il 95% di
quello che so.. quindi devo ringraziare tutti, anche ad Albe.. che di post
ne ha scritti tanti... rispondendo anche in modo più costruttivo, per
aiutare insomma.
Grazie a tutti.. salti, max
Grazie Melchiade.

 qualcuno che oltre a non dare risposte, giudica in modo non costruttivo.
Veramente io coglievo l'occasione per fare, rivolgendomi a Melchiade in 
quanto il tuo problema era già risolto e davo il thread per concluso, 
un'osservazione generale sul mondo dello sviluppo sw.
Sei tu che te ne sei uscito con un atteggiamento strano, quasi da 
offeso.
Se hai l'umiltà di cogliere ciò che viene detto, ne trarrai vantaggio.


 A scanso di equinozi, ti comunico che sono un autodidatta anche io.
Pure io faccio sempre
appo$=Rs("CAMPO") e non Rs("CAMPO").Value
oppure
appo$=text1 e non appo$=text1.text
Se sono implicite c'è qualche motivo per cui è meglio specificarle? (è una
domanda per capire)
Tnx :)

Il 26/01/2006, Andrea ha detto :

In primis la leggibilità.
Se una cosa viene di fatto eseguita od invocata (conversioni implicite 
e proprietà predefinite), è giusto che leggendo il codice si veda 
esplicitamente cosa avviene.
Cioè, se io leggo
Appo$=Text1
io sono convinto che Text1 sia una variabile di tipo stringa, non un 
controllo textbox.
Oggi magari ti è tutto chiaro.
Ma fra due mesi ti chiedono una modifica, e ti perdi.
Oppure, ancora peggio sono le conversioni implicite.
Ti accorgi che da qualche parte vengono fraintese delle date. Beh, ci 
sarà un CDate o un DateSerial scritto male. Fai una bella ricerca e 
trovi i 23 punti nel codice in cui hai usato tali funzioni. Le 
controlli, e trovi il bug.
Ma se hai usato il CDate implicito?
Ciao


 Ma se hai usato il CDate implicito?
Bhe questo in effetti non è una bella cosa, e sono quelle cose che per
trovarle impazzisci.

 Quindi dovrei essere abbastanza a posto :)
Spera di non avere mai colleghi, che adottano magari codifiche diverse, 
che debbano mettere mano al tuo codice.
Boh, io non riesco a capire queste cose.
Cioè, nel momento in cui espliciti una proprietà, la mente è obbligata 
a fare un rapido check di coerenza del tipo, a verificare che 
l'esecuzione della property non implichi qualcosa, ecc...
Insomma, è un modo corretto di lavorare.
Omettere queste cose, in un ambiente più rigoroso sarebbe motivo di non 
compilazione del progetto.
VB invece le tollera e, alla fine, le cose anche più macroscopiche si 
vedono solo a eseguibile consegnato.
Tutto, per risparmiare la pressione sul tasto 'punto' e la selezione 
della proprietà...


 della proprietà...
Il discorso non è così semplice.
Ad esempio per adesso sto lavorando un 15" crt 800x600 (altrimenti divento
cieco), e scrivere:
if txtA<>txtB and txtA="S" and txtB="N" then
mi diventa
if txtA.text<>txtB.text and txtA.text="S" and txtB.text="N" then
Che mi obbliga a scrollare il codice in orizzontale già dopo un paio
indentazioni (nonostante abbia impostato già l'indentazione a 2 caratteri
invece di 4 e che VBScroll mi sia molto d'aiuto con CTRL+rotellina).
A breve dovrebbe arrivare un 17"lcd, quindi a 1280 questo esempio non regge
più :