• DİKKAT

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

Döngü Hatası

Katılım
3 Şubat 2011
Mesajlar
38
Excel Vers. ve Dili
excel 2003
Arkadaşlar merhaba, basit bir çalışmam var. Şu döngünün içinden bir türlü çıkamadım.

giris = CDate(TextBox3.Text)

For Each bakbi In Range("B1:IM1")
If CDate(bakbi.Value) = CDate(giris) Then
MsgBox ("eşit")
End If
Next bakbi

şekliye doğru çalışıyor (b1 : ım1 aralığında aradığı tarihi buluyor ve eşit mesajını veriyor.) ancak aşağıdaki döngü (tarih olmadığı için bulamıyor) doğru sonucu vermiyor ve tarih olmasına rağmen eşit değil hatası veriyor ve üstelik döngüye girip defalarca aynı mesajı veriyor. nerde yanlış yapıyorum, lütfen yardım edin.

giris = CDate(TextBox3.Text)

For Each bakbi In Range("B1:IM1")
If Not CDate(bakbi.Value) = CDate(giris) Then
MsgBox ("eşit değil")
End If
Next bakbi
 
. . .

2. kodlarda yapmak istediğiniz nedir.
Textbox daki tarihe eşit olmayan bir hücre olduğunda uyarı almak mı.
Anlatımınız karmaşık olmuş.

. .
 
evet, texboxtaki tarih aradığımız alanın içinde yoksa eşit değil yada tarih bu sayfada mevcut değil gibi bir uyarı vermek istiyorum. else if le iki kodu birleştirsekte olur ama ben beceremedim.
 
. . .

Her hücre için uyarı verecek mi (aşağıdaki kodlar), yoksa kodlama sonunda birkez var/yok uyarısı yeterli mi.

Kod:
Private Sub CommandButton1_Click()
giris = CDate(TextBox3.Text)

For Each bakbi In Range("B1:IM1")
If CDate(bakbi.Value) = CDate(giris) Then
MsgBox bakbi.Address(0, 0) & " :  Var"
Else
MsgBox bakbi.Address(0, 0) & " :  Yok"
End If
Next bakbi
End Sub

. . .
 
Merhaba, çalışmayı ekledim. Lütfen bir bakarmısınız,formadaki giriş yap butonuna tıklandığında textbox3 deki tarihi b1:ım1 alanında arasın var ise gerekli işlemi aşağıdaki kod ile yapıyorum ancak aranan alanda tarih yok ise aradığınız tarih abau sayfada yok deyip işlemi durdursun istiyorum ankak yapamadım.

giris = CDate(TextBox3.Text)
For Each bakbi In Range("B1:IM1")
If bakbi.Value = giris Then
colon = bakbi.Column

End If
Next bakbi

aslında boş alana aşağıdaki kodları ekleyince çalışması gerekmezmi?

else
msgbox ("aradığınız tarih bu sayfsada yok")
exit sub


http://www.dosya.tc/server34/yW5eWK/Otel.rar.html
 
. . .

Aşağıda kodları deneyiniz. İlaveleri mavi ile belirttim.

Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
If IsNull(ComboBox1) Or ComboBox1.Value = "" Then
MsgBox ("Oda Numarası Seçin..."), vbExclamation, "Oda Hatası"
ComboBox1.SetFocus
Exit Sub
End If
If IsNull(TextBox1) Or TextBox1.Value = "" Or TextBox1.Value < 1 Then
MsgBox ("Kişi Sayısını Giriniz..."), vbExclamation, "Kişi Hatası"
TextBox1.SetFocus
Exit Sub
End If
If IsNull(TextBox2) Or TextBox2.Value = "" Or TextBox2.Value < 1 Then
MsgBox ("Ücret Giriniz..."), vbExclamation, "Ücret Hatası"
TextBox2.SetFocus
Exit Sub
End If
If IsNull(TextBox3) Or TextBox3.Value = "" Then
MsgBox ("Giriş Tarihini Giriniz..."), vbExclamation, "Giriş Tarihi Hatası"
TextBox3.SetFocus
Exit Sub
End If
If IsNull(TextBox4) Or TextBox4.Value = "" Or TextBox4.Value < 1 Then
MsgBox ("Günü Giriniz..."), vbExclamation, "Gün Hatası"
TextBox4.SetFocus
Exit Sub
End If

oda = CDbl(ComboBox1.Text)
giris = CDate(TextBox3.Text)
gun = TextBox4.Value

For Each bakbi In Range("B1:IM1")
If bakbi.Value = giris Then
colon = bakbi.Column
[COLOR="Blue"]say = say + 1[/COLOR]
End If
Next bakbi

[COLOR="Blue"]If say = 0 Then
MsgBox "Yok", vbCritical
Exit Sub
End If
[/COLOR]
For Each bakbim In Range("a2:a49")
If bakbim.Value = oda Then
satir = bakbim.Row
End If
Next bakbim

Cells(satir, colon).Select
For k = 1 To gun
ActiveCell.Value = CDbl(TextBox1.Text)
ActiveCell.Offset(0, 1).Value = CDbl(TextBox2.Text)
ActiveCell.Offset(0, 2).Select
Next k
End Sub

. . .
 
çok teşekkürler elinize sağlık.
 
Geri
Üst