Hatayı bulamıyorum bakarmısınız?

Katılım
13 Mayıs 2005
Mesajlar
35
Öncelikle merhaba aşağıdaki kodları içeren bir program yazdım. Bu kodlardan önce program çalıştığında textbox1 in içerisini bir rakam geliyor. Butona bastığım anda tüm işlemler sorunsuz çalışıyor. Yalnız ++++ ile belirttiğim kısımlardaki kodlara gelince textbox2 textbox1 den büyükse işlemi kesmesini istiyorum. Küçükse işleme devam etmesini. Ama nedense kodu ilk kez çalıştığımda (yani butonu ilk kullanışımda) textbox2 textbox1 den küçük olduğu halde uyarı mesajını verip işlemi kesiyor. Sonraki basışımda ise işleme devam ediyor. Neden ilk seferde yapmıyor?

Textbox2 ye 2 giriyorum
textbox1 ise 7
ama işlem kesiliyor
Acil yardım edebilirseniz çok sevineceğim. Gerekirse dosyayı gönderebilirim.

Private Sub CommandButton1_Click()

'\\\\\\\\\\\\\ SORGU PENCERESİ \\\\\\\\\\\\\\\\

Sheets("YEDEKYAZ").Select
Tarih1 = CDate(Date - 7)
Tarih2 = CDate(Date)
Range("A1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:=ComboBox1.Text
Selection.AutoFilter Field:=3, Criteria1:=ComboBox3.Text
Selection.AutoFilter Field:=4, Criteria1:=ComboBox2.Text
Selection.AutoFilter Field:=5, Criteria1:="Çıkış"
Selection.AutoFilter Field:=7, Criteria1:=">=" & (Tarih1), Operator:=xlAnd _
, Criteria2:="<=" & (Tarih2)

Range("A1").Select
Selection.End(xlDown).Select

If ActiveCell.Offset(0, 6).Value = "" Then
If ActiveCell = Range("a65536") Then
Range("a1").Select


GoTo Devam
Else
End If
Else

soru = MsgBox("Belirtti&#287;iniz malzeme ile ilgili bir hafta i&#231;erisinde &#231;&#305;k&#305;&#351; i&#351;lemi yap&#305;lm&#305;&#351; yap&#305;lm&#305;&#351;. Yeniden i&#351;lem yapmak istedi&#287;inize emin misiniz?", vbYesNo, "Uyar&#305;!!")
If soru = vbYes Then GoTo Devam
If soru = vbNo Then Selection.AutoFilter
Exit Sub

End If

'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Devam:
If TextBox1.Value = "0" Then
MsgBox ("Bu malzemeden elimizde mevcut olmad&#305;&#287;&#305; i&#231;in &#231;&#305;k&#305;&#351; i&#351;lemi yapamazs&#305;n&#305;z")
Else
If TextBox2.Value = "" Then
MsgBox "L&#252;tfen &#231;&#305;k&#305;&#351; yap&#305;lacak miktar&#305; giriniz..."
Else
++++++++++++ Aa = TextBox1.Value
++++++++++++ Bb = TextBox2.Value

++++++++++++ If Aa < Bb Then
++++++++++++ MsgBox "Belirtti&#287;iniz malzemden stoklar&#305;m&#305;zda " + TextBox1.Value + " adet bulunmaktad&#305;r. " + TextBox2.Value + " adet &#231;&#305;k&#305;&#351; yap&#305;lmas&#305; olanaks&#305;zd&#305;r."
Exit Sub
Else
Sheets("YEDEK").Select
Range("a1").Select

Selection.AutoFilter
Selection.AutoFilter Field:=2, Criteria1:=ComboBox1.Text
Selection.AutoFilter Field:=3, Criteria1:=ComboBox3.Text
Selection.AutoFilter Field:=4, Criteria1:=ComboBox2.Text
Selection.End(xlDown).Select
TextBox4.Value = TextBox1.Value - TextBox2.Value
ActiveCell.Offset(0, 4) = TextBox4.Text


AB = TextBox8.Value - TextBox4.Value
If AB > 0 Then
MsgBox " Malzeme Stoklar&#305; Kritik De&#287;erin Alt&#305;na &#304;nmi&#351;tir", vbCritical, "Uyar&#305;!"
Selection.AutoFilter
End If

Sheets("YEDEKYAZ").Select
Range("a1").Select
ActiveCell.Offset(1, 0).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
If Range("a2").Value = "" Then
Range("a2").Value = 1
Else
ActiveCell.Value = ActiveCell.Offset(-1, 0) + 1
End If
ActiveCell.Offset(0, 1).Value = ComboBox1.Text
ActiveCell.Offset(0, 2).Value = ComboBox3.Text
ActiveCell.Offset(0, 3).Value = ComboBox2.Text
ActiveCell.Offset(0, 4).Value = "&#199;&#305;k&#305;&#351;"
ActiveCell.Offset(0, 5).Value = TextBox2.Value
ActiveCell.Offset(0, 6).Value = TextBox3.Value
MsgBox "&#304;&#351;leminiz Kay&#305;t Edilmi&#351;tir"
MsgBox "" & ComboBox1.Value + " - " & ComboBox3.Value + " - " & ComboBox2.Value + " malzemesinden elimizde " & TextBox4.Value + " adet kalm&#305;&#351;t&#305;r."
Selection.AutoFilter
Sheets("G&#304;R&#304;&#350;").Select
ComboBox1.Text = ""
ComboBox3.Text = ""
ComboBox2.Text = ""
TextBox2.Text = ""

TextBox4.Text = ""
TextBox5.Text = ""
TextBox1.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""

End If
End If
End If
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Merhabalar

Kodlar&#305;n&#305;za ilk bak&#305;&#351;ta bir hata g&#246;r&#252;nm&#252;yor gibi ... Dosyay&#305; ilave ederseniz, daha geni&#351; inceleyebiliriz.
 
Katılım
13 Mayıs 2005
Mesajlar
35
Merhabalar

Kodlar&#305;n&#305;za ilk bak&#305;&#351;ta bir hata g&#246;r&#252;nm&#252;yor gibi ... Dosyay&#305; ilave ederseniz, daha geni&#351; inceleyebiliriz.
Dosyan&#305;n kod &#351;ifresi G&#304;ZEML&#304;KRAL . Ben de biraz daha inceledim. Belirtti&#287;im hatay&#305; &#351;u &#351;ekildeyken yap&#305;yor. textbox2 = 7 textbox1= 3 ise sorun yok ancak iki haneli bir rakam oldu&#287;unda yani textbox2=11 textbox1=3 ise 11 i 3 ten k&#252;&#231;&#252;km&#252;&#351; gibi alg&#305;l&#305;yor

Bahsetti&#287;im olay userform8 in &#231;&#305;k&#305;&#351; men&#252;s&#252;nde ki kay&#305;t butonunda
 
Katılım
13 Mayıs 2005
Mesajlar
35
Sevgili &#252;stad&#305;m. Textbox1 ve textbox 2 yi farkl&#305; excel h&#252;crelerine yazd&#305;r&#305;p b&#252;y&#252;k ise sorgulamas&#305;n&#305; h&#252;creler &#252;zerinden yapt&#305;&#287;&#305;mda &#231;al&#305;&#351;&#305;yor. Sizler hatan&#305;n nedenini bulursan&#305;z minnettar kal&#305;p kodu textboxlar uzerinden &#231;al&#305;&#351;t&#305;raca&#287;&#305;m. Bulamazsan&#305;zda yine de te&#351;ekk&#252;rler. Eme&#287;iniz ve yard&#305;mlar&#305;n&#305;z i&#231;in.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Nas&#305;l veri giriliyor bu Userform8'e? Optionbuttonlar'la Textbox'lar&#305;n ya ikisi yada biri disable oluyor.

S&#305;ras&#305;yla t&#252;m kutulara ne girilece&#287;ini de s&#246;yleyin.
 
Katılım
13 Mayıs 2005
Mesajlar
35
Ald&#305;&#287;&#305;n&#305;z dosya da userform kay&#305;tlar&#305; yedek isimli sayfadan al&#305;yor.
yedek sayfas&#305;na yeni veri girmek i&#231;in ilk iki comboboxtan s&#305;rayla birer isim se&#231;in
&#252;&#231;&#252;nc&#252; comboboxa kafand&#305;zdan bir &#351;ey yaz&#305;n. sonra sa&#287;daki yeni kay&#305;t option butonunu t&#305;klay&#305;n. Mevcut miktar ve kritik de&#287;er a&#231;&#305;lacak. mevcut miktar&#305; 12 kritik de&#287;eri de 3 yap&#305;p kay&#305;t butonuna bas&#305;n. sonra option buttonlardan &#231;&#305;k&#305;&#351;&#305; se&#231;ti&#287;inizde &#231;&#305;k&#305;&#351; frame i a&#231;&#305;lacak. oraya &#231;&#305;k&#305;&#351; miktar&#305; alan&#305;na bir de&#287;er yaz&#305;n ve kaydetmeye &#231;al&#305;&#351;&#305;n (mesele 3 yazd&#305;&#287;&#305;n&#305;zda 12 yi &#252;&#231;ten k&#252;&#231;&#252;k olarak g&#246;r&#252;yor)


NOT: mevcut miktar&#305; 10 &#252;st&#252; de&#287;ilde 9 ve alt&#305; bir rakam girerseniz sorunsuz &#231;al&#305;&#351;&#305;yor
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ayn&#305; dosyadan m&#305; bahsediyoruz? 12 ve 3 de&#287;erlerini girdim ama bahsetti&#287;iniz "kay&#305;t" butonu hangisi ? &#304;ki tane Kaydet ad&#305;nda buton var, onlar da disabled ...
 
Katılım
13 Mayıs 2005
Mesajlar
35
1. aşama stoklara yeni malzeme girme;

1-Userform8 i çalıştırın
2-sağdaki menüden yeni kayıt option butonuna basın
3-Grup un comboboxundan bir veri seçin Ör: İŞ MAKİNALARI
4-Araç / Makina dan bir veri seçin Ör: Bobcat 1
5-Malzeme adı için herhangi bir isim verin (mesele mapa yazın)
6-Mevcut miktarı 12 yazın
7-Kritik Miktarı 2 yazın (bunun şu anlık önemi yok)
8-Sağdaki menüden yeni kayıt command butonuna basark kayıt edin. Msgbox ile onay gelecek. Çıkış yapmadan devam edin aşağıdaki işleme

2. aşama stoktaki malzemeden çıkış yapma

1-sağdaki menüden Çıkış işlemi yazan option butonu tıklayın
2-Alt Sağdaki çıkış işlemleri menüsü açılacak
3-Kullanılan adet kısmına 3 yazın
4-Çıkış işlemleri menüsündeki kayıt butonuna basın (zaten diğer kayıt butonları şu anda disabled)
5-Devam etmek istiyormusunuz diye sorarsa (bu soruyu son bir hafta içinde aynı malzemeden çıkış işlemi yapıldıysa soracaktır) evet deyin ama mapa yı ilk defa çıkacağınız için sormayacaktır

Bu kadar sonra karşınıza bir mesaj gelecek bu malzemeden stoklarda 12 tane bulunmaktadır 3 adet çıkış yapılması imkansızdır diye
 
Katılım
13 Mayıs 2005
Mesajlar
35
ama giri&#351; miktar&#305;n&#305; 12 de&#287;ilde 9 yaparak giri&#351; yap&#305;ld&#305;&#287;&#305;nda ayn&#305; uyar&#305;y&#305; vermiyor
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Şimdi oldu işte :)

Userform8'in CommandButton1_Click olay kodlarında şöyle bir koşul yapısı var
Kod:
If TextBox2.Value > TextBox1.Value Then
Bu yapı, siz numerik değerleri karşılaştırdığınızı sansanızda, esasen text iki değeri mukayese etmekte... Sizin de belirttiğiniz gibi; sadece Text karşılaştırmalarda "12", "3" den küçük olabilir. Nedeni de, Sözlüklerde olduğu sıralama kriteridir.

Yukarıda bahsettiğimiz komut satırını şu şekilde değiştirirseniz bir problem kalmaz.
Kod:
If TextBox2.Value[COLOR=red][B]*1[/B][/COLOR] > TextBox1.Value[B][COLOR=red]*1[/COLOR][/B] Then
Bu şekliyle kullansanızda olur ama ileride başınızın ağrımaması için, kodunuzun ilk başlarına Textbox1 ve Textbox2'nin nümerik değer olup olmadığını da kontrol ettirirseniz iyi olur. Yanlışlıkla Textbox2'ye "ABC" yazıp kaydetmeye çalışın. Direkt olarak bir hataya sebep olacaktır.

If Isnumeric(TextBox1) and Isnumeric (TextBox2) Then gibi ...
 
Katılım
13 Mayıs 2005
Mesajlar
35
Te&#351;ekk&#252;r ederim kodu bir de bu &#351;ekliyle yaz&#305;p deneyeyim sizi de baya&#287;&#305; bi u&#287;ra&#351;t&#305;rd&#305;m. :)
 
Üst