Zavrieť

Porady

Makro-odstranenie diakritiky v excely

Ahojte, chcela by som vas poprosit o radu, ako napisat makro na odstranenie diakritiky v excely?
Dakujem
Pravidlá a tipy
  • Každý móže napísať len 1 odpoveď. Neskor mozete svoju odpoveď vylepšiť.
  • Odpoveď má priniesť riešenie na otázku, vyvarujte sa hodnotenia otázky.
  • Odpoveď má byť viac o faktoch ako o názoroch.
Dalšie pravidla a tipy
    Ak potrebujete v otázke niečo upresniť, najskôr sa spýtajte na podrobnosti.
    Koncept slúži na uloženie rozpracovanej odpovede, koncept sa zobrazuje len Vám, až kým ho nezverejníte.
    Ak máte podobnú otázku, založte Novú otázku alebo Súvisiacu otázku.
    ❤ Buďte priateľskí ❤
    Sme súčasťou jednej komunity, ktorá si chce vzájomne pomáhať, rozdieľnosť je vítaná ak neubližuje!
    Usporiadať podľa času

    PaloPa je offline (nepripojený) PaloPa

    PaloPa
    Jedna z možností je napr. takáto VBA rutinka - "Diakritika_Remove".
    Viď príklad (3 volania - malé, veľké, nezmenené).

    Palo


    Code:
    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-...iakritiky.html
    Naposledy upravil PaloPa : 24.01.12 at 17:03

    Makro-odstranenie diakritiky v excely

    Porady, ktoré by vás mohli zaujímať

    Prihláste sa a sledujte len tie Porady, ktoré Vás zaujímajú.