Skip to main content

AccessTr.neT


Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek

Oğuz Türkyılmaz
Oğuz Türkyılmaz
30
2323

Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek

#25
replace ile belki çok daha kolay olurdu))
önce bir modüle aşağıdaki fonksiyon eklenip
Function SadeSayi(ByVal Veri As String) As String
Dim matches As Variant, match As Variant
Dim Reg_Exp As Object

Set Reg_Exp = CreateObject("vbscript.regexp")

Reg_Exp.Pattern = "\d"
Reg_Exp.Global = True
Set matches = Reg_Exp.Execute(Veri)
If matches.Count > 0 Then
For Each match In matches
Degr = Degr & match.Value
Next match
End If
SadeSayi = "+90" & Degr
End Function
sonrada güncelleme ve kaydetmeye aşağıdaki kodu ekleyip dener misiniz?
        .Cells(Guncelle, 30) = SadeSayi(TextBox_Gsm.Value)
Cevapla
#26
yada modüle gerek yok klasik for döngüsüyle
güncelleme ve kaydete eklenecek kod
        Degr = TextBox_Gsm.Value
        For x = 1 To Len(Degr & "")
            If IsNumeric(Mid(Degr, x, 1)) Then DegrSon = DegrSon & Mid(Degr, x, 1)
        Next x
        .Cells(Guncelle, 30) = "+90" & DegrSon
Cevapla
#27
Replace metodu ile çözüldü @feraz hocam Teşekkür ederim. Lakin sadece "@" işaretinin işlevini çözemedim.

Kod:
TextBox_Gsm.Value = Replace(Replace(Replace(Replace(TextBox_Gsm.Value, "(", ""), ")", ""), " ", ""), "-", "")
        .Cells(SonSatir, 30).NumberFormat = "@"
        .Cells(SonSatir, 30) = "+90" & TextBox_Gsm.Value

Kod:
TextBox_Gsm.Value = Replace(Replace(Replace(Replace(TextBox_Gsm.Value, "(", ""), ")", ""), " ", ""), "-", "")
        .Cells(Guncelle, 30).NumberFormat = "@"
        .Cells(Guncelle, 30) = "+90" & TextBox_Gsm.Value

Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#28
(13/05/2021, 03:59)berduş yazdı: yada modüle gerek yok klasik for döngüsüyle
güncelleme ve kaydete eklenecek kod
        Degr = TextBox_Gsm.Value
        For x = 1 To Len(Degr & "")
            If IsNumeric(Mid(Degr, x, 1)) Then DegrSon = DegrSon & Mid(Degr, x, 1)
        Next x
        .Cells(Guncelle, 30) = "+90" & DegrSon

@berduş ve @feraz Hocam döngüde sorunsuz çalıştı ve işlem gerçekleşiyor çok teşekkür ederim. Bu proje bazında düşünmesek büyük bir projenin küçük bir bölümü olduğunu varsayarsak programcıların gözünde genelde hangi çözümün uygulanması daha efektif olur. Her iki kodu da anladım sadece bilmediğim detaylar var onları öğrendiğimde her iki çözümü de  kavramış olurum.
Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 13/05/2021, 10:56, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#29
tek kayıtlık bir değişiklikte çok farkılık olacağını sanmam ama fonksiyonlar farklı yerlerden de çağrılabileceği için daha avantajlı olabilir
Cevapla
#30
Berduş hocamızın dediği gibi hunctionlada her yerden çağılabilir.
Array içine istediğiniz şeyleri ekleyebilirsiniz hangileri değişecekse.
        
        Dim arr, deg
        arr = Array(")", "(", "-", " ")
        For Each deg In arr
            TextBox_Gsm.Value = Replace(TextBox_Gsm.Value, deg, "")
        Next
      .Cells(SonSatir, 30).NumberFormat = "@"
      .Cells(SonSatir, 30) = "+90" & TextBox_Gsm.Value

[Resim: do.php?img=11033]
https://resim.accesstr.net/do.php?img=11033
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task