• DİKKAT

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

FOR......NEXT DÖNGÜSÜ (NEDEN ÇALIŞMIYOR)?

  • Konbuyu başlatan Konbuyu başlatan Ongun
  • Başlangıç tarihi Başlangıç tarihi
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
FOR......NEXT DÃ?NGÜSÜ (NEDEN ÇALIÞMIYOR)?

For i = 2 To Cells(65536, 2).End(xlUp).Row
If TextBox13.Text = Cells(i, 2) And Cells(i, 1) = 1 And Cells(i, 1) = 2 And Cells(i, 1) = 3 And Cells(i, 1) = 4 And Cells(i, 1) = 5 And Cells(i, 1) = 6 And Cells(i, 1) = 7 And Cells(i, 1) = 8 And Cells(i, 1) = 9 And Cells(i, 10) = 1 And Cells(i, 1) = 11 And Cells(i, 1) = 12 And Cells(i, 6) = "" And Cells(i, 7) <> "" Then MsgBox"12 D�NEM TAMAMLANMIÞTIR."
Next

Yukarıdaki kodu bir türlü çalıştıramadım. Yardımcı olabilirmisiniz. Teşekkürler.
 
merhaba,
mantık hatası var,,
Cells(i, 1) aynı anda 1,2,3,...12 eşit olamaz...

dolayısıyla if sonucu sürekli yanlış çıkar ve msgbox işletilmez..
 
-Çalışmayan döngü ise , son satırı belirlediğiniz 2. sütun dolumu? Burda bir hatanız olabilir.
-Kodun bu şekli ile doğru çalışması için işlem yaptığınız sayfanın aktif sayfa olması gerekir.
 
merhaba,
mantık hatası var,,

Evet.

If TextBox13.Text = Cells(i, 2) AND Cells(i, 1) = 1 OR Cells(i, 1) = 2 OR Cells(i, 1) = 3 OR Cells(i, 1) = 4 OR Cells(i, 1) = 5 OR Cells(i, 1) = 6 OR Cells(i, 1) = 7 OR Cells(i, 1) = 8 OR Cells(i, 1) = 9 OR Cells(i, 10) = 1 OR Cells(i, 1) = 11 OR Cells(i, 1) = 12 OR Cells(i, 6) = "" OR Cells(i, 7) <> "" Then MsgBox"12 D�NEM TAMAMLANMIÞTIR."

olarak deneyin.
 
veya

If TextBox13.Text = Cells(i, 2) AND Cells(i, 1) >= 1 AND Cells(i, 1) <= 12 AND Cells(i, 6) = "" AND Cells(i, 7) <> "" Then MsgBox"12 D�NEM TAMAMLANMIÞTIR."
 
Arkadaşlar ilgilendiğiniz için çok teşekkürler sorunumu bir türlü çözemiyorum.
Sayın Alpen`nin kodunu daha önce denedim ama olmadı. ÇÜNKÜ AYNI ANDA 1 DEN 12 YE KADAR OLAN SIRA NUMARASININ HEPSİNİ SATIR SATIR KONTROL ETTİRMEK İSTİYORUM. ACABA BU MÜMKÜN MÜ? Selamlar.
Ã?rnek Kod:
Sheets("TERKİN").Select
For i = 2 To Cells(65536, 2).End(xlUp).Row
If TextBox13.Text = Cells(i, 2) And Cells(i, 1) >= 1 And Cells(i, 1) <= 12 And Cells(i, 6) = "" And Cells(i, 7) <> "" Then MsgBox "12 D�NEM TAMAMLANMIÞTIR."
Next
End Sub
 
Ayrıca "OR" kullanınca uygun olan ilk şarttın sonucunu veriyor. Yani A sütununda sıra numarası 1 olan satırın şartı uygunsa mesaj geliyor. oysa ben 1 den 12 ye kadar aynı koşulun bakılmasını ve TAMAMI UYARSA mesaj vermesini istiyorum. TEKRAR TEÞEKKÜR EDER ÇALIÞMALARINIZDA BAÞARILAR DİLERİM.
 
Aşağıdaki gibi deneyin.

If TextBox13.Text = Cells(i, 2) AND Cells(i, 1) = 1 OR Cells(i, 1) = 2 OR Cells(i, 1) = 3 OR Cells(i, 1) = 4 OR Cells(i, 1) = 5 OR Cells(i, 1) = 6 OR Cells(i, 1) = 7 OR Cells(i, 1) = 8 OR Cells(i, 1) = 9 OR Cells(i, 10) = 1 OR Cells(i, 1) = 11 OR Cells(i, 1) = 12 AND Cells(i, 6) = "" AND Cells(i, 7) <> "" Then MsgBox"12 D�NEM TAMAMLANMIÞTIR."
 
isakarakus' Alıntı:
merhaba,
mantık hatası var,,
Cells(i, 1) aynı anda 1,2,3,...12 eşit olamaz...

dolayısıyla if sonucu sürekli yanlış çıkar ve msgbox işletilmez..

Sayın İsakarakus peki o zaman ne yapmam lazım. Nasıl bir kodlama yapmam lazım Cells(i, 1) aynı anda 1,2,3,...12 eşit AYNI ANDA EÞİT OLMASI LAZIM. Farklı bir şey önerebilirmisiniz. Teşekkür ederim.
 
leventm' Alıntı:
Aşağıdaki gibi deneyin.

If TextBox13.Text = Cells(i, 2) AND Cells(i, 1) = 1 OR Cells(i, 1) = 2 OR Cells(i, 1) = 3 OR Cells(i, 1) = 4 OR Cells(i, 1) = 5 OR Cells(i, 1) = 6 OR Cells(i, 1) = 7 OR Cells(i, 1) = 8 OR Cells(i, 1) = 9 OR Cells(i, 10) = 1 OR Cells(i, 1) = 11 OR Cells(i, 1) = 12 AND Cells(i, 6) = "" AND Cells(i, 7) <> "" Then MsgBox"12 D�NEM TAMAMLANMIÞTIR."

Sayın Leventm, F sütunun ilgili satırının "BOÞ" olması G sütunun ilgili satırının da "DOLU" olması koşulunun 1 den 12 ye kadar sağlanması gerekiyor.Eğer herhangi biri yani 1.sıra numaradan (aradaki satırlarda başka vergi numaralarına ait bilgiler olabilir.) 12.sıra numaraya kadar koşul sağlanmaz ise (AYNI ANDA) MESAJ VERSİN İSTEMİYORUM. TAMAMINDA KOÞUL SAÐLANIRSA MESAJ VERSİN. SELAMLAR.
 
Bence siz sorunuzu tam olarak anlatamadınız. Aynı hücre aynı anda hem 1 hemde 12 olamaz dolayısıyla kod sadece tek değeri kontrol edebilir yani önce 1 mi diye bakar,değilse 2 mi diye bakar yine değilse 3 mü diye bakar....bu şekilde 12 ye kadar bakacaktır. Ve ilk eşitlenen değerde if koşulu gerçekleşeceği içinde mesaj verecektir.
 
ÞU AN ÇIKMAM LAZIM. SİZE Ã?RNEK DOSYA GÃ?NDERECEÐİM SELAMLAR.
 
kesin anladım galiba,

bu işnizi görür mü,

12 satırın tamamında doğru değere ulaşılırsa veya 36 şart doğru değer döndürürse tamam mesajı verir.

[vb:1:488c41e813]x = 0
For i = 1 To 12

If Cells(i, 1) = textbox1.Text And Cells(i, 3).Text <> "" And Cells(i, 2) = i Then x = x + 1

Next

If x = 12 Then MsgBox "tamam"[/vb:1:488c41e813]
 
Geri
Üst