Kod Sadeleştirme

Katılım
15 Aralık 2008
Mesajlar
202
Excel Vers. ve Dili
excel 2010
Merhaba; aşağıdaki kodlar nasıl sadeleştirilebilir?

Aynı Değeri alacak Comboboxlar:
sonBMa = Sheets("Malzeme").Cells(Rows.Count, "B").End(3).Row
ComboBox36.RowSource = "Malzeme!B2:B" & sonBMa
ComboBox1242.RowSource = "Malzeme!B2:B" & sonBMa
ComboBox37.RowSource = "Malzeme!B2:B" & sonBMa
ComboBox38.RowSource = "Malzeme!B2:B" & sonBMa
ComboBox1240.RowSource = "Malzeme!B2:B" & sonBMa
ComboBox1244.RowSource = "Malzeme!B2:B" & sonBMa


Aynı Formattaki TextBoxlar
TextBox193 = Format(Date, "dd"".""mm"".""yyyy")
TextBox118 = Format(Date, "dd"".""mm"".""yyyy")
TextBox1224 = Format(Date, "dd"".""mm"".""yyyy")
TextBox1229 = Format(Date, "dd"".""mm"".""yyyy")

Aynı Özellikte Option Butonlar
OptionButton1.Value = True
OptionButton7.Value = True

Aynı Özellikte Labellar
Label186.Visible = False
Label213.Visible = False
ListBox7.Visible = False
ListBox11.Visible = False
Label194.Visible = False
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,398
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kodların sadeleşmesi için genellikle döngü kullanılmaktadır. Bunun içinde nesnelerin ardışık olması büyük avantaj sağlamaktadır.

Sizin paylaştığınız nesne isimleri ardışık olmadığı için döngü kurmak çok mantıklı değildir.
 
Katılım
15 Aralık 2008
Mesajlar
202
Excel Vers. ve Dili
excel 2010
Kodların sadeleşmesi için genellikle döngü kullanılmaktadır. Bunun içinde nesnelerin ardışık olması büyük avantaj sağlamaktadır.

Sizin paylaştığınız nesne isimleri ardışık olmadığı için döngü kurmak çok mantıklı değildir.
Hocam Array kullanabilir miyiz? Kullanırsak nasıl bir yapıda olabilir?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,398
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Mesela ComboBox için kod sadeleştirmesine örnek;

C++:
Private Sub UserForm_Initialize()
    Dim X As Byte, Cmb As Variant, sonBMa As Long
    
    Cmb = Array(36, 1242, 37, 38, 1240, 1244)
    sonBMa = Sheets("Malzeme").Cells(Rows.Count, "B").End(3).Row
    For X = LBound(Cmb) To UBound(Cmb)
        Me.Controls("ComboBox" & Cmb(X)).RowSource = "Malzeme!B2:B" & sonBMa
    Next
End Sub
 

Erdem Akdemir

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,596
Excel Vers. ve Dili
2016 PRO TÜRKÇE-İNG. 64 BİT
1200 tane combobox'ı olan çalışmayı merak ettim.
Ben 3 tane olunca baş edemiyorum.

Bu kadar fazla nesnesi olan userform için classmodule konusu araştırabilirsiniz.
 
Katılım
15 Aralık 2008
Mesajlar
202
Excel Vers. ve Dili
excel 2010
Mesela ComboBox için kod sadeleştirmesine örnek;

C++:
Private Sub UserForm_Initialize()
    Dim X As Byte, Cmb As Variant, sonBMa As Long
   
    Cmb = Array(36, 1242, 37, 38, 1240, 1244)
    sonBMa = Sheets("Malzeme").Cells(Rows.Count, "B").End(3).Row
    For X = LBound(Cmb) To UBound(Cmb)
        Me.Controls("ComboBox" & Cmb(X)).RowSource = "Malzeme!B2:B" & sonBMa
    Next
End Sub
Elinize sağlık Üstadım.
 
Üst