PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ویرایش آیتم های لیست باکس



majidartoor
2014/10/06, 14:38
با سلام به همه ی دوستان
1-تو فایلی که پیوست کردم لیست باکسی داخل فرم اول وجود داره که محتویاتش از شیت گرفته شده.
حالا وقتی یکی از ردیف های لیست باکس رو انتخاب میکنم و گزینه ویرایشو میزنم فرم دوم باز میشه و
میتونم اون ردیفو ویرایش کنم ولی وقتی گزینه ثبت تغییراتو میزنم عمل نمیکنه(البته کدشو خودم نوشتم
که فکر میکنم اشتباهه)،ممنون میشم اگه یه نگاهی به فایل بندازید.
2-همچنین در کنار گزینه ویرایش گزینه حذف هم وجود داره که میخوام با انتخاب یک ردیف از لیست باکس و
زدن دکمه حذف،اون ردیف هم از لیست باکس و هم از مرجع حذف بشه.
http://www.uplooder.net/cgi-bin/dl.cgi?key=0a67e70ec1d43541a5f54dd6ca17c2e8

Ali Parsaei
2014/10/06, 16:55
سلام،
اشکال کار اينجا است که شما مقدارهاي موجود در سطر ها را ملاک قرار مي دهيد در صورتي که اينها متغيير (يا بعضا" تکراري) هستند و نبايد ملاک قرار بگيرند.
شما بايد شماره سطر را از فرم اوليه استخراج کنيد و موقع ثبت دستوري بنويسيد که در شيت برود آن شماره سطر را پيدا کرده و مقادير جديد را در آن جايگزين کند.
البته چون جدولتان از سطر سوم شروع مي شود يک منهاي دو هم بايد در دستور اعمال کنيد.
به عنوان مثال مي توانيد يک TEXTBOX در فرم دوم ايجاد کنيد (مي شود بنام تکست بکس 5) بعد قسمتي از کد فرم اول را اينجوري اصلاح کنيد:

Private Sub CommandButton1_Click()
virayesh.TextBox5.Value = Me.ListBox1.ListIndex + 1
virayesh.TextBox1.Value = Me.ListBox1.List(ListBox1.ListIndex, 0)
virayesh.TextBox2.Value = Me.ListBox1.List(ListBox1.ListIndex, 1)
virayesh.TextBox3.Value = Me.ListBox1.List(ListBox1.ListIndex, 2)
virayesh.TextBox4.Value = Me.ListBox1.List(ListBox1.ListIndex, 3)
virayesh.Show
End Sub
(فقط يک خط به ابتدايش اضافه شده)
و بعد کد دگمه ثبت در فرم دوم را هم اينجوري اصلاح کنيد:

Private Sub CommandButton3_Click()
Dim c As Range
For Each c In Sheet1.Range("c3:fehrest3")
If virayesh.TextBox5.Text = c.Row - 2 Then
c.Value = virayesh.TextBox1.Text
c.Offset(0, 1).Value = virayesh.TextBox2.Text
c.Offset(0, 2).Value = virayesh.TextBox3.Text
c.Offset(0, 3).Value = virayesh.TextBox4.Text
End If
Next
End Sub
بعد VISIBLE آن تکست بکس 5 را هم برابر FALSE بگذاريد که ديده نشود
راجع به حذف رديف ديگه نرسيدم فکر کنم! شايد همين راهنمايي کمک کند که آن را هم بر طرف کنيد

majidartoor
2014/10/06, 17:51
آقای پارسا دست شما درد نکنه ، واقعا نمیدونم چجوری ازتون تشکر کنم، ممنون.
دوستان در مورد سوال دوم اگه چیزی به فکرتون میخوره ممنون میشم بگید.

mokaram
2014/10/07, 07:57
برای قسمت دوم سوالتون :

حذف از لیست باکس (http://forum.exceliran.com/showthread.php/4208-%D9%85%D8%B4%DA%A9%D9%84-%D8%AD%D8%B0%D9%81-%D8%A7%D8%B2-%D9%84%DB%8C%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3?checked=rnd56sec)

حذف داده از لیست باکس (http://forum.exceliran.com/showthread.php/3407-%D8%AD%D8%B0%D9%81-%D9%8A%D9%83-%D9%8A%D8%A7-%DA%86%D9%86%D8%AF-%D8%AF%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-listbox-%D8%A7%D8%B2-%D8%B7%D8%B1%D9%8A%D9%82-%D8%B2%D8%AF%D9%86-%D8%AF%D9%83%D9%85%D9%87-delete)

majidartoor
2014/10/07, 19:32
M r m ممنون مشکل اصلیم حل شد.
یه سوال دیگه داشتم، دوستان با چه کدی میتونم آخرین رکورد لیست باکس رو انتخاب کنم؟فرض کنید یه باتون دارم که با زدنش میخوام آخرین رکورد لیست باکس انتخاب بشه.باتشکر.

Javid Mokhtari
2014/10/16, 21:55
M r m ممنون مشکل اصلیم حل شد.
یه سوال دیگه داشتم، دوستان با چه کدی میتونم آخرین رکورد لیست باکس رو انتخاب کنم؟فرض کنید یه باتون دارم که با زدنش میخوام آخرین رکورد لیست باکس انتخاب بشه.باتشکر.
با سلام.

LB1.Selected(LB1.ListCount - 1) = True