Iba krátky tip. Pri importe dát z externých zdrojov (napr. txt, csv ...) sa dá hneď pri importe zadefinovať,
ako má Excel narábať s položkami, ktoré sú čísla.
Krátky opis, ako to funguje pre Excel 2003 (analogicky i pre 2007 a 2010):
1) klasický postup pre import:
Údaje / Import externých údajov...
2) "vyklikať" podrobnosti importu, napr.:
- oddeľovač bodkočiarka,
- označenie stĺpcov, ktoré sú textové, ktoré dátumové ...
- TIP 1: označiť viac stĺpcov rovnakého typu (napr.text) -
klik na Prvý – stlačiť a podržať SHIFT – klik na Posledný
- TIP 2: !!!
čísla nechať typu "General" a ak sú v zdrojovom súbore des. bodky ale v Exceli fungujú des. čiarky,
nastaviť
Decimal Separator – bodku (tlačidlo
Advanced) - (
to je riešenie pracného prehadzovania na čísla po importe)
Ak sa to spojí i so zaznamenaním makra, dá sa to pekne zautomatizovať.
Podrobný postup tu:
Excel - automatizácia importu csv súborov Excel, makro - import údajov
Palo
Ešte jedna rada. Ak sú však k dispozícii už len naimportované údaje, potom klasicky: označiť oblasť s údajmi, Hľadať + Nahradiť (
CTRL+H)
POZOR: Niektoré systémy (napr. Navision) generujú čísla, kde znak medzi stovkami a tisíckami
vyzerá ako medzera, ale je to iný znak (cez klávesnicu
ALT+0160).
To je presne prípad pripojeného vzorového XLS.
Vzorové makierko pre konverziu na číslo i s pridaním formátu čísla (v tomto prípade €)
Code:
Sub EuroFormat()
Dim x As String, xTxt As String, xRng As Range, c As Range
Set xRng = Selection
For Each c In xRng
If c.HasFormula = False Then
x = Trim(CStr(c.Value))
If InStr(1, x, Chr(160)) > 0 Then x = Replace(x, Chr(160), "", 1, -1, 1) 'ina medzera (ALT+0160)
If InStr(1, x, " ") > 0 Then x = Replace(x, " ", "", 1, -1, 1)
'If InStr(1, x, ",") > 0 Then x = Replace(x, ",", "", 1, -1, 1) 'ak je oddelovač tisícov čiarka
If InStr(1, x, ".") > 0 Then x = Replace(x, ".", ",", 1, -1, 1)
If InStr(1, x, "€") > 0 Then x = Replace(x, "€", "", 1, -1, 1)
If IsNumeric(x) Then c.Value = CDbl(x)
End If
Next c
xRng.NumberFormat = "#,##0.00 [$€-1];[Red]-#,##0.00 [$€-1]"
Set xRng = Nothing
End Sub