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
Altın Üyelik Bitiş Tarihi
14/06/2022
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
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,524
Excel Vers. ve Dili
Ofis 365 Türkçe
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
 
Katılım
18 Ağustos 2009
Mesajlar
202
Excel Vers. ve Dili
Excel 365 - Türkçe
Altın Üyelik Bitiş Tarihi
14/06/2022
i değerinin hep tek sayı olmasını veya çift olmasını istiyorum.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,524
Excel Vers. ve Dili
Ofis 365 Türkçe
İ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.
 
Katılım
18 Ağustos 2009
Mesajlar
202
Excel Vers. ve Dili
Excel 365 - Türkçe
Altın Üyelik Bitiş Tarihi
14/06/2022
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?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,524
Excel Vers. ve Dili
Ofis 365 Türkçe
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
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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:
Üst