KODLARI KISALTMAK İSTİYORUM AMA NASIL?

Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
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.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Lütfen yardımcı olurmusunuz.? Teşekkürler.
 

Hüseyin

Administrator
Yönetici
Admin
Katılım
2 Haziran 2004
Mesajlar
3,541
Excel Vers. ve Dili
Excel 2010 - Türkçe
Bu kodları daha kısa bir şekilde yazmak mümkün mü?.
Sayın Ongun,
forumda genelde somut sorular sorulup somut cevaplar verilmeye çalışılıyor.
Sizinki daha çok sınav sorusu gibi olmuş. :lol:

Bu yüzden yardım almak için bence siz kodları sadeleştrmeye başlayın takıldığınız yerde tek onunla ilgili soru sorun.

Bu şekilde diğer arkadaşlarında konuya daha çabuk girebileceğine inanıyorum.

Saygılar
:hey:
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sizinki daha çok sınav sorusu gibi olmuş. :lol:

Bu yüzden yardım almak için bence siz kodları sadeleştrmeye başlayın takıldığınız yerde tek onunla ilgili soru sorun.

Bu şekilde diğer arkadaşlarında konuya daha çabuk girebileceğine inanıyorum.

Saygılar
:hey:[/quote]

Sayın Hüseyin bey, ben kodları sadeleştirmeye çalıştım ama başarılı olamadım. İlginiz için teşekkürler. Her şey gönlünüzce olsun. :D

BİLGİ PAYLAÞTIKÇA ÇOGALIR.
 
Üst