Kod Sadeleştirme

Katılım
15 Aralık 2008
Mesajlar
166
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

Moderatör
Yönetici
Katılım
15 Mart 2005
Mesajlar
29,328
Excel Vers. ve Dili
OFFICE 2019 PRO TR
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
166
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

Moderatör
Yönetici
Katılım
15 Mart 2005
Mesajlar
29,328
Excel Vers. ve Dili
OFFICE 2019 PRO TR
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_34

Destek Ekibi
Destek Ekibi
Katılım
4 Mayıs 2007
Mesajlar
3,392
Excel Vers. ve Dili
OFİS 2013 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
166
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