Sono alle prese con un listino "scomodo" (formato .csv) ed ho in lavorazione una macro che mi permetta di ripulire il file in modo da ottenerne uno più adatto alle mie esigenze.
Un paio di istruzioni della macro si presentano così:
- Codice: Seleziona tutto
'----------Formattazione colonna prezzo----------
'
For Each xCell In Range("H1:H")
xCell.Value = CDec(xCell.Value)
Next xCell
'
'
'-----Sostituzione punto con virgola-------
'
For Each cell In Range("H1:H3000, I1:I3000, M1:M3000")
cell.Value = Replace(cell.Value, ".", ",")
Next
Application.ScreenUpdating = True
End Sub
e un po' prima nella macro ho inserito anche questa (che toglie l'apostrofo prima del valore):
- Codice: Seleziona tutto
Application.ScreenUpdating = False
For Each currentcell In Range("H1:H30000")
If currentcell.HasFormula = False Then
currentcell.Formula = currentcell.Value
End If
Next
Ora; perchè nella colonna dei prezzi ottengo il 95% dei valori nel formato che mi interessa (ex: 295,99) mentre nel restante 5% dei casi, soprattutto se riferito a prezzi piccoli, non mi sostituisce il punto con la virgola e ottengo il riconoscimento del numero come una data (Dic.99 quando dovrei avere 12,99)?
Qualche idea per correggere tutto ciò sempre tramite VBA?