صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 11

موضوع: ساخت مودول؟؟؟

  1. #1


    آخرین بازدید
    2014/12/22
    تاریخ عضویت
    April 2012
    نوشته ها
    90
    امتیاز
    2
    سپاس
    5
    سپاس شده
    6 در 6 پست
    تعیین سطح نشده است

    ساخت مودول؟؟؟

    سلام
    من تو VBA تعدادی فرم ساختم و در هر فرمی یک لیست باکس هست که هر کدوم از لیست باکس ها موارد مثل هم کار میکنن، حالا میخوام دستوراتی که مثلا برای پر کردن لست باکس ها لازمه بنویسم رو یک بار بنویسم و در هر فرمی که لازم بود رجوع کنم بهش.در غیر این صورت در هر فرم باید دستورات تکراری رو مجددا برای هر لیست باکس و هر باتونی که فشار داده میشه بنویسم.
    فکر کنم باید مودول یا کلاس مودول بنویسم ولی نمدونم چجوری :D
    تنها چیزی که در هر فرم تغییر میکنه نام لیست باکسشه که میشه به عنوان متغییر در مودولی که مینویسیم معرفیش کنیم.

    میشه اساتید راهنمایی کنن/؟؟
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.

  2.  

  3. #2


    محصولات کاربر

    یوزرفرم پیشرفته
    آخرین بازدید
    2018/06/18
    تاریخ عضویت
    February 2011
    محل سکونت
    تهران
    نوشته ها
    311
    امتیاز
    1448
    سپاس
    129
    سپاس شده
    560 در 159 پست
    تعیین سطح نشده است

    s.cheraghi به Yahoo ارسال پیام

    RE: ساخت مودول؟؟؟

    سلام دوست عزیز
    نیازی به ماژول کلاس نیست و تا اونجائیکه که من فهمیدم درصورتیکه دقیقا یک کار قرار است انجام بشه، با نوشتن ماژول و اجرای اون مشکلتون حل میشه ولی اگه کارتون فزق میکنه باید کدها برای هر یک از کنترل ها به صورت جداگانه نوشته بشه
    اگه فایل بذارین و یا بیشتر توضیح بدین، امکان کمک بیشتر میشه

  4. #3


    آخرین بازدید
    2023/05/03
    تاریخ عضویت
    January 2012
    محل سکونت
    استان اردبیل / شهرستان پارس آباد (مغان)
    نوشته ها
    1,213
    امتیاز
    2633
    سپاس
    1,399
    سپاس شده
    2,089 در 665 پست
    سطح اکسل
    73.00 %

    Javid Mokhtari به Yahoo ارسال پیام

    RE: ساخت مودول؟؟؟

    نقل قول نوشته اصلی توسط saber2q
    سلام
    من تو VBA تعدادی فرم ساختم و در هر فرمی یک لیست باکس هست که هر کدوم از لیست باکس ها موارد مثل هم کار میکنن، حالا میخوام دستوراتی که مثلا برای پر کردن لست باکس ها لازمه بنویسم رو یک بار بنویسم و در هر فرمی که لازم بود رجوع کنم بهش.در غیر این صورت در هر فرم باید دستورات تکراری رو مجددا برای هر لیست باکس و هر باتونی که فشار داده میشه بنویسم.
    فکر کنم باید مودول یا کلاس مودول بنویسم ولی نمدونم چجوری :D
    تنها چیزی که در هر فرم تغییر میکنه نام لیست باکسشه که میشه به عنوان متغییر در مودولی که مینویسیم معرفیش کنیم.

    میشه اساتید راهنمایی کنن/؟؟
    با سلام و کسب اجازه از اساتید.
    آره،میشه یه همچین کاری کرد:
    تو فرم زیر یک ماژول درست شده و از طریق Call تو فرم ها فراخوانی میشه.
    Call For RepCode

  5. #4


    آخرین بازدید
    2014/12/22
    تاریخ عضویت
    April 2012
    نوشته ها
    90
    امتیاز
    2
    سپاس
    5
    سپاس شده
    6 در 6 پست
    تعیین سطح نشده است

    RE: ساخت مودول؟؟؟

    سلام
    فرض کنید در قسمتی از فرم این کدها جهت بارگذاری اطلاعات لیست باکس وارد شده:
    کد:
    i = 1
    For Each c In Sheet14.Range("b2:b100")
        If c <> "" Then
            ListBox1.ColumnHeads = True
            ListBox1.AddItem
            ListBox1.List(ListBox1.ListCount - 1, 1) = c.Offset(0, 1)
            ListBox1.List(ListBox1.ListCount - 1, 0) = c.Offset(0, 2)
            ListBox1.List(ListBox1.ListCount - 1, 2) = i
        End If
        i = i + 1
    Next
    که این کد مربوط میشه به لیست باکس1 و رنج مذکور اما من میخوام این کدها به همراه نام کنترل لیست باکس و رنجش که مغییر هستن رو در جاهای مختلف فرمهای مختلف استفاده کنم و فقط نام لیست باکس و رنجش رو معرفی کنم به ماکرو...

    با سلام و کسب اجازه از اساتید.
    آره،میشه یه همچین کاری کرد:
    تو فرم زیر یک ماژول درست شده و از طریق Call تو فرم ها فراخوانی میشه.
    Call For RepCode
    ممنون این خیلی خوبه اما همه لیست باکسها باید همنام باشن و رنج هم قابل تغییر نیست، چطور میشه این دو آپشن رو متغییر کنیم؟

  6. #5


    آخرین بازدید
    2022/06/28
    تاریخ عضویت
    May 2010
    محل سکونت
    بلژیک
    نوشته ها
    174
    امتیاز
    108
    سپاس
    0
    سپاس شده
    119 در 53 پست
    تعیین سطح نشده است

    RE: ساخت مودول؟؟؟

    نقل قول نوشته اصلی توسط saber2q
    سلام
    فرض کنید در قسمتی از فرم این کدها جهت بارگذاری اطلاعات لیست باکس وارد شده:
    کد:
    i = 1
    For Each c In Sheet14.Range("b2:b100")
        If c <> "" Then
            ListBox1.ColumnHeads = True
            ListBox1.AddItem
            ListBox1.List(ListBox1.ListCount - 1, 1) = c.Offset(0, 1)
            ListBox1.List(ListBox1.ListCount - 1, 0) = c.Offset(0, 2)
            ListBox1.List(ListBox1.ListCount - 1, 2) = i
        End If
        i = i + 1
    Next
    که این کد مربوط میشه به لیست باکس1 و رنج مذکور اما من میخوام این کدها به همراه نام کنترل لیست باکس و رنجش که مغییر هستن رو در جاهای مختلف فرمهای مختلف استفاده کنم و فقط نام لیست باکس و رنجش رو معرفی کنم به ماکرو...

    با سلام و کسب اجازه از اساتید.
    آره،میشه یه همچین کاری کرد:
    تو فرم زیر یک ماژول درست شده و از طریق Call تو فرم ها فراخوانی میشه.
    Call For RepCode
    ممنون این خیلی خوبه اما همه لیست باکسها باید همنام باشن و رنج هم قابل تغییر نیست، چطور میشه این دو آپشن رو متغییر کنیم؟

    برای این کار از این تابع استفاده کنید. این دو تابع دو آرگومان دارد
    کد:
    Function rlist(lbox As UserForm.ListBox, rg As Range)
        Dim i As Integer
        i = 1
        For Each c In rg
         If c <> "" Then
            lbox.ColumnHeads = True
            lbox.AddItem
            lbox.list(lbox.ListCount - 1, 1) = c.Offset(0, 1)
            lbox.list(lbox.ListCount - 1, 0) = c.Offset(0, 2)
            lbox.list(lbox.ListCount - 1, 2) = i
            End If
            i = i + 1
        Next
        
    End Function
    برای فراخوای تابع هم مثلا در یک یوزر فرم اینطور عمل می نمایید.
    کد:
    Private Sub UserForm_Click()
    Call rlist(ListBox1, Sheet1.Range("b2:b100"))
    End Sub
    [php]

  7. #6


    آخرین بازدید
    2014/12/22
    تاریخ عضویت
    April 2012
    نوشته ها
    90
    امتیاز
    2
    سپاس
    5
    سپاس شده
    6 در 6 پست
    تعیین سطح نشده است

    RE: ساخت مودول؟؟؟

    نقل قول نوشته اصلی توسط m_d6712
    نقل قول نوشته اصلی توسط saber2q
    سلام
    فرض کنید در قسمتی از فرم این کدها جهت بارگذاری اطلاعات لیست باکس وارد شده:
    کد:
    i = 1
    For Each c In Sheet14.Range("b2:b100")
        If c <> "" Then
            ListBox1.ColumnHeads = True
            ListBox1.AddItem
            ListBox1.List(ListBox1.ListCount - 1, 1) = c.Offset(0, 1)
            ListBox1.List(ListBox1.ListCount - 1, 0) = c.Offset(0, 2)
            ListBox1.List(ListBox1.ListCount - 1, 2) = i
        End If
        i = i + 1
    Next
    که این کد مربوط میشه به لیست باکس1 و رنج مذکور اما من میخوام این کدها به همراه نام کنترل لیست باکس و رنجش که مغییر هستن رو در جاهای مختلف فرمهای مختلف استفاده کنم و فقط نام لیست باکس و رنجش رو معرفی کنم به ماکرو...

    با سلام و کسب اجازه از اساتید.
    آره،میشه یه همچین کاری کرد:
    تو فرم زیر یک ماژول درست شده و از طریق Call تو فرم ها فراخوانی میشه.
    Call For RepCode
    ممنون این خیلی خوبه اما همه لیست باکسها باید همنام باشن و رنج هم قابل تغییر نیست، چطور میشه این دو آپشن رو متغییر کنیم؟

    برای این کار از این تابع استفاده کنید. این دو تابع دو آرگومان دارد
    کد:
    Function rlist(lbox As UserForm.ListBox, rg As Range)
        Dim i As Integer
        i = 1
        For Each c In rg
         If c <> "" Then
            lbox.ColumnHeads = True
            lbox.AddItem
            lbox.list(lbox.ListCount - 1, 1) = c.Offset(0, 1)
            lbox.list(lbox.ListCount - 1, 0) = c.Offset(0, 2)
            lbox.list(lbox.ListCount - 1, 2) = i
            End If
            i = i + 1
        Next
        
    End Function
    برای فراخوای تابع هم مثلا در یک یوزر فرم اینطور عمل می نمایید.
    کد:
    Private Sub UserForm_Click()
    Call rlist(ListBox1, Sheet1.Range("b2:b100"))
    End Sub
    [php]
    سلام
    من این روشی که گفتید رو دقیقا اجرا کردم ولی جواب نداد...

    به محضی که میخوام تو کد دهی برم خط بعد این ارور رو میده.

    کد:
    Compile erore
    expected: =

  8. #7


    آخرین بازدید
    2022/06/28
    تاریخ عضویت
    May 2010
    محل سکونت
    بلژیک
    نوشته ها
    174
    امتیاز
    108
    سپاس
    0
    سپاس شده
    119 در 53 پست
    تعیین سطح نشده است

    RE: ساخت مودول؟؟؟

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

  9. #8


    آخرین بازدید
    2014/12/22
    تاریخ عضویت
    April 2012
    نوشته ها
    90
    امتیاز
    2
    سپاس
    5
    سپاس شده
    6 در 6 پست
    تعیین سطح نشده است

    RE: ساخت مودول؟؟؟

    نقل قول نوشته اصلی توسط m_d6712
    اگر امکانش هست فایل را قرار دهید تا بررسی کنم.
    در نمونه فایلی که جناب jansiz hayat زحمتش رو کشیده نگاه کنید:
    http://persiandrive.com/492312

    برای هر کدوم از لیست باکس ها که در هر فرم هست تنها ماکرو رو کال کرده و دوباره دستوری براش ننوشته، من میخوام همین کار رو انجام بدم با این تفاوت که رنج مورد نیاز هر لیست باکس در هنگام فراخوانی دستورات هم مشخص بشه.

  10. #9


    محصولات کاربر

    یوزرفرم پیشرفته
    آخرین بازدید
    2018/06/18
    تاریخ عضویت
    February 2011
    محل سکونت
    تهران
    نوشته ها
    311
    امتیاز
    1448
    سپاس
    129
    سپاس شده
    560 در 159 پست
    تعیین سطح نشده است

    s.cheraghi به Yahoo ارسال پیام

    RE: ساخت مودول؟؟؟

    با سلام
    این فایل براتون آماده کردم
    ببینید مناسب هست
    فايل هاي پيوست شده فايل هاي پيوست شده

  11. #10


    آخرین بازدید
    2014/12/22
    تاریخ عضویت
    April 2012
    نوشته ها
    90
    امتیاز
    2
    سپاس
    5
    سپاس شده
    6 در 6 پست
    تعیین سطح نشده است

    RE: ساخت مودول؟؟؟

    ممنون، همینو میخوام منم، فقط چند تا سوال دارم.

    این کدیه که شما نوشتی:
    Option Explicit

    Private Sub UserForm_Initialize()
    Dim a As Range
    On Error Resume Next
    Set a = Application.InputBox("select range:", Type:=8)
    Call Module1.fil(UserForm1.ListBox1, a)
    End Sub
    1- Option explicit کارش چیه؟
    2- set در خط پتجم که نوشتید Set a =... کارش چیه و اگر نباشه چه اتفاقی میافته؟
    3- چجوری سر ستون لیست باکس رو بهش میتونیم عنوان بدیم؟من هر کاری کردم نتونستم.

    با تشکر


صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. ارسال دعوتنامه با EXCEl
    توسط sadra1370 در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 10
    آخرين نوشته: 2013/05/14, 09:41
  2. كمك ؟؟؟
    توسط hamidreza313 در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 8
    آخرين نوشته: 2013/01/27, 20:00
  3. Data validation شرطی چه جوری ؟؟؟
    توسط mr_shadmanpour در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 4
    آخرين نوشته: 2012/07/29, 17:52
  4. آيا كسي ميدونه؟؟؟
    توسط mrexcel در انجمن گرافیک، نمودار و تنظیمات - Graphics, Charts and Settings
    پاسخ ها: 1
    آخرين نوشته: 2012/06/13, 16:01
  5. معرفی تابع ... ؟؟؟
    توسط Rhlogin در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 15
    آخرين نوشته: 2012/03/09, 22:59

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

مودول

مودول

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است
با ما در تماس باشيد