If......Then koşulu alt alta 12 defa yazılabilirmi

Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Benim merak ettiğim If.......Then koşulu alt alta 12 defa yazılarak
12 koşulun sonucunda bir döngü yardımıyla sonuca ulaşılabilinirmi?
örnek;

For i = 2 To Cells(65565,2).Row
If Cells(i,1)=TextBox1.Text And Cells(i,2)=1 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=2 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=3 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=4 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=5 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=6 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=7 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=8 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=9 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=10 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=11 And Cells(i,3)<>"" Then
If Cells(i,1)=TextBox1.Text And Cells(i,2)=12 And Cells(i,3)<>"" Then
MsgBox "TAMAM"
Next
End Sub

yani 12 koşuluda If....Then bloğunda aynı anda test ettirebilirmiyiz.
Herkese çalışmalarında başarılar dilerim. Saygılarımla
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aynı anda karşılaştırma mümkün değildir. Neticede kod satır satır çalıştığından sıra ile karşılaştırma söz konusudur. Bunun yerine aşağıdaki gibi bir yazım şeklini deneyin. Daha iyi alternatiflerde bulunabilir.

[vb:1:582f0be229]For i = 2 To Cells(65565, 2).Row
for b=1 to 12
If Cells(i, 1) = TextBox1.Text And Cells(i, 2) = b And Cells(i, 3) <> "" Then MsgBox "TAMAM"
Next:next
[/vb:1:582f0be229]
 
Katılım
3 Mart 2005
Mesajlar
571
Excel Vers. ve Dili
Excel 2000 Ing.
Ongun, sizin kodlara bakılırsa istediğiniz şeyi şöyle yapabiliriz:

[vb:1:e5c8b5829e]For i = 2 To Cells(65565,2).Row
If Cells(i,1)=TextBox1.Text And Cells(i,2)=1 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=2 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=3 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=4 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=5 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=6 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=7 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=8 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=9 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=10 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=11 And Cells(i,3)<>"" Then MsgBox "TAMAM"
If Cells(i,1)=TextBox1.Text And Cells(i,2)=12 And Cells(i,3)<>"" Then MsgBox "TAMAM"
Next
End Sub[/vb:1:e5c8b5829e]

sonuçta bu iflerden bir tanesi doğru olabilecektir
 
Katılım
3 Mart 2005
Mesajlar
571
Excel Vers. ve Dili
Excel 2000 Ing.
veya şöyle

[vb:1:a9c3c155c1]For i = 2 To Cells(65565,2).Row
If Cells(i,1)=TextBox1.Text And Cells(i,3)<>"" Then
If Cells(i,2)=1 Then MsgBox "TAMAM"
If Cells(i,2)=2 Then MsgBox "TAMAM"
If Cells(i,2)=3 Then MsgBox "TAMAM"
If Cells(i,2)=4 Then MsgBox "TAMAM"
If Cells(i,2)=5 Then MsgBox "TAMAM"
If Cells(i,2)=6 Then MsgBox "TAMAM"
If Cells(i,2)=7 Then MsgBox "TAMAM"
If Cells(i,2)=8 Then MsgBox "TAMAM"
If Cells(i,2)=9 Then MsgBox "TAMAM"
If Cells(i,2)=10 Then MsgBox "TAMAM"
If Cells(i,2)=11 Then MsgBox "TAMAM"
If Cells(i,2)=12 Then MsgBox "TAMAM"
End If
Next
End Sub[/vb:1:a9c3c155c1]

if komutu hakkında ayrıntılı bilgi için dershanemize göz atın...

If Then Else Elseif, Select Case
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sheets("TERKİN").Select
For i = 2 To Cells(65536, 2).End(xlUp).Row
For b = 1 To 12
If Cells(i, 2) = TextBox13.Text And Cells(i, 1) = b And Cells(i, 6) = "" And Cells(i, 7) <> "" Then MsgBox "TAMAM"
Next: Next
End Sub

Sayın Leventm ve isakarakuş bu kodu denedim ama olmadı benim amacım a sütününda 1 den 12 ye kadar olan sıra numarasının yanındaki B sütünunda bulunan vergi numaraları ile textbox13 e girdigim numara ile kontrol edip aynı ise yine aynı satırdaki a sıra numarasının bulunduğu f sütünün ilgili satırın boş olması ve diğer bir koşulda g sütününün ilgili satırının (yani hizasındaki) dolu olması halinde MsgBox"TAMAM" mesaj vermesini istiyorum.
1. koşul A sütününda 1 den 12 ye kadar olan satırları bulacak
2. koşul textbox13 e girdiğim vergi numarası ile B sütünunda ilgili satırı bulacak
3.koşul F sütünunun ilgili satırı "BOÞ" olacak
4. koşul ise G sütununun ilgili satırı "DOLU" olacak
Bütün bu koşulları 1 den 12 ye kadar yapacak eğer tamamı uyarsa ekrana mesaj gelecek aksi takdirde mesaj gelmesine gerek yok taki şart oluşana kadar bekliyecek
ilginiz için teşekkür eder çalışmalarınızda başarılar dilerim

BİLGİ PAYLAÞTIKÇA ÇOÐALIR..... SAYGILARIMLA
 
Katılım
3 Mart 2005
Mesajlar
571
Excel Vers. ve Dili
Excel 2000 Ing.
sorunuz tam olarak anlayamıyorum,,

anladığım şu ?
b sutunundan vergi numarası arattırılacak, eğer bulunursa,
a sutununun derinin 1 ile 12 arasında oması kontrol edilecek, eğer doğru değer çıkar ise
f sutununun boş olması, ve g sutununun dolu olması koşulu aranacak eğer doğru değer çıkar ise tamam mesajı verilecek

doğru mu anlamışım?

yada bir dosya gönderin inceleyelim.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
LÜTFEN EKLİ DOSYAYI İNCELERMİSİNİZ.?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin. Kod dosyanıza göre hazırlanmıştır.

[vb:1:44057a2e2e]Sub kontrol()
For a = 2 To Cells(65536, 1).End(xlUp).Row
If Cells(a, 6) <> "" And Cells(a, 7) = "" Then MsgBox "TAMAM"
Next
End Sub[/vb:1:44057a2e2e]
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Leventm aşağıda yazmış olduğunuz kodu denedim yanlız sorunumu çözemedim. doğrusu ben tam olarak anlatamadım. özür dileyelerek konuyu tekrar açıklamak istiyorum.

UserForm üzerinde 1 adet TextBox var 1 adette CommontButon var. Textbox yazdığım vergi numarasını veri sayfasının B sütünunda bulacak A sütununda sıra numarası var (ANCAK GİRİLEN VERGİ NUMARASI DEÐİÞTİKÇE SIRA NUMARASIDA DEÐİÞMEKTE)
öRNEK;
A SÜTÜNU B SÜTÜNU C SÜTÜNU D SÜTÜNU F SÜTUNU G SÜTUNU
SIRA NO VERGİ NO ADI SOYADI DÃ?NEMİ
1 7777777 ONGUN
2 7777777 ONGUN
3 7777777 ONGUN
1 5555555 LEVENTM
2 5555555 LEVENTM
3 5555555 LEVENTM
4 5555555 LEVENTM
1 8888888 İSAKARAKUÞ
2 8888888 İSAKARAKUÞ
4 7777777 ONGUN
12 7777777 ONGUN

şeklinde "VERİ" sayfasında bilgiler olacak DİKKAT ETTİÐİNİZ GİBİ SIRA NUMARASI VERGİ NUMARASI DEÐİÞTİKÇE DEÐİÞMEKTEDİR. (Ã?NEMLİ)
Buna göre; benim yapmak istediğim textbox1`e girdiğim vergi numarasını B sütununda bulacak aynı vergi numarasının aynı satırında bulunan A sütunundaki 1.sıra numarayı bulduğunda satırın F sütunun boş olup olmadığını G sütunununda dolu olup olmadığını kontrol edecek, aramayı devam ettirecek bu defa A sütununda 2.sıra numarasını arayacak (aynı vergi numarasının karşısındaki) bu kontrol 12. sıra numarasına kadar odevam edecek;
Fark ettiğiniz gibi A sütununda, B sütununda bulunan her vergi numarasına ait 1,2,3,4,5,6,7,8,9,10,11,12 adet sıra numarası bulunmaktadır. Yani her bir vergi numarasının 1 den 12 ye kadar 12 adet sıra numarası olacak, bu haliyle konuyu tekrar inceler ve bana yardımcı olursanız sevinirim. Çalışmalarınızda Başarılar Dilerim.
H A Y A T G Ü Z E L D İ RRRR. YAÞAMASINI BİLENE !
Sub kontrol()
For a = 2 To Cells(65536, 1).End(xlUp).Row
If Cells(a, 6) <> "" And Cells(a, 7) = "" Then MsgBox "TAMAM"
Next
End Sub
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
LÜTFEN YARDIMCI OLURMUSUNUZ. BİR TÜRLÜ ÇÃ?ZEMEDİM.
 
Üst