• DİKKAT

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

For next döngüsünde tek veya çift tamsayı değişkeni kullanımı

Katılım
18 Ağustos 2009
Mesajlar
202
Excel Vers. ve Dili
Excel 365 - Türkçe
Aşağıdaki şekilde bir kod yazdığımda i değişkeninin
tek tamsayı veya çift tamsayı olması gereken durumlar
olabiliyor. Bunun için nasıl bir kod kullanmalıyım

Dim i As Integer
For i = 1 To 100
Range("A1").Select
ActiveCell.FormulaR1C1 = i
Next i
 
Merhabe,

i değerinin artışını mı soruyorsunuz? yani bazen Birer birer, bazen ikişer ikişer artsın diyorsanız eğer :

Kod:
For i = 1 To 100 Step 2

Step (adım) değerini siz belirleyebilirsiniz 1, 2, 3, 4 vs gibi
 
i değerinin hep tek sayı olmasını veya çift olmasını istiyorum.
 
İki şart için bir örnek verir misiniz?

Şöyle de düşünmek olası.

For i = 2 to 100 step 2 --> 2 den başlar 2'şer 2'şer artarak gider
For i = 1 to 100 step 1 --> 1 den başlar 1'er 1'er artarak gider.

bu bilgiler işinize yarar mı?

Yaramazsa While döngüsü de kurulabilir. Ama örnek belirtin.
 
For i = 2 to 100 step 2 (i sayısı hep çift sayıdır)
For i = 1 to 100 step 2 (i sayısı hep tek sayıdır)

bu şekilde tamam sıkıntı yok. ancak i sayısının kaçtan başlayacağı belli değilse başlangıç değişkense bu durumda sıkıntı olur.
yani ben şunu soruyorum

Dim i As Integer
For i = 1 To 100
dediğimiz zaman bunun anlamı: i sayısı 1'den 100'e kadar devam eden bir tamsayıdır.

bana lazım olan ise anlamı: i sayısı 1'den 100'e kadar devam eden tek tamsayıdır.
i sayısı 1'den 100'e kadar devam eden çift tamsayıdır.
olan bir kod yazmak.

Tek tamsayılar için
Dim i As Integer Single
For i = 1 To 100

Çift tamsayılar için
Dim i As Integer Double
For i = 1 To 100

şeklinde ifade kullanılabilir mi?
 
Merhaba,
Aşağıdaki kodlar işinize yarar mı, deneyiniz.

Sizin örnekte i değeri hep 1'er birer artar.

Single ve Double türkçe düşündüğünüz gibi tek ve çift anlamına gelmez. Onlar veri tipleridir.


Kod:
Sub aa()

    Dim i As Integer
    Dim tc As String
    Dim j As Integer
    
    tc = "Tek"
    
    For i = 1 To 10
    
        If tc = "Tek" Then
            If Application.WorksheetFunction.IsOdd(i) = False Then i = i + 1
        Else
            If Application.WorksheetFunction.IsEven(i) = False Then i = i + 1
        End If
        
        j = j + 1
        Cells(j, "A") = i
        
    Next i
    
End Sub
 
Alternatif;
Tek sayı için;
Kod:
Range("A1:A20").Clear
For i = 1 To 20
    If i Mod 2 = 1 Then Cells(i, "A").Value = i
Next i
Çift sayı için;
Kod:
Range("A1:A20").Clear
For i = 1 To 20
    If i Mod 2 = 0 Then Cells(i, "A").Value = i
Next i
 
Son düzenleme:
Geri
Üst