Vba mod fonksiyonu hakkında bilgi

mersilen

Destek Ekibi
Destek Ekibi
Katılım
31 Aralık 2009
Mesajlar
1,103
Excel Vers. ve Dili
excel 2007 türkçe
Excel Vers. ve Dili Ofis 2003
Merhabalar
Mod fonksiyonunun makro karşılığını araştırıken bir sitede bulduğum bilgiyi paylaşmak istedim.
Merhaba arkadaşlar, mod fonksiyonu bilindiği üzere önemli bir matematik konusu olan Modüler Aritmetik'in kısaltılmış biçimidir. Bu konunun neyi amaçladığı yönünde fazla detaylı bilgiye girmeden şunu bilmek yeterli, modüler aritmetik bir sayının diğer sayıya bölünmesinden kalan sayıları dikkate alır.
Hazırladığım programda bu komuttan yararlandım. Bu komutun yazılış biçimi şöyledir:


(a mod b) = c



Burada "a" bir sayı, "b" diğer sayı, "c" ise "a" nın "b" ile bölümünden kalan sayıdır. Bu ifade programda kullandığım gibi çeşitli döngülerle şartlandırılabilir. Örneğin 1'den 10'a kadar olan sayılardan tek olanları bulan bir program olabilir. Form üzerine 1 adet list box ve formu çift tıklayıp aşağıdaki kodu yapıştırın.


Dim i as Integer
For i = 1 To 10
If (i Mod 2) &lt&gt 0 Then
List1.AddItem i
End If
Next



Şimdi mod fonksiyonunu kullanarak benzer işlemleri yapan programı hazırlayalım. Gerekli malzeme 1 adet ListBox, 2 adet TextBox, 1 adet CommandButton, 3 adet Label, 1 adet Frame ve bu Frame'nin üzerine 3 adet OptionButton 1 adet ProgressBar. Malzemeleri form üzerine aşağıdaki gibi yerleştirebilirsiniz.


Formda görüldüğü gibi button üzerine resim isterseniz yapıştırabilirsiniz. Şimdi ise aşağıdaki kodu General Declarations kısmına yapıştırın.


Private Sub Command1_Click()

Dim i, j As Integer
On Local Error Resume Next
Label1.Visible = True
ProgressBar1.Visible = True
ProgressBar1.Min = 0
ProgressBar1.Max = Val(Text2)
'-------------------------------------------------
If Option1.Value = True Then    'Tek sayılar sekmesi seçili ise
List1.Clear
For i = Val(Text1) To Val(Text2)
If (i Mod 2) <> 0 Then
List1.AddItem i
ProgressBar1.Value = i
End If
Next
End If
'-------------------------------------------------
If Option2.Value = True Then    'Çift sayılar sekmesi
List1.Clear
For i = Val(Text1) To Val(Text2)
If (i Mod 2) = 0 Then
List1.AddItem i
ProgressBar1.Value = i
End If
Next
End If
'--------------------------------------------------
If Option3.Value = True Then   'Asal sayı sekmesi
List1.Clear
ProgressBar1.Min = 0
ProgressBar1.Max = Val(Text2) - Val(Text1)
For i = Val(Text1) To Val(Text2)
asal = True
ProgressBar2.Min = 2
ProgressBar2.Max = i
ProgressBar1.Value = i - Val(Text1)
For j = 2 To i - 1
ProgressBar2.Value = j
DoEvents
If (i Mod j) = 0 Then '&lt--Eğer tam bölünüyorsa
asal = False '&lt--Asal değildir
Exit For
End If
Next
If asal Then List1.AddItem i
Next
End If
End Sub

Private Sub Form_Load()
ProgressBar1.Visible = False
Label1.Visible = False
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
ProgressBar1.Visible = False
Label1.Visible = False
End Sub



Şimdi artık run (F5) ve program hazır TextBox1 ile TextBox2 arasındaki sayılar için tek olanlar, çift olanlar ve asal olanları bulan operatörünüz sizi bekliyor. Bütün programcı arkadaşlara başarılar diliyorum.

Mustafa Aygün
http://www.bilx.net/form/visual-basic/mod-fonksiyonu-kullanimi-730/
Bu arada kendimde kısaca uygulama kodu yazdım
Kod:
Sub mm()
For i = 10 To 20
 Cells(i, 1) = i
 Cells(i, 2) = i Mod 10
 Next i
End Sub
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,254
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Forumda MOD fonksiyonu ile ilgili örnek kodlar bulunmaktadır.

Bende örnek olması açısından mod fonksiyonu kullanarak satır renklendirme kodu hazırladım. Farklı sorgular kurgulayarak değişik kodlar yazılabilir. Örnek dosyayı inceleyiniz.

Uygulanan kod;

Kod:
Option Explicit
 
Sub Düğme1_Tıklat()
    Dim X As Integer
    
    For X = 1 To 10000
        If X Mod 2 = 0 Then
            Cells(X, 1).Interior.ColorIndex = 6
        End If
    Next
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Ekli dosyalar

Üst