novakovk
24.01.12,12:47
Ahojte, chcela by som vas poprosit o radu, ako napisat makro na odstranenie diakritiky v excely?
Dakujem :)
PaloPa
24.01.12,13:51
Jedna z možností je napr. takáto VBA rutinka - "Diakritika_Remove".
Viď príklad (3 volania - malé, veľké, nezmenené).

Palo



Sub aDiakritika_RemoveL()
Call aDiakritika_Remove_x("L")
End Sub
Sub aDiakritika_RemoveU()
Call aDiakritika_Remove_x("U")
End Sub

Sub aDiakritika_Remove()
Call aDiakritika_Remove_x
End Sub

Sub aDiakritika_Remove_x(Optional xCase As String)

' ReplaZnakyPrePolia Macro
' Macro recorded 18.2.2006 by Palo Papulák
'
' Keyboard Shortcut: Ctrl+q
'
Dim xCo(), xZa(), xRng As Range, c As Range
Dim i As Long

xCo = Array("ý", "ú", "í", "é", "ě", "á", "ä", "ó", "ô", "č", "ď", "ľ", "ĺ", "ň", "ř", "ŕ", "š", "ť", "ž", " ", ".", "-", ")", "(", "]", "[", ",", "/", "\")
xZa = Array("y", "u", "i", "e", "e", "a", "a", "o", "o", "c", "d", "l", "l", "n", "r", "r", "s", "t", "z", "_", "_", "_", "", "", "", "", "", "_", "_")

Set xRng = Selection

For i = LBound(xCo) To UBound(xCo)
xRng.Replace What:=xCo(i), Replacement:=xZa(i), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False

xRng.Replace What:=UCase(xCo(i)), Replacement:=UCase(xZa(i)), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Next i

If xCase <> "" Then
For Each c In xRng
c.Value = IIf(xCase = "U", UCase(c.Text), LCase(c.Text))
Next c
End If

Set xRng = Nothing
End Sub

Inak, už bolo na Porade riešené tu: http://www.porada.sk/t174258-text-v-excel-bez-diakritiky.html
novakovk
25.01.12,07:20
Super, velmi pekne dakujem :)