- 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.
Mod fonksiyonunun makro karşılığını araştırıken bir sitede bulduğum bilgiyi paylaşmak istedim.
Bu arada kendimde kısaca uygulama kodu yazdımMerhaba 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) <> 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 '<--Eğer tam bölünüyorsa
asal = False '<--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/
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: