کپشن های وابسته

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • majid534

    • 2015/08/04
    • 11

    پرسش کپشن های وابسته

    سلام اساتید گرامی
    بنده تجربه کافی جهت کار با vba رو ندارم، ممنون میشم اگر سوالات رو یکم قابل درک تر جواب بدید.

    یک فرم آماده شده
    داخل فرم دو تا کمبو باکس ...
    کمبو باکس اول سال ها رو نشنون میده
    کمبو باکس دوم ماه های سال رو نشون میده.
    سوال اول اینه که چطور میتونم کمبو باکس دوم رو به اولی وابسته کنم؟
    یعنی اگر سال 1395 انتخاب شد بعضی از ماه ها رو نشون بده و اگر 1396 انتخاب شد بعضی دیگه از ماه ها رو نشون بده؟

    سوال زیاد دارم
    واسه اینکه گیج نشم یکی یکی میپرسم.
    ممنون میشم اهل فن به داد ما برسن
  • Ali Parsaei
    مدير تالارتوابع اکسل

    • 2013/11/18
    • 1522
    • 71.67

    #2
    سلام،
    مي توانيد اطلاعاتي که مي خواهيد در کمبوبکس اول نشان داده شود را در يک ستون درج نماييد فرضا" سل A1 تا A20
    در اين صورت مي توانيد با يک کد در موقع باز شدن فرم مقادير A1 تا A20 را در کمبوبکس يک بارگيري نماييد :
    کد PHP:
    Private Sub UserForm_Activate()
    Dim D As Range
    For Each D In Range("A1:A20")
    ComboBox1.AddItem (D)
    Next
    End Sub 
    حال به ازاي هر آيتمي از کمبوبکس يک مي خواهيم مقادير ثانويه اي را در کمبوبکس دوم بارگيري کنيم.
    براي اين کار مي توانيم مقادير ثانويه را جلوي هر يک از خانه هاي A1 تا A20 در ستونهاي بعدي بنويسيم. به فرض مقاديري که به ازاي مقدار سل A1 مي خواهيم در کمبوبکس دوم بارگيري شود را در سل هاي B1 و C1 و D1 و E1 و .... مي نويسيم و مقاديري که به ازاي مقدار سل A2 مي خواهيم در کمبوبکس دوم بارگيري شود را در سل هاي B2 و C2 و D2 و E2 و .... مي نويسيم.

    Click image for larger version

Name:	COMBO.JPG
Views:	1
Size:	50.9 کیلو بایت
ID:	133505

    حال کد زير را براي کمبوبکس يک به کار مي بريم:
    (البته کد فقط براي 4 مقدار تا ستون E نوشته شده و شما مي توانيد آن را بيشتر گسترش دهيد)
    کد PHP:
    Private Sub ComboBox1_Change()
    Dim C As Range
    Dim K 
    As Integer
    ComboBox2
    .Clear
    For Each C In Range("A1:A20")
    If 
    ComboBox1.Text Then
    2
    Do While 6
    ComboBox2
    .AddItem (Cells(C.RowK).Value)
    1
    Loop
    End 
    If
    Next
    End Sub 
    [SIGPIC][/SIGPIC]

    کامنت

    چند لحظه..