sayı ve harfleri ayırma

Katılım
27 Mart 2006
Mesajlar
44
yapmaya çalıştığım bir programla ilgili olarak, metin kutusuna BİTİŞİK olarak girmiş olduğum araç plakasınının harf ve rakamlarını ayıran bir koda ihtiyacım var. Örneğin, yeni kayıt girerken 34FB345 olarak girmiş olduğum veri metin kutusundan çıkışta veya birbaşka metin kutusuna 34 FB 345 olarak ayrılmasını istiyorum. yardımcı olurmusunuz.tşk
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Formun kod sayfasına aşağıdaki kodları yazarsan
Function Ayir(b)
a1 = Left(b, 2)
say = Len(b)

For i = 3 To say
If Not IsNumeric(Mid(b, i, 1)) Then
a2 = a2 & Mid(b, i, 1)
Else
a3 = a3 & Mid(b, i, 1)
End If
Next
Ayir = a1 & " " & a2 & " " & a3

End Function

Private Sub plaka_Exit(Cancel As Integer)
plaka.Value = Ayir(plaka)
End Sub
Not Buradaki plaka metin kutusunun adı kendinize göre düzenleyin.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,591
Excel Vers. ve Dili
Pro Plus 2021
Bu fonksiyonu da kullanabilirsin.
Kod:
Function plakaAyir(Plaka As String)
    Plaka = Replace(UCase(Plaka), " ", "")
    With CreateObject("vbscript.regexp")
        .Pattern = "([0-9]{2})([A-Z]{1,3})([0-9]{2,4})"
        .Global = True
        plakaAyir = .Replace(Plaka, "$1 $2 $3")
    End With
End Function
 
Katılım
14 Kasım 2007
Mesajlar
2
Excel Vers. ve Dili
Microsoft Office Excel 2003
Arkadaşlar Merhaba,
Benim de buna benzer problemim var, 1111222233334444 sayılarını 1111 2222 3333 4444 şeklinde dönüştürmem lazım. Şimdiden teşekkürler
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın advocatus,

Sorunuz pek açık değil 4 er 4 er mi ayırmak istiyorsunuz?
 
Katılım
14 Kasım 2007
Mesajlar
2
Excel Vers. ve Dili
Microsoft Office Excel 2003
Sayın advocatus,

Sorunuz pek açık değil 4 er 4 er mi ayırmak istiyorsunuz?
Evet aynı hücre içindeki 16 hanelik rakamları yine aynı hücre içinde 4'er 4'er ayırmak istiyorum. Yukarıdaki formüller ile biraz oynadım fakat beceremedim.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,371
Excel Vers. ve Dili
Office 2013
Merhaba;
Eğer sorguda kullanıyorsanız yeni bir alana alttaki kodu yazın, vba da olsun derseniz ";" leri "," yapın ve mesela, güncelleştirme sonrasında kullanın;

Kod:
 Mid([alan];1;4) & " " & Mid([alan];5;4) & " " & Mid([alan];9;4) & " " & Mid([alan];13;4)
 
Katılım
9 Aralık 2009
Mesajlar
4
Excel Vers. ve Dili
office 2007
Merhabalar,

Hücre içerisinde bitişik olarak yazılan Ad Soyadı sütunlara ayırmak için bir kod var mıdır?

CemTanık Cem Tanık
SamiTamer Sami Tamer

Diye ayırmak istiyorum.

Şimdiden teşekkürler.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,371
Excel Vers. ve Dili
Office 2013
Merhaba;

İstediğnizi yapan bir fonksiyon yazdım..

Kod:
Public Function beab(Kelime As String) As String


Dim i As Integer
Dim harf As String

For i = 2 To Len(Kelime)
 harf = Mid(Kelime, i, 1)
 If Asc(harf) >= Asc("A") And _
    Asc(harf) <= Asc("Z") Then
Exit For
  End If
Next


Debug.Print Left(Kelime, i - 1) ' İlk Kelime

Debug.Print Mid(Kelime, i) ' ikinci kelime

End Function
 
Katılım
12 Kasım 2008
Mesajlar
2
Excel Vers. ve Dili
Office excel 2003
Arkadaşlar kod yazma olayının ne olduğun tam anlayamadım zira iyi bir excel kullanıcısı değilim ama bir hücerede AB12345 verisini ayrı hücrelerde, yani harfler ayrı sayılar ayrı hücrede olacak şekilde nasıl düzenleyebilirim yardım edermisiniz lütfen ? Kullandığım office sürümü 2007 tr
 
Katılım
8 Haziran 2011
Mesajlar
2
Excel Vers. ve Dili
microsoft office 2000 small business
banada yardımcı olabilirmisiniz

110601
110602
110603
110604 gibi alt alta sıralanmış rakamları

1106-01
1106-02
1106-03
1106-04 şeklinde bütün dosyayı bu şekilde ayırmam gerek yardımcı olursanız sevinirim şimdiden teşekkürler.
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
banada yardımcı olabilirmisiniz

110601
110602
110603
110604 gibi alt alta sıralanmış rakamları

1106-01
1106-02
1106-03
1106-04 şeklinde bütün dosyayı bu şekilde ayırmam gerek yardımcı olursanız sevinirim şimdiden teşekkürler.
Merhaba..

Bu şekilde bir sorgu çalıştırınız..:


update tablo_adi set alan_adi = left([alan_adi],4) & "-" & right([alan_adi],2)

Tabii alanınız metin türünde olmalı..
 
Katılım
6 Şubat 2005
Mesajlar
1,467
Denemek için dosyanızı yedekleyip;
Bir sorgu oluşturun, sorgunun SQL alanına aşağıdaki kodları yazın.
TabloAdı ve AlanAdı yazan kısımlarını kendinize göre değiştirin.

UPDATE TabloAdı SET TabloAdı.AlanAdı = Left([AlanAdı ],4) & "-" & Right([AlanAdı],2);
 
Son düzenleme:
Katılım
8 Haziran 2011
Mesajlar
2
Excel Vers. ve Dili
microsoft office 2000 small business
çok özür dilerim ama sorguyu nasıl oluşturcam onuda bilmiyorum:(
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
çok özür dilerim ama sorguyu nasıl oluşturcam onuda bilmiyorum:(
Yeni bir sorgu oluşturun ve SQL görünümünü seçin. Yukarıda verilen sql deyimini tablo ve alan isimlerini kendi uygulamanızdakilerle değiştirerek beyaz sql görünümündeki sorgu sayfasına yazın ve sorguyu kaydedin.. Tekrar açtığınızda kayıtlar istediğiniz şekilde düzenlenir..
 
Katılım
20 Şubat 2011
Mesajlar
35
Excel Vers. ve Dili
office 7 ingilizce
benzer konuda yardım

merhaba beab05. aşağıda yazdığın kodu çalıştıramadım ben. bende de benzer şekilde bitişik olarak yazılmış tür bilgileri mevcut. ancak 2den fazla türden oluşanlar da var. örneğin GnKvGSr; burada 4 tür var(Gn, Kv, G, Sr) ayrım yaptırcağımız yer büyük harfle başladığı yer. bunun için nasıl bir makro yazılabilir.
Merhaba;

İstediğnizi yapan bir fonksiyon yazdım..

Kod:
Public Function beab(Kelime As String) As String


Dim i As Integer
Dim harf As String

For i = 2 To Len(Kelime)
 harf = Mid(Kelime, i, 1)
 If Asc(harf) >= Asc("A") And _
    Asc(harf) <= Asc("Z") Then
Exit For
  End If
Next


Debug.Print Left(Kelime, i - 1) ' İlk Kelime

Debug.Print Mid(Kelime, i) ' ikinci kelime

End Function
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Bu fonksiyonu da kullanabilirsin.
Kod:
Function plakaAyir(Plaka As String)
    Plaka = Replace(UCase(Plaka), " ", "")
    With CreateObject("vbscript.regexp")
        .Pattern = "([0-9]{2})([A-Z]{1,3})([0-9]{2,4})"
        .Global = True
        plakaAyir = .Replace(Plaka, "$1 $2 $3")
    End With
End Function
Sayın veyselemre,
Ben de böyle birşey arıyordum. Çok teşekkür ederim.
 
Üst