Centar za edukaciju-BiH



Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 3,971


Subject: VBA zamjena slova
DownloadIzvorni kod (Text):
  1. Dim i As Integer
  2.     Dim zadnjiRed As Single
  3.    
  4.    
  5.     zadnjiRed = 20
  6.    
  7.     AccChars = Array("Z", "d", "Ć", "9", "ć", "đ", "9")
  8.     RegChars = Array(" ", "", "", "", "", "", "")
  9.     Dim rng As Range
  10.    
  11.     For Each cell In Range("H1:H" & zadnjiRed)
  12.         If cell <> "" Then
  13.             For i = 0 To UBound(AccChars)
  14.                 cell.Value = Replace(cell.Value, AccChars(i), RegChars(i))
  15.                
  16.             Next
  17.         End If
  18.     Next cell

meni ovo ne radi.
Dali se netko bavio problemom kada ucitamo file u excel pa moramo zamijeniti neke znakove u nasa slova?
ivot je moja domovina.
↑  ↓

Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,754


Subject: Re: VBA zamjena slova
eve ti edna moja funkcuja mozda ke ti pomognit

DownloadIzvorni kod (Visual Basic):
  1. Public Function fnCZtoLAT(Naziv As String) As String
  2.     fnCZtoLAT = Naziv
  3.     fnCZtoLAT = Replace(fnCZtoLAT, "", "E")
  4.     fnCZtoLAT = Replace(fnCZtoLAT, "", "S")
  5.     fnCZtoLAT = Replace(fnCZtoLAT, "", "C")
  6.     fnCZtoLAT = Replace(fnCZtoLAT, "", "R")
  7.     fnCZtoLAT = Replace(fnCZtoLAT, "", "Z")
  8.     fnCZtoLAT = Replace(fnCZtoLAT, "", "Y")
  9.     fnCZtoLAT = Replace(fnCZtoLAT, "", "A")
  10.     fnCZtoLAT = Replace(fnCZtoLAT, "", "I")
  11.     fnCZtoLAT = Replace(fnCZtoLAT, "", "E")
  12.     fnCZtoLAT = Replace(fnCZtoLAT, "", "U")
  13.     fnCZtoLAT = Replace(fnCZtoLAT, "", "U")
  14.     fnCZtoLAT = Replace(fnCZtoLAT, "", "e")
  15.     fnCZtoLAT = Replace(fnCZtoLAT, "", "s")
  16.     fnCZtoLAT = Replace(fnCZtoLAT, "", "c")
  17.     fnCZtoLAT = Replace(fnCZtoLAT, "", "r")
  18.     fnCZtoLAT = Replace(fnCZtoLAT, "", "z")
  19.     fnCZtoLAT = Replace(fnCZtoLAT, "", "y")
  20.     fnCZtoLAT = Replace(fnCZtoLAT, "", "a")
  21.     fnCZtoLAT = Replace(fnCZtoLAT, "", "i")
  22.     fnCZtoLAT = Replace(fnCZtoLAT, "", "e")
  23.     fnCZtoLAT = Replace(fnCZtoLAT, "", "u")
  24.     fnCZtoLAT = Replace(fnCZtoLAT, "", "u")
  25.     fnCZtoLAT = Replace(fnCZtoLAT, "", "c")
  26.     fnCZtoLAT = Replace(fnCZtoLAT, "", "u")
  27.  
  28. End Function
↑  ↓

Avko Offline
Administrator
Registrovan/a od: 28.05.2014-09:21
Komentari: 3,971


Subject: Re: VBA zamjena slova
Hvala Gjoreski, probat cu prilagoditi za svoje potrebe.
Problem je kod mene sto za 1 slovo daje 2 znaka :
primjer:

ÄŚ = Č

evo otkrio gdje je greska, znaci trebalo je provjeriti kolone 3,5,6.
Ja sam provjeravao kolone 5 i 6, a 3 sam zaboravio tako da mi se u 3 koloni javljali neprevedeni znakovi.
Cudno mi je bilo kada sam uneo naredbu

if Instr(naziv,"ÄŚ")>0 then stop

kod se nije zaustavio na tom mjestu tako da sam isao istrazivati i otkrio aljkavost u kodu.

upotrijebio sam Gjoreskovu funkciju koja odlicno obavlja posao.

DownloadIzvorni kod (Text):
  1. Public Function fnCZtoLAT(Naziv As String) As String
  2.     fnCZtoLAT = Naziv
  3.    
  4.     fnCZtoLAT = Replace(fnCZtoLAT, "Z", "C") '
  5.     fnCZtoLAT = Replace(fnCZtoLAT, "9", "S") '
  6.     fnCZtoLAT = Replace(fnCZtoLAT, "Ć", "C") '
  7.     fnCZtoLAT = Replace(fnCZtoLAT, "9", "s") '
  8.     fnCZtoLAT = Replace(fnCZtoLAT, "ć", "c") '
  9.     fnCZtoLAT = Replace(fnCZtoLAT, "d", "c") '
  10.     fnCZtoLAT = Replace(fnCZtoLAT, "đ", "d") '
  11.     fnCZtoLAT = Replace(fnCZtoLAT, "9>", "z") '
  12.     fnCZtoLAT = Replace(fnCZtoLAT, "9", "Z") '
  13. End Function

pozivam ju na sljedeci nacin

nekiString=fnCZtoLat(nekiString)

kada nadete vremena mozete li mi reci kako upotrijebiti ovo:

FranceskoFoti je opisao kako prevesti znakove i rijesiti BOOM, usporeduje to sa Notepadom++
pa ako znate samo recite kako to upotrijebiti u VBA excelu

<franceskoFoti - Solving the Unicode, UTF8, UTF16 and Text Files conundrum in VBA>
ivot je moja domovina.
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 18.01.2021-12:37 od strane Avko. ↑  ↓

zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 10,324


Subject: Re: VBA zamjena slova
eevo moja funkcija.
u str1 upisite znake koje trazite u stringu a u str2 na istoj poziciji znak u koji se mijenja.
DownloadIzvorni kod (Visual Basic):
  1. Public Function fnCZtoLAT(Naziv As String) As String
  2. '******************************************************
  3. 'Autor:zxz
  4. 'datum: 19.01.2021
  5. 'mijenja karaktere iz str1 u adekvatne po poziciji u str2
  6. 'u string kao ulazni parametar Naziv
  7. '********************************************************
  8. Const str1 = "IEOUieoua "
  9. Const str2 = "ESCRZYAIEUUescrzyaieuucu"
  10. Dim duz As Integer, i As Integer, poz As Integer, n As Integer
  11. Dim car1 As String * 1, car2 As String * 1, str As String
  12.  
  13. duz = Len(str1)
  14. str = Naziv
  15. n = 1
  16.   For i = 1 To duz
  17.   car1 = Mid(str1, i, 1)
  18.   car2 = Mid(str2, i, 1)
  19.   poz = InStr(n, str, car1)
  20.     If poz > 0 Then
  21.     str = Replace(str, car1, car2)
  22.     End If
  23.   Next i
  24.  fnCZtoLAT = str
  25. End Function

Pozdrav
↑  ↓

 Podijeli  Dodaj odgovor Stranice (1): 1


All times are GMT +01:00. Current time: 27.02.2021-14:01.