- Katılım
- 7 Mayıs 2009
- Mesajlar
- 65
- Excel Vers. ve Dili
- Excel 2007
Merhabalar,
Dün forum uzmanlarından Ömer bey'in yazmış olduğu VBA kodu,
evdeki PC'mde kusursuz olarak çalışmaktayken ofisteki PC'de
istediğim sonucu vermiyor.
Kodun amacı A hücresinde yer alan text'i kelime kelime sütunlara parçalamak,
fakat ofisteki PC'de bunu yaparken türkçe bir karaktere rastladığında onu tamamen atıp kelimenin o harften sonraki kısmını da kelime gibi parçalayıp başka hücreye atıyor.
Şöyle bir örnek vereyim:
"havalimanına" olarak parçalanması gereken kelime,
"havaliman" ve "na" olarak iki ayrı hücreye dağıtılıyor.
veya "bildirmiş" olarak parçalnaması gereken kelime "bildirmi" olarak
parçalanıyor...
Kodda kesinlikle hata yok, çünkü evdeki PC'de ve Ömer bey'in kendi PC'sinde
hatasız çıktılar aldık, muhtemelen bnm ofisteki PC'nin dil ayarları ile ilgili bir sıkıntı var, lütfen bana bu konuda yardım edin, bu mevzu çok canımı sıkmış durumda dünden beri denemediğim şey kalmadı.
not: bu arada evde de şirkette de Excel 2007 İngilizce versiyonunu kullanıyorum, fakat evdeki PC windows türkçe, şirketteki windows ingilizce sürümü.
Kodu görmek isteyenler için aşağıda kodu da paylaşıyorum.
Saygılarımla,
---------
Sub Duzenle()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set deg = CreateObject("VBScript.Regexp")
deg.Pattern = "[^a-z0-9\ç\ğ\i\ı\ö\ş\ü\ ]"
deg.Global = True
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Cells(i, "A") = KucukHarf(Cells(i, "A"))
Cells(i, "A") = Trim(deg.Replace(Cells(i, "A"), " "))
Next i
Set deg = Nothing
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:= _
xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:= _
True, Space:=True
Cells.HorizontalAlignment = xlLeft
Cells.EntireColumn.AutoFit
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
'........... KüçükHarfe Çeviren Ktf ....................
Function KucukHarf(Veri As String)
KucukHarf = LCase(Replace(Replace(Veri, "İ", "i"), "I", "ı"))
End Function
Dün forum uzmanlarından Ömer bey'in yazmış olduğu VBA kodu,
evdeki PC'mde kusursuz olarak çalışmaktayken ofisteki PC'de
istediğim sonucu vermiyor.
Kodun amacı A hücresinde yer alan text'i kelime kelime sütunlara parçalamak,
fakat ofisteki PC'de bunu yaparken türkçe bir karaktere rastladığında onu tamamen atıp kelimenin o harften sonraki kısmını da kelime gibi parçalayıp başka hücreye atıyor.
Şöyle bir örnek vereyim:
"havalimanına" olarak parçalanması gereken kelime,
"havaliman" ve "na" olarak iki ayrı hücreye dağıtılıyor.
veya "bildirmiş" olarak parçalnaması gereken kelime "bildirmi" olarak
parçalanıyor...
Kodda kesinlikle hata yok, çünkü evdeki PC'de ve Ömer bey'in kendi PC'sinde
hatasız çıktılar aldık, muhtemelen bnm ofisteki PC'nin dil ayarları ile ilgili bir sıkıntı var, lütfen bana bu konuda yardım edin, bu mevzu çok canımı sıkmış durumda dünden beri denemediğim şey kalmadı.
not: bu arada evde de şirkette de Excel 2007 İngilizce versiyonunu kullanıyorum, fakat evdeki PC windows türkçe, şirketteki windows ingilizce sürümü.
Kodu görmek isteyenler için aşağıda kodu da paylaşıyorum.
Saygılarımla,
---------
Sub Duzenle()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set deg = CreateObject("VBScript.Regexp")
deg.Pattern = "[^a-z0-9\ç\ğ\i\ı\ö\ş\ü\ ]"
deg.Global = True
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Cells(i, "A") = KucukHarf(Cells(i, "A"))
Cells(i, "A") = Trim(deg.Replace(Cells(i, "A"), " "))
Next i
Set deg = Nothing
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:= _
xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:= _
True, Space:=True
Cells.HorizontalAlignment = xlLeft
Cells.EntireColumn.AutoFit
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
'........... KüçükHarfe Çeviren Ktf ....................
Function KucukHarf(Veri As String)
KucukHarf = LCase(Replace(Replace(Veri, "İ", "i"), "I", "ı"))
End Function