IvetaH Dobrý večer,
už zas mám problém. K hore popísanému problému: sťahujem zostavu z účtovného programu a tam mám tisícky oddelené bodkou. Zadám nájdi a zameň, ale keď to zahrniem do makra a potom spustím makro, tak mi vymaže bunky, kde bola bodka. Prosím, ako to zadať, aby mi to nemazalo celý obsah bunky ale iba tú bodku.
Ďakujem
Najskôr, možno pomôže jedna info, z riešenia pre jedného človeka s podobným problémom
(priebežný import dát do XLS z účt.systémov, kde des.bodky bolo treba nahradiť des.čiarkou)
Dá sa to nadefinovať
hneď pri importe údajov: nastaviť
Decimal Separator na bodku.
Kompletný postup (i s postupom ako si zaznamenať makro) viď tu:
http://pc-prog.eu/phpBB3/viewtopic.php?f=5&t=127
Osobne používam podobné makro (i s konverziou na € formát čísla), kde najskôr nahradím medzery, potom čiarky až nakoniec bodky.
!!! Ešte jedna informácia. 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)
Sub EuroFormat()
' Euro Format - 15.1.2009 by pc-prog.sk
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
End If
Next c
xRng.NumberFormat = "#,##0.00 [$€-1];[Red]-#,##0.00 [$€-1]"
Set xRng = Nothing
End Sub
Makro sa spustí nad množinou označených buniek
Palo