Dizi Problemi

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
204
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
Kod:
dim i as integer

konum_1 = 0
konum_2 = 64
konum_3 = 128
konum_4 = 224
konum_5 = 288

For i = 0 To ListBox1.ListCount - 1

If ListBox1.Column(1, i) = "1" Then  '1.sorgu

hassas = "^FO" & d1
Else
hassas = ""
End If

If ListBox1.Column(2, i) = "1" Then '2.sorgu
yuz_yukari = "^FO" & d2
Else
yuz_yukari = ""
End If

If ListBox1.Column(3, i) = "1" Then '3.sorgu
kirilir1 = "^FO" & d3
Else
kirilir1 = ""
End If

If ListBox1.Column(4, i) = "1" Then '4.sorgu
geri_donusum = "^FO" & d4
Else
geri_donusum = ""
End If

If ListBox1.Column(5, i) = "1" Then  '5.sorgu
yagmur1 = "^FO" & d5
Else
yagmur1 = ""
End If

next

Yukarıdaki kod'da if... ifadeleri doğruysa d1.... d5 arası değerlerin sıra ile konum1... konum5 'ten gelmesini istiyorum.

Yani şöyle 1.sorgu=doğru; 2.sorgu yanlış; 3.sorgu doğru; '4.sorgu doğru; '5.sorgu yanlış şeklinde ise d1=0, d3=64, d4 =128 olarak değer almalı, kısaca sonucu doğru olan sorgu konum sırasındaki değeri alsın istiyorum. Diziler ile yapıldığını biliyorum ama çözemedim.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Sabit değerlerse aşağıdaki gibi kullanın.
Kod:
Dim i As Integer
    
    For i = 0 To ListBox1.ListCount - 1
        
        hassas = ""
        yuz_yukari = ""
        kirilir1 = ""
        geri_donusum = ""
        yagmur1 = ""
        
        If ListBox1.Column(1, i) = "1" Then hassas = "^FO0"
        If ListBox1.Column(2, i) = "1" Then yuz_yukari = "^FO64"
        If ListBox1.Column(3, i) = "1" Then kirilir1 = "^FO128"
        If ListBox1.Column(4, i) = "1" Then geri_donusum = "^FO224"
        If ListBox1.Column(5, i) = "1" Then yagmur1 = "^FO288"
        
    Next
 

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
204
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
Öncelikle teşekkür ederim. Bu şekilde değil istediğim. Böyle yazarsam örneğin
ListBox1.Column(1, i) = "1" doğru olsa ve ListBox1.Column(2, i) ,ListBox1.Column(3, i) = "1" olmasa bile If ListBox1.Column(4, i) = "1" Then geri_donusum = "^FO224" değerini alıyor. Alması gereken konum sırasına göre "^FO64" olmalı
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,653
Excel Vers. ve Dili
Pro Plus 2021
Denenmedi...
Kod:
    Dim i As Integer
    degerler = Array("^FO0", "^FO64", "^FO128", "^FO224", "^FO288")
    For i = 0 To ListBox1.ListCount - 1
        hassas = ""
        yuz_yukari = ""
        kirilir1 = ""
        geri_donusum = ""
        yagmur1 = ""
        say = 0
        If ListBox1.Column(1, i) = "1" Then hassas = degerler(say): say = say + 1
        If ListBox1.Column(2, i) = "1" Then yuz_yukari = degerler(say): say = say + 1
        If ListBox1.Column(3, i) = "1" Then kirilir1 = degerler(say): say = say + 1
        If ListBox1.Column(4, i) = "1" Then geri_donusum = degerler(say): say = say + 1
        If ListBox1.Column(5, i) = "1" Then yagmur1 = degerler(say)
    Next
 

ragnorak

Altın Üye
Katılım
4 Haziran 2016
Mesajlar
204
Excel Vers. ve Dili
Excel 2021
Altın Üyelik Bitiş Tarihi
03-09-2026
Sorunsuz çalıştı. Teşekkür ederim. Elinize sağlık.
 
Üst