Ho fatto tutto quello che mi hai scritto, ma il problema persiste!
Tutto? Compreso la reimpostazione del separatore orario?
E' evidente che tutta la colonna R e' importata come "Orari", e questo succede perche' (l' ho gia' detto e lo ripeto) le tue impostazioni excel prevedono il "punto" come separatore orario, il che comporta che excel interpreta e trasforma quei dati in Orari.
Per prova ho impostato anche io separatore orario uguale a "punto" e ho importato i seguenti dati:
Uploaded with
ImageShack.us(quello che succede a te: tutto cio' che e' inferiore a 24 viene importato come orario, le celle dove i minuti sono inferiori a 60 mantengono la formattaziuone orario cosi' vedi 5.15 ma il valore in cella e' 0,21875, quelle dove i minuti sono superiori a 60 perdono la formattazione e vengono "visualizzati" come numeri corrispondenti all' orario).
Sono tornato alle mie impostazioni originali, che prevedono il separatore orario ugale a "due punti" e ho importato i seguenti altri dati:
(quello che forse vorresti importare)
Queste impostazioni sono ereditate da Windows; io ho Win 7 e le modifico in Pannello di controllo, Paese e lingua.
Una possibile alternativa potrebbe essere quella di impostare il separatore decimale uguale al "punto"; in questo modo il riconoscimento orario viene ignorato perche' quelle stringhe sarebbero importati come veri numeri. Il problema e' che l' impostazione diventa attiva per tutte le cartelle di lavoro aperte, per cui se si era abituati a scrivere 3,14 adesso bisogna scrivere 3.14.
Un' ulteriore alternativa e' quella di variare dinamicamente il separatore decimale; ad esempio:
-tasto dx sul tab che visualizza il nome del foglio su cui vui importare i dati; scegli visualizza codice
-incolla questo codice nel frame vuoto di dx:
- Codice: Seleziona tutto
Private Sub Worksheet_Activate()
Application.DecimalSeparator = "."
Application.UseSystemSeparators = False
End Sub
Private Sub Worksheet_Deactivate()
Application.UseSystemSeparators = True
End Sub
In questo modo quando attivi Foglio1 il sepratore diventa il "punto" e i tuoi dati saranno importati o aggiornati correttamente, ma quando vai su un altro foglio i separatori vengono reimpostati a quelli di sistema.
Questa soluzione ha numerose varianti; ad esempio:
-invece che su Worksheet_Activate /Deactivate metti il codice su Workbook_Open e Workbook_BeforeClose (nel modulo Vba "Questa_cartella_di_lavoro)
-oppure su Workbook_Activate e Workbook_Deactivate
-oppure esegui l' aggiornamento dell' importazione con questa macro, che puoi associare a un pulsante su Foglio1
- Codice: Seleziona tutto
Sub puntovirg()
'Cambia i separatori
Application.DecimalSeparator = "."
Application.ThousandsSeparator = ""
Application.UseSystemSeparators = False
'Refresh tabella
Sheets("Foglio1").QueryTables(1).Refresh BackgroundQuery:=False
'Ripristina separatori
'Application.DecimalSeparator = ","
'Application.ThousandsSeparator = "."
Application.UseSystemSeparators = True
End Sub
Questa macro presuppone che hai impostato manualmente una sola query web su Foglio1; al suo lancio modifica le impostazioni salvo poi ripristinarle dopo il refresh dati; questa mi sembra la meno rischiosa, ma non garantisco che le impostazioni finli siano quelle che effettivamente usi nel tuo pc.
Ciao