KODLARI KISALTMAK ÃSTÃYORUM AMA NASIL?
Private Sub ComboBox1_Change()
Sheets("İSTATİSTİK").Select
Dim Yüzler As String
Dim Onlar As String
Dim Besler As String
Dim Donem As String
Dim a As Integer, say As Integer, ffc As Integer, ffd As Integer, ffe As Integer
Dim bb As Integer, cc As Single, dd As Single, ee As Single, ff As Integer
Dim bbc As Single
Dim bbd As Single
Dim bbe As Single
ReDim Adlar(100)
Set s1 = Sheets("İSTATİSTİK")
Set s4 = Sheets("Sayfa3")
For a = 2 To s4.Cells(65536, 2).End(xlUp).Row
If Year(s4.Cells(a, 7)) & " " & UCase(Format(s4.Cells(a, 7), "mmmm")) = ComboBox1.Value And s4.Cells(a, 5).Value <= CCur(UserForm10.TextBox1.Value * 1) Then
For say = 1 To abc
If Adlar(say) = s4.Cells(a, 2) And s4.Cells(a, 5).Value <= CCur(UserForm10.TextBox1.Value * 1) Then GoTo SIFIR
Next say
If say = abc + 1 Then
Adlar(say) = s4.Cells(a, 2)
abc = abc + 1
End If
SIFIR:
pp = pp + s4.Cells(a, 5).Value
hh = hh + 1
If s4.Cells(a, 5).Value <= CCur(TextBox1.Value * 1) Then
bbc = bbc + 1
ffc = bbf + 1
End If
End If
Next a
For i = 11 To 11
Cells(i, 5) = abc
Cells(i, 6) = hh
Next i
Cells(11, 7) = Round(pp, 2)
Set s1 = Sheets("İSTATİSTİK")
Set s5 = Sheets("PRİM")
For a = 2 To s5.Cells(65536, 2).End(xlUp).Row
If Year(s5.Cells(a, 6)) & " " & UCase(Format(s5.Cells(a, 6), "mmmm")) = ComboBox1.Value Then
For say = 1 To GG
If Adlar(say) = s5.Cells(a, 2) Then GoTo ÜÇ
Next say
If say = GG + 1 Then
Adlar(say) = s5.Cells(a, 2)
GG = GG + 1
End If
ÜÇ:
UU = UU + s5.Cells(a, 11).Value
jj = jj + 1
If s5.Cells(a, 11).Value > 0 Then
bbc = bbc + 1
ffc = bbf + 1
End If
End If
Next a
For i = 13 To 13
Cells(i, 5) = GG
Cells(i, 6) = jj
Next i
Cells(13, 7) = Round(UU, 2)
Set s1 = Sheets("İSTATİSTİK")
Set s6 = Sheets("KENDİSİ")
For a = 2 To s6.Cells(65536, 2).End(xlUp).Row
If Year(s6.Cells(a, 6)) & " " & UCase(Format(s6.Cells(a, 6), "mmmm")) = ComboBox1.Value Then
For say = 1 To aü
If Adlar(say) = s6.Cells(a, 2) Then GoTo DÃ?RT
Next say
If say = aü + 1 Then
Adlar(say) = s6.Cells(a, 2)
aü = aü + 1
End If
DÃ?RT:
tt = tt + s6.Cells(a, 11).Value
pa = pa + 1
If s6.Cells(a, 11).Value > 0 Then
bbc = bbc + 1
ffc = bbf + 1
End If
End If
Next a
For i = 14 To 14
Cells(i, 5) = aü
Cells(i, 6) = pa
Next i
Cells(14, 7) = Round(tt, 2)
End Sub
Private Sub UserForm_Initialize()
For yıl = 2005 To 2006
For b = 1 To 12
ComboBox1.AddItem yıl & " " & UCase(Format("01." & b & ".2005", "mmmm"))
Next
Next
End Sub
Exelans arkadaşımız tarafından yazılan yukarıdaki kodları kendi proğramıma uyarladım ve istatistik sayfasına bilgileri getire biliyorum. Ancak, dikkat ettiğiniz gibi birden fazla sayfadan farklı koşullardaki bilgileri seçtiriyorum, dolayısıyla çok uzun bir kodlama oldu.
Bu kodları daha kısa bir şekilde yazmak mümkün mü?. Yardımcı olursanız sevinirim. Ãimdiden teşekkür ederim. Selamlar.
Private Sub ComboBox1_Change()
Sheets("İSTATİSTİK").Select
Dim Yüzler As String
Dim Onlar As String
Dim Besler As String
Dim Donem As String
Dim a As Integer, say As Integer, ffc As Integer, ffd As Integer, ffe As Integer
Dim bb As Integer, cc As Single, dd As Single, ee As Single, ff As Integer
Dim bbc As Single
Dim bbd As Single
Dim bbe As Single
ReDim Adlar(100)
Set s1 = Sheets("İSTATİSTİK")
Set s4 = Sheets("Sayfa3")
For a = 2 To s4.Cells(65536, 2).End(xlUp).Row
If Year(s4.Cells(a, 7)) & " " & UCase(Format(s4.Cells(a, 7), "mmmm")) = ComboBox1.Value And s4.Cells(a, 5).Value <= CCur(UserForm10.TextBox1.Value * 1) Then
For say = 1 To abc
If Adlar(say) = s4.Cells(a, 2) And s4.Cells(a, 5).Value <= CCur(UserForm10.TextBox1.Value * 1) Then GoTo SIFIR
Next say
If say = abc + 1 Then
Adlar(say) = s4.Cells(a, 2)
abc = abc + 1
End If
SIFIR:
pp = pp + s4.Cells(a, 5).Value
hh = hh + 1
If s4.Cells(a, 5).Value <= CCur(TextBox1.Value * 1) Then
bbc = bbc + 1
ffc = bbf + 1
End If
End If
Next a
For i = 11 To 11
Cells(i, 5) = abc
Cells(i, 6) = hh
Next i
Cells(11, 7) = Round(pp, 2)
Set s1 = Sheets("İSTATİSTİK")
Set s5 = Sheets("PRİM")
For a = 2 To s5.Cells(65536, 2).End(xlUp).Row
If Year(s5.Cells(a, 6)) & " " & UCase(Format(s5.Cells(a, 6), "mmmm")) = ComboBox1.Value Then
For say = 1 To GG
If Adlar(say) = s5.Cells(a, 2) Then GoTo ÜÇ
Next say
If say = GG + 1 Then
Adlar(say) = s5.Cells(a, 2)
GG = GG + 1
End If
ÜÇ:
UU = UU + s5.Cells(a, 11).Value
jj = jj + 1
If s5.Cells(a, 11).Value > 0 Then
bbc = bbc + 1
ffc = bbf + 1
End If
End If
Next a
For i = 13 To 13
Cells(i, 5) = GG
Cells(i, 6) = jj
Next i
Cells(13, 7) = Round(UU, 2)
Set s1 = Sheets("İSTATİSTİK")
Set s6 = Sheets("KENDİSİ")
For a = 2 To s6.Cells(65536, 2).End(xlUp).Row
If Year(s6.Cells(a, 6)) & " " & UCase(Format(s6.Cells(a, 6), "mmmm")) = ComboBox1.Value Then
For say = 1 To aü
If Adlar(say) = s6.Cells(a, 2) Then GoTo DÃ?RT
Next say
If say = aü + 1 Then
Adlar(say) = s6.Cells(a, 2)
aü = aü + 1
End If
DÃ?RT:
tt = tt + s6.Cells(a, 11).Value
pa = pa + 1
If s6.Cells(a, 11).Value > 0 Then
bbc = bbc + 1
ffc = bbf + 1
End If
End If
Next a
For i = 14 To 14
Cells(i, 5) = aü
Cells(i, 6) = pa
Next i
Cells(14, 7) = Round(tt, 2)
End Sub
Private Sub UserForm_Initialize()
For yıl = 2005 To 2006
For b = 1 To 12
ComboBox1.AddItem yıl & " " & UCase(Format("01." & b & ".2005", "mmmm"))
Next
Next
End Sub
Exelans arkadaşımız tarafından yazılan yukarıdaki kodları kendi proğramıma uyarladım ve istatistik sayfasına bilgileri getire biliyorum. Ancak, dikkat ettiğiniz gibi birden fazla sayfadan farklı koşullardaki bilgileri seçtiriyorum, dolayısıyla çok uzun bir kodlama oldu.
Bu kodları daha kısa bir şekilde yazmak mümkün mü?. Yardımcı olursanız sevinirim. Ãimdiden teşekkür ederim. Selamlar.