Kullanıcı, aynı kullanıcı formundaki başka bir liste kutusunun değerini değiştirdiğinde dinamik olarak değiştirmek için kullanıcı formundaki bir liste kutusunun değerini nasıl alabilirim. Bana sorun veren ana kısım lstMonth. LstMonth değeri, ilk liste kutusunda gösterilecek farklı sayfalardaki verilerle ilişkilendirilen aylara eşit olmalıdır. Formların ve verilerin bir resmini sunacağım, böylece bunların hepsi daha da arttı. Çalışma sayfaları ile dinamik olarak değiştirmek için bir liste kutusunun değerini alma
Kod
formu açık dolgu üzerindeOption Explicit
Private Sub cmdCalc_Click()
'declare variables and assign address to rngData variable
Dim strId As String, intRow As Integer, intNumSales As Integer, curSales As Currency
Dim rngData As Range
Set rngData = Application.Workbooks("t13-ex-e4d.xls").Worksheets("jan").Range("a3").CurrentRegion
'assign selected list box item to strId variable
strId = lstId.Value
'locate first occurrence of ID
intRow = 2
Do Until rngData.Cells(RowIndex:=intRow, columnindex:=4).Value = strId
intRow = intRow + 1
Loop
'accumulate and count salesperson's sales, stop when loop encounters different ID
Do While rngData.Cells(RowIndex:=intRow, columnindex:=4).Value = strId
curSales = curSales + rngData.Cells(RowIndex:=intRow, columnindex:=3).Value
intNumSales = intNumSales + 1
intRow = intRow + 1
Loop
'display appropriate amount
If optTotal.Value = True Then
lblAnswer.Caption = Format(expression:=curSales, Format:="currency")
Else
lblAnswer.Caption = Format(expression:=curSales/intNumSales, Format:="currency")
End If
End Sub
Private Sub cmdCancel_Click()
'close custom dialog box
Unload frmSalesCalc
End Sub
Private Sub UserForm_Initialize()
lstMonth.Value = Application.Workbooks("T13-EX-E4D.xls").ActiveSheet.Range("b3").CurrentRegion
End Sub
Soruyu gerçekten anlamadım, ay liste kutusunda ne olmalı? tüm aylar ya da bir satış elemanının satış yaptığı tüm aylar var mı? –
Ay listesi kutusu, çalışma kitabındaki tüm çalışma sayfalarının adları ile aynı olmalıdır. Şu anda 3 tane var (Feb, Mar, April) Ancak birileri Mayıs'ı ekleyecek olsaydı, otomatik olarak liste kutusuna koyması gerekirdi. Bu bir kez çalıştıktan sonra liste kutusunun sol tarafına, seçili çalışma sayfasındaki satış kimliğine dönmesi gerekir. Umarım bu yardımcı olur! –