- Katılım
- 15 Mart 2005
- Mesajlar
- 176
- Excel Vers. ve Dili
- office 2016 türkçe
Merhabalar dostlarım uzun bir aradan sonra tekrar aranızda olmak benim için büyük bir mutluluk. öncelikle tüm dostlarıma çalışmalarında başarılar dilerim. benim bu seferki sorunum şu bir Userform üzerinde 26 adet combobox ım var ve bunlar stok kartlarımı çağırıyorlar
Private Sub UserForm_Initialize()
On Error Resume Next
Dim i As Integer
For i = 1 To 26
frmirsaliye.Controls("mal" & i).RowSource = "DATA!A2:A1500"
frmirsaliye.Controls("birim" & i).RowSource = "DATA!F2:F15"
Next i
sirketadi.RowSource = "CARİLİSTE!B2:B500"
End Sub
yukarıdaki yazılımla sayfadan bilgileri alıyorlar daha sonra aşağıdaki yazılımlada textbox lara bilgi alıyorlar.
Private Sub mal1_Click()
Set RID = Sheets("DATA").[A:A].Find(mal1, LookAt:=xlWhole)
If Not RID Is Nothing Then
cins1.Value = Sheets("DATA").Cells(RID.Row, 2)
tur1.Value = Sheets("DATA").Cells(RID.Row, 3)
aks1.Value = Sheets("DATA").Cells(RID.Row, 4)
End If
Set RID = Nothing
End Sub
Private Sub mal2_Click()
Set RID = Sheets("DATA").[A:A].Find(mal2, LookAt:=xlWhole)
If Not RID Is Nothing Then
cins2.Value = Sheets("DATA").Cells(RID.Row, 2)
tur2.Value = Sheets("DATA").Cells(RID.Row, 3)
aks2.Value = Sheets("DATA").Cells(RID.Row, 4)
End If
Set RID = Nothing
End Sub
..
..
..
..
yukarıdaki yazılımı 26 kere yazmak zorunda kalıyorum. Initialize olayındaki gibi bu yazılımlarıda kısaltma şansım varmı yani Click olayını 26 kere değilde bir kerede yazmamız mümkünmü.
Teşekkürler
Private Sub UserForm_Initialize()
On Error Resume Next
Dim i As Integer
For i = 1 To 26
frmirsaliye.Controls("mal" & i).RowSource = "DATA!A2:A1500"
frmirsaliye.Controls("birim" & i).RowSource = "DATA!F2:F15"
Next i
sirketadi.RowSource = "CARİLİSTE!B2:B500"
End Sub
yukarıdaki yazılımla sayfadan bilgileri alıyorlar daha sonra aşağıdaki yazılımlada textbox lara bilgi alıyorlar.
Private Sub mal1_Click()
Set RID = Sheets("DATA").[A:A].Find(mal1, LookAt:=xlWhole)
If Not RID Is Nothing Then
cins1.Value = Sheets("DATA").Cells(RID.Row, 2)
tur1.Value = Sheets("DATA").Cells(RID.Row, 3)
aks1.Value = Sheets("DATA").Cells(RID.Row, 4)
End If
Set RID = Nothing
End Sub
Private Sub mal2_Click()
Set RID = Sheets("DATA").[A:A].Find(mal2, LookAt:=xlWhole)
If Not RID Is Nothing Then
cins2.Value = Sheets("DATA").Cells(RID.Row, 2)
tur2.Value = Sheets("DATA").Cells(RID.Row, 3)
aks2.Value = Sheets("DATA").Cells(RID.Row, 4)
End If
Set RID = Nothing
End Sub
..
..
..
..
yukarıdaki yazılımı 26 kere yazmak zorunda kalıyorum. Initialize olayındaki gibi bu yazılımlarıda kısaltma şansım varmı yani Click olayını 26 kere değilde bir kerede yazmamız mümkünmü.
Teşekkürler