[Çözüldü]  IsNumeric ile ilgili yardım talebi

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

IsNumeric ile ilgili yardım talebi

İleti#1)  Raufemir » 07 Ağu 2019 16:53

Herkese merhabalar,

1- Oluşturduğum excel vba kodlaması içinde barkod okuyucu ile okuttuğum rakamsal ( 1805506 ) kodları aşağıda verdiğim kod öbeği ile textbox üzerine rahatlıkla alabiliyorum.

Kod: Tümünü seç
If Not IsNumeric(TextBox2.Value) Then

TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)
Cancel = True

End If



2- Yukarıdaki öbekten ilk satırdaki "Not" ibaresini çıkartırsam, bu sefer barkod kodumun içinde harf varsa bunu da okutabiliyorum.
( 730MT30151 ) gibi.

Kod: Tümünü seç
If IsNumeric(TextBox2.Value) Then

TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)
Cancel = True

End If


Fakat bu sefer 1 numaralı şartta bahsettiğim rakamsal olan barkod kodlarını okutmakta problem çıkıyor.
Hakeza 1 numaralı şarttaki kod öbeğini kullanırsam, 2 numaralı şartta problem çıkıyor.
Yani ya rakamsal barkod kodlarını okutabiliyorum ya da rakam ve harfin beraber olduğu barkod kodlarını.

Bu ikisini birbirini harmanlamayı başaramadım.
Yardımcı olabilecek biri çıkar mı sormak istedim.

İyi akşamlar.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: IsNumeric ile ilgili yardım talebi

İleti#2)  Feyzullah » 07 Ağu 2019 18:00

Hiç kullanma iptal et IF Then şartını
Kullanıcı avatarı
Feyzullah
Site Dostu
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 08:30
İleti: 648
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#3)  Raufemir » 07 Ağu 2019 18:16

Feyzullah yazdı:Hiç kullanma iptal et IF Then şartını


Teşekkürler ilginiz için.

1- Barkod kodunu, okuyucu ile textbox2 'ye okutuyorum.
2- Daha sonra imleç Textbox4 'e kayıyor ve oraya adet giriyorum.
3- Miktar girdikten sonra enter sonrası textbox4 'den yine textbox2 'ye çıkıyorum.
4- Akabinde yine barkod okutuyorum textbox2 'ye ve yine adet giriyorum textbox4 'e.

Döngüm böylelikle sağlanıyor.

Bu verdiğim kod Isnumeric ya da Not IsNumeric haliyle textbox4 'den textbox2 'ye çıkmamı sağlıyor.

Eğer IsNumeric ya da Not IsNumeric kod öbeğini silersem ve sadece setfocus kısmı kalırsa textbox2 'ye geri çıkamıyorum.

Sıkıntım orada ikisini birbirine ilintileme istememin sebebi bu.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: IsNumeric ile ilgili yardım talebi

İleti#4)  Feyzullah » 07 Ağu 2019 18:28

kodda kullandığınız isnumeric şartı yerine aşağısakini deneyin.

Kod: Tümünü seç
if not  isempty(me.textbox1.text) then
Kullanıcı avatarı
Feyzullah
Site Dostu
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 08:30
İleti: 648
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#5)  Raufemir » 07 Ağu 2019 18:32

Feyzullah yazdı:kodda kullandığınız isnumeric şartı yerine aşağısakini deneyin.

Kod: Tümünü seç
if not  isempty(me.textbox1.text) then


Olmadı maalesef.
Bu kod ile miktar girdiğim textbox4 'e inmedi imleç.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: IsNumeric ile ilgili yardım talebi

İleti#6)  Feyzullah » 07 Ağu 2019 18:34

Textbox1 yazmışım ben sen 2olarak düzelttim mi?
Kullanıcı avatarı
Feyzullah
Site Dostu
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 08:30
İleti: 648
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#7)  Raufemir » 07 Ağu 2019 18:35

Feyzullah yazdı:Textbox1 yazmışım ben sen 2olarak düzelttim mi?


Düzelttim. Bir iki kendimde farklı çeşitlerini denedim.
Maalesef.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: IsNumeric ile ilgili yardım talebi

İleti#8)  Feyzullah » 07 Ağu 2019 18:43

Aşağıdaki gibi dene
Kod: Tümünü seç
If Not IsNumeric(TextBox2.Value) or IsNumeric(TextBox2.Value) Then
Kullanıcı avatarı
Feyzullah
Site Dostu
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 08:30
İleti: 648
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#9)  Raufemir » 07 Ağu 2019 18:56

Feyzullah yazdı:Aşağıdaki gibi dene
Kod: Tümünü seç
If Not IsNumeric(TextBox2.Value) or IsNumeric(TextBox2.Value) Then


Çok teşekkür ederim ilginize.

OR ile olmuyor. İmleç Textbox2 'de sabit kalıyor. Textbox4 'e inmiyor.

AND ile denediğimde, imleç bu sefer textbox4 'e iniyor fakat Textbox2 'ye çıkmıyor.

Resimleri fikir vermesi adına eke koydum.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: IsNumeric ile ilgili yardım talebi

İleti#10)  Ozan İLGÜN » 07 Ağu 2019 18:58

İf val(TextBox2.Value) =TextBox2.Value then
Msgbox "bu barkod tamamen sayılardan oluşuyor."
Else
İf val(TextBox2.Value)>0 then
Msgbox "bu barkod metinle karışık sayılardan oluşuyor"
Else
Msgbox "bu barkod metindir"
End If
End if
ozan.ilgun@boun.edu.tr

Resim
Kullanıcı avatarı
Ozan İLGÜN
Forum Moderatörü
 
Adı Soyadı:Ozan İlgün
Kayıt: 20 Şub 2013 12:43
Konum: İst. Maltepe
Meslek: Arşivist
Yaş: 33
İleti: 2826
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul



Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#11)  Raufemir » 07 Ağu 2019 19:04

Ozan İLGÜN yazdı:İf val(TextBox2.Value) =TextBox2.Value then
Msgbox "bu barkod tamamen sayılardan oluşuyor."
Else
İf val(TextBox2.Value)>0 then
Msgbox "bu barkod metinle karışık sayılardan oluşuyor"
Else
Msgbox "bu barkod metindir"
End If
End if


Teşekkürler ilginize. Yukarıda "AND" şartında bahsettiğim gibi barkod okuduktan sonra miktar giriyorum fakat tekrar başa Textbox2'ye dönemiyorum.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: IsNumeric ile ilgili yardım talebi

İleti#12)  Feyzullah » 07 Ağu 2019 22:59

Textbox4_change veya exit kod bölümüne Txtbx2 için setfocus yazın. Userform özelleklerinden tapindex değerlerinde oynama yapın.
Kullanıcı avatarı
Feyzullah
Site Dostu
 
Adı Soyadı:mete han
Kayıt: 18 Ekm 2011 08:30
İleti: 648
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: OSMANİYE

Cevap: IsNumeric ile ilgili yardım talebi

İleti#13)  Ozan İLGÜN » 08 Ağu 2019 07:45

Rauf Bey. Dosyanızı yükleme şansınız varsa yükleyin tahminler üzerinden konuşmayalım. Ayrıca ne tarzda bir if istiyorsunuz mesela

eğer textbox2 numerik ise şunu yapsın
eğer textbox2 tamamen harflerden oluşuyorsa şunu yapsın
eğer textbox2 kısmen numerik ise şunu yapsın
eğer textbox2 boş geliyor ise şunu yapsın
Gibi.
ozan.ilgun@boun.edu.tr

Resim
Kullanıcı avatarı
Ozan İLGÜN
Forum Moderatörü
 
Adı Soyadı:Ozan İlgün
Kayıt: 20 Şub 2013 12:43
Konum: İst. Maltepe
Meslek: Arşivist
Yaş: 33
İleti: 2826
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul



Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#14)  Raufemir » 08 Ağu 2019 08:13

Feyzullah yazdı:Textbox4_change veya exit kod bölümüne Txtbx2 için setfocus yazın. Userform özelleklerinden tapindex değerlerinde oynama yapın.


Her iki türlü de denedim.

1- Textbox2 için Setfocus 'u hem Textbox4 Change hem de Exit kısmına yazarak denedim, sonuç yine olumlu değil.


2-Tabindex sırasıyla
0 - Textbox2
1 - Textbox4
2 - Farklı bir Textbox olduğu için oraya kayıyor imleç. Bu şekilde çözebilsem karışıklığa mahal vermeden hallolurdu esasında.

Tekrar teşekkür ederim.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#15)  Raufemir » 08 Ağu 2019 09:11

Ozan İLGÜN yazdı:Rauf Bey. Dosyanızı yükleme şansınız varsa yükleyin tahminler üzerinden konuşmayalım. Ayrıca ne tarzda bir if istiyorsunuz mesela

eğer textbox2 numerik ise şunu yapsın
eğer textbox2 tamamen harflerden oluşuyorsa şunu yapsın
eğer textbox2 kısmen numerik ise şunu yapsın
eğer textbox2 boş geliyor ise şunu yapsın
Gibi.


Merhaba Ozan Bey,

Dosya biraz kalabalık olduğu için tıraşlayarak ekledim.
VBA şifresi : demta

Dosyayı açtıktan sonra,
"STOK GİRİŞ / ÇIKIŞ İŞLEMLERİ için TIKLAYINIZ." butonuna tıkladıktan sonra sağ alttaki "Çıkış Formu Açınız" butonuna tıklayınız.

Form açılacaktır. Soldaki Listbox içerisinde "BORULAR" ya da FLANŞLAR 'a basarak ilerleyebilirsiniz.
Yeşil textbox içerisine barkod numarası gelecektir.
Göreceğiniz üzere bütün barkod numaraları rakamsal. 101010 gibi.

Ben buraya rakamsal barkod kodların yanında, rakamları ve harfleri de içeren barkod kodlarını da girebilmek istiyorum. 730MT30151 gibi.

En tepede bahsettiğim gibi If Not IsNumeric ile If IsNumeric 'i harmanlayarak kullanabilmek esas istediğim.
Bunu aşağıdaki şekilde denedim, başardım fakat döngüm bozuldu.

Kod: Tümünü seç
If Not IsNumeric(TextBox2.Value) and IsNumeric(TextBox2.Value) Then

TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)
Cancel = True

End If

Yukarıda Bahsettiğim koda Userform2 içinden ulaşabilirsiniz. Textbox2 ve Textbox4 'ü zaman kaybetmemeniz için aşağıdaki fotoğrafta gösterdim.

Şu an itibariyle Textbox2 'ye Barkod kodu geldikten sonra enter ile Textbox4 'e gidip miktar yazıp enter tuşuna bastığımda Textbox2 'ye dönemiyorum. ( Barkod okuyucu olmadan gerçekleşek süreci tarifledim )

Problem bu.

Detaylı oldu ama süreci toparlamak istedim.
Teşekkürler.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: IsNumeric ile ilgili yardım talebi

İleti#16)  Ozan İLGÜN » 08 Ağu 2019 09:34

Kodu bu şekilde dener misin?

Kod: Tümünü seç
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

'If Not IsNumeric(TextBox2.Value) Then ( Bu kod ile yaparsak sadece rakam okuyor, alttaki kod ile beraber barkod kodu içerisindeki harfleri de okuyabiliyoruz.
                                        '_"NOT" ibaresi değişkenliğe sebep oluyor.)
                                       
If Val(TextBox2.Value) > 0 Then

TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)
Cancel = True

End If
End Sub

ozan.ilgun@boun.edu.tr

Resim
Kullanıcı avatarı
Ozan İLGÜN
Forum Moderatörü
 
Adı Soyadı:Ozan İlgün
Kayıt: 20 Şub 2013 12:43
Konum: İst. Maltepe
Meslek: Arşivist
Yaş: 33
İleti: 2826
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul



Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#17)  Raufemir » 08 Ağu 2019 09:42

Ozan İLGÜN yazdı:Kodu bu şekilde dener misin?

Kod: Tümünü seç
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

'If Not IsNumeric(TextBox2.Value) Then ( Bu kod ile yaparsak sadece rakam okuyor, alttaki kod ile beraber barkod kodu içerisindeki harfleri de okuyabiliyoruz.
                                        '_"NOT" ibaresi değişkenliğe sebep oluyor.)
                                       
If Val(TextBox2.Value) > 0 Then

TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)
Cancel = True

End If
End Sub



Her iki tarz barkod kodu da textbox2 'de kalıyor.
Textbox4 'e inemiyor.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: IsNumeric ile ilgili yardım talebi

İleti#18)  Ozan İLGÜN » 08 Ağu 2019 10:05

Kod: Tümünü seç
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Sayal(TextBox2.Value) < 1 Then
TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)
Cancel = True
End If
End Sub
Function Sayal(strIn As String) As String
    Dim objRegex
    Set objRegex = CreateObject("vbscript.regexp")
    With objRegex
     .Global = True
     .Pattern = "[^\d]+"
    Sayal = .Replace(strIn, vbNullString)
    End With
End Function
ozan.ilgun@boun.edu.tr

Resim
Kullanıcı avatarı
Ozan İLGÜN
Forum Moderatörü
 
Adı Soyadı:Ozan İlgün
Kayıt: 20 Şub 2013 12:43
Konum: İst. Maltepe
Meslek: Arşivist
Yaş: 33
İleti: 2826
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul



Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#19)  Raufemir » 08 Ağu 2019 10:14

Ozan İLGÜN yazdı:
Kod: Tümünü seç
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Sayal(TextBox2.Value) < 1 Then
TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)
Cancel = True
End If
End Sub
Function Sayal(strIn As String) As String
    Dim objRegex
    Set objRegex = CreateObject("vbscript.regexp")
    With objRegex
     .Global = True
     .Pattern = "[^\d]+"
    Sayal = .Replace(strIn, vbNullString)
    End With
End Function


Çalıştıramadım.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Cevap: Cevap: IsNumeric ile ilgili yardım talebi

İleti#20)  Raufemir » 08 Ağu 2019 10:28

Ozan İLGÜN yazdı:
Kod: Tümünü seç
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Sayal(TextBox2.Value) < 1 Then
TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)
Cancel = True
End If
End Sub
Function Sayal(strIn As String) As String
    Dim objRegex
    Set objRegex = CreateObject("vbscript.regexp")
    With objRegex
     .Global = True
     .Pattern = "[^\d]+"
    Sayal = .Replace(strIn, vbNullString)
    End With
End Function



Kod: Tümünü seç
If Not IsNumeric(TextBox2.Value) And IsNumeric(TextBox2.Value) Then
TextBox2.SetFocus
TextBox2.SelStart = 1
TextBox2.SelLength = Len(TextBox2.Text)
Cancel = True

End If


Bu kod istediğim ana problemi çözüyor fakat textbox2 'den textbox4 'e miktarı girmek için geçtikten sonra miktar girmek için textbox2 'ye dönemiyorum. Bunun için bir fikriniz var mıdır?

Sağolun.
Kullanıcı avatarı
Raufemir
Yeni Başlamış
 
Kayıt: 23 Şub 2018 12:48
Meslek: Kalite
Yaş: 34
İleti: 30
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul/Kadıköy

Sonraki

Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: Yandex[Bot] ve 0 misafir

Bumerang - Yazarkafe