- Katılım
- 2 Aralık 2013
- Mesajlar
- 401
- Excel Vers. ve Dili
- Microsoft Office Standard 2013-Türkçe
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub Plakayaboslukekle()
Dim plaka As String, toplam As String, oncekiharf As String, harf As String
Dim kontrol1 As Boolean, kontrol2 As Boolean
Dim Bak As Long
For Bak = 4 To Cells(Rows.Count, "E").End(xlUp).Row
plaka = Cells(Bak, "E")
toplam = Left(plaka, 1)
For i = 2 To Len(plaka)
oncekiharf = Mid(plaka, i - 1, 1)
harf = Mid(plaka, i, 1)
kontrol1 = IsNumeric(harf)
kontrol2 = IsNumeric(oncekiharf)
If harf = " " Then harf = ""
If kontrol1 <> kontrol2 Then
toplam = toplam & " "
End If
toplam = toplam & harf
Next i
Cells(Bak, "E") = toplam
Next Bak
End Sub
Merhaba.
Kodları aşağıdakiler ile değiştirin.
Kod:Sub Plakayaboslukekle() Dim plaka As String, toplam As String, oncekiharf As String, harf As String Dim kontrol1 As Boolean, kontrol2 As Boolean Dim Bak As Long For Bak = 4 To Cells(Rows.Count, "E").End(xlUp).Row plaka = Cells(Bak, "E") toplam = Left(plaka, 1) For i = 2 To Len(plaka) oncekiharf = Mid(plaka, i - 1, 1) harf = Mid(plaka, i, 1) kontrol1 = IsNumeric(harf) kontrol2 = IsNumeric(oncekiharf) If harf = " " Then harf = "" If kontrol1 <> kontrol2 Then toplam = toplam & " " End If toplam = toplam & harf Next i Cells(Bak, "E") = toplam Next Bak End Sub
Selamlar
Dosyayı inceleyiniz
Kodları Sitede bulmuştum.
Sayın @Necdet ,
Paylaşmış olduğunuz sayfayı inceledim, sanırım benim ihtiyacım olan uygulama değil. Teşekkür ederim. İyi çalışmalar dilerim.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [E:E]) Is Nothing Or Target.Row < 4 Then Exit Sub
If Not Target.Value = "" Then Target.Value = PLAKA_KONTROL(UCase(Target.Value))
End Sub
Function PLAKA_KONTROL(Plaka As String)
Application.Volatile True
Plaka = Replace(UCase(Plaka), " ", "")
With CreateObject("VBScript.Regexp")
.Pattern = "([0-9]{2})([A-Z]{1,4})([0-9]{2,4})"
.Global = True
PLAKA_KONTROL = .Replace(Plaka, "$1 $2 $3")
End With
End Function
Orada kullanılan fonksiyonu kendinize uyarlayabilirdiniz, ama hiç uğraşmadan hazıra konmak istiyorsunuz sanırım.
Aşağıdaki kodları ilgili sayfanın kod bölümüne kopyalayınız.
Kod:Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, [E:E]) Is Nothing Or Target.Row < 4 Then Exit Sub If Not Target.Value = "" Then Target.Value = PLAKA_KONTROL(UCase(Target.Value)) End Sub
Aşağıdaki kodları ise bir modüle kopyalayınız.
Kod:Function PLAKA_KONTROL(Plaka As String) Application.Volatile True Plaka = Replace(UCase(Plaka), " ", "") With CreateObject("VBScript.Regexp") .Pattern = "([0-9]{2})([A-Z]{1,4})([0-9]{2,4})" .Global = True PLAKA_KONTROL = .Replace(Plaka, "$1 $2 $3") End With End Function
Sayın @Muzaffer Ali,
Dosya-Seçenekler-Güven merkezi-güven merkezi ayarları-Belgeye özgü ayarlar kısmında "kaydederken dosya özelliklerinden kişisel bilgileri kaldır" seçeneğindeki tikini kaldırdım sorun düzeldi.
Formül gayet başarılı çalışıyor teşekkür ederim. Peki makro bilgi işlerken ( plaka yazılırken o an ) plakayı düzeltemez mi.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim plaka As String, toplam As String, oncekiharf As String, harf As String
Dim kontrol1 As Boolean, kontrol2 As Boolean
If Not Intersect(Target, Range("E:E")) Is Nothing Then
plaka = Target
toplam = Left(plaka, 1)
For i = 2 To Len(plaka)
oncekiharf = Mid(plaka, i - 1, 1)
harf = Mid(plaka, i, 1)
kontrol1 = IsNumeric(harf)
kontrol2 = IsNumeric(oncekiharf)
If harf = " " Then harf = ""
If kontrol1 <> kontrol2 Then
toplam = toplam & " "
End If
toplam = toplam & harf
Next i
Application.EnableEvents = False
Target = toplam
Application.EnableEvents = True
End If
End Sub
Aşağıdaki kodu sayfanın kod kısmına kopyalayın.
Kod:Private Sub Worksheet_Change(ByVal Target As Range) Dim plaka As String, toplam As String, oncekiharf As String, harf As String Dim kontrol1 As Boolean, kontrol2 As Boolean If Not Intersect(Target, Range("E:E")) Is Nothing Then plaka = Target toplam = Left(plaka, 1) For i = 2 To Len(plaka) oncekiharf = Mid(plaka, i - 1, 1) harf = Mid(plaka, i, 1) kontrol1 = IsNumeric(harf) kontrol2 = IsNumeric(oncekiharf) If harf = " " Then harf = "" If kontrol1 <> kontrol2 Then toplam = toplam & " " End If toplam = toplam & harf Next i Application.EnableEvents = False Target = toplam Application.EnableEvents = True End If End Sub