AccessTr.neT
Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html)
+--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek (/konu-excelde-hucreye-girilen-gsm-no-yu-diger-hucrede-otomatik-bicimlendirmek.html)

Sayfalar: 1 2 3 4 5 6


RE: Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek - berduş - 13/05/2021

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)



RE: Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek - berduş - 13/05/2021

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



RE: Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek - Oğuz Türkyılmaz - 13/05/2021

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




RE: Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek - Oğuz Türkyılmaz - 13/05/2021

(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.


RE: Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek - berduş - 13/05/2021

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


RE: Excelde Hücreye Girilen Gsm No Yu Diğer Hücrede Otomatik Biçimlendirmek - feraz - 13/05/2021

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