• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Değişkenin İçerdiği Karakterleri Kontrol Etmek

Katılım
8 Temmuz 2014
Mesajlar
120
Excel Vers. ve Dili
Office 2016 Türkçe
Bir değişkenin sadece rakam, harf vs. belirli ihtiyaçlara göre belirli karakterleri içerip içermediğini nasıl kontrol edebilirim?

Özellikle ihtiyacım olan şey; değişkenin sadece rakam, nokta"." ve virgül"," içerip içermediğini kontrol etmek.

Teşekkürler!
 
Teşekkürler bu şekilde işimi görür sanırım. :)

0-9 aralığındaki rakamları tek tek belirtmeli miyim yoksa daha basit bir yolu var mıdır?
 
Teşekkürler bu şekilde işimi görür sanırım. :)

0-9 aralığındaki rakamları tek tek belirtmeli miyim yoksa daha basit bir yolu var mıdır?

Aslında tam olarak istediğim gibi çalışmıyor. Sadece; ".,1234567890" değerlerini içeriyorsa şeklinde kontrol etmek istiyordum. Bu şekilde tek "." olsa gerisi harf olsa bile if kontrolünü geçiyor. :(
 
Merhaba.

Kesin ve net çözüm için; sorunuzu,
farklı seçenekleri içeren ve gerçek belgenizle aynı yapıda örnek belge ile desteklemelisiniz bence.
.
 
Öncelikle ilginiz için teşekkür ederim.
Aslında herhangi bir çalışma oluşturmadım henüz. Maksadım seçili hücreleri toplayan bir makro oluşturmaktı.
İhtiyacım olan şey tam olarak, değişkene atanan bir hücre içeriğinde toplama işleminde aksaklık çıkartacak karakterler olup olmadığını tespit edebilmek.
Mutlaka farklı bir yoldan da yapabilirsiniz. Ama, değişkenlerin içerdiği karakterleri karşılaştırmakla ilgili VBA nın sunduğu pratik imkanlar varsa da bunları bilmek güzel olurdu.

Kod:
istenmeyen_değişken = "?-abc125.18,55abc"

kabul_edilen_değişken = "1234567890.18,55"

0-9 aralığı tüm karakterleri ve nokta ile virgülü, değişkenin içeriğinden silip sonunda da değişkenin hala değer içerip içermediğini kontrol etmek gibi dolambaçlı bir yola girmeden yapabilir miyim? :) (aslında bu şekilde de yapılıp yapılamayacağına emin değilim) :)
 
ISNUMERIC(Veri) komutu işinizi görebilir.
 
ISNUMERIC(Veri) komutu işinizi görebilir.

Kod:
kabul_edilen_değişken = "1234567890.18,55"
MsgBox IsNumeric(kabul_edilen_değişken)
Sonuç: True :)

Kod:
kabul_edilmeyen_değişken = "1234567890.18,55 abc"
MsgBox IsNumeric(kabul_edilen_değişken)
Sonuç: False :)

Teşekkürler Korhan Bey. :)
 
Başlıktaki konuya sadık kalarak sizi tekrar rahatsız edeceğim. :)
"IsNumeric" tanımlamasına giren karakterleri değişken üzerinden silebilir miyiz?
(Olmazsa olmaz bir şey değil sadece bilmek istedim, ileride gerekirse diye.)
 
Başlıktaki konuya sadık kalarak sizi tekrar rahatsız edeceğim. :)
"IsNumeric" tanımlamasına giren karakterleri değişken üzerinden silebilir miyiz?
(Olmazsa olmaz bir şey değil sadece bilmek istedim, ileride gerekirse diye.)
. . .

Kod:
Sub kod()
    
    d = "10excelhüseyin123"
    
    For i = 1 To Len(d)
        If Not IsNumeric(Mid(d, i, 1)) Then
            yenideğişken = yenideğişken & Mid(d, i, 1)
        End If
    Next i
    
    MsgBox yenideğişken
End Sub

. . .
 
Kod:
Sub a()
sonuç = True
For i = 1 To Len(Range("a1"))
krakter = Mid(Range("a1"), i, 1)
If IsNumeric("0" & krakter) = False Or krakter = "+" Or krakter = "-" Then
sonuç = False
Exit For
End If
Next
MsgBox sonuç
End Sub
 
Son düzenleme:
Farklı yöntemler kullanarak sayısal verileri ayrıştırabilirsiniz.
 
Çok teşekkür ederim Hüseyin Bey. Çalışmamı yapmak için gerekenleri tamamlayabildim sayenizde.

Son olarak anlamadığım bir kısmı sormak istiyorum "Mid(d, i, 1)" Buradaki "1" rakamı ne sağlıyor?
 
Kod:
Sub a()
For i = 1 To Len(Range("a1"))
krakter = Mid(Range("a1"), i, 1)
If IsNumeric("0" & krakter) = False Or krakter = "+" Or krakter = "-" Then
MsgBox "Geçersiz karakter"
Exit For
End If
Next
End Sub

Teşekkür ederim. Bu örneği de saklayacağım. :)
 
Çok teşekkür ederim Hüseyin Bey. Çalışmamı yapmak için gerekenleri tamamlayabildim sayenizde.

Son olarak anlamadığım bir kısmı sormak istiyorum "Mid(d, i, 1)" Buradaki "1" rakamı ne sağlıyor?
.

1 karakter al.
Mid > parçaal formülü

.
 
Geri
Üst