پرفروش ترين
برترين
آخرين محصولات فروشگاه
فایل الکترونیکی آموزش اکسل پیشرفته ۲۰۱۰
آموزش ایجاد فایل چندکاربره با سطح دسترسی مشخص
یوزرفرم پیشرفته -Advanced  User Form
داشبورد (مقدماتی) – Dashboards(Elementary)
ابزارهای اعتبار سنجی و اخطار دهنده
بسته آموزشی userform
مدیریت و کنترل خطا در اکسل
توابع متنی
گرافیک در اکسل
جزوه آموزشی جداول و نمودارهای پاشنه ای
فایل آموزشی نحوه تهیه فرمت عددی دلخواه یا custom number format cell
آموزش ایجاد فایل چندکاربره با سطح دسترسی مشخص
صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 11

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

  1. #1


    آخرین بازدید
    22 _ 12 _ 2014
    تاریخ عضویت
    April_2012
    نوشته ها
    90
    امتیاز
    2
    سپاس
    5
    سپاس شده
    6 در 6 پست

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

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

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

  2.  

  3. #2


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

    یوزرفرم پیشرفته
    آخرین بازدید
    01 _ 05 _ 2016
    تاریخ عضویت
    February_2011
    محل سکونت
    تهران
    نوشته ها
    311
    امتیاز
    1436
    سپاس
    129
    سپاس شده
    548 در 155 پست

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

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

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

  4. #3


    آخرین بازدید
    6 ساعت پیش
    تاریخ عضویت
    January_2012
    محل سکونت
    استان اردبیل / شهرستان پارس آباد (مغان)
    نوشته ها
    1,063
    امتیاز
    2371
    سپاس
    1,348
    سپاس شده
    1,841 در 553 پست

    jansiz hayat به Yahoo ارسال پیام

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

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

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

  5. #4


    آخرین بازدید
    22 _ 12 _ 2014
    تاریخ عضویت
    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


    آخرین بازدید
    01 _ 11 _ 2016
    تاریخ عضویت
    May_2010
    محل سکونت
    بلژیک
    نوشته ها
    175
    امتیاز
    91
    سپاس
    0
    سپاس شده
    102 در 44 پست

    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


    آخرین بازدید
    22 _ 12 _ 2014
    تاریخ عضویت
    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


    آخرین بازدید
    01 _ 11 _ 2016
    تاریخ عضویت
    May_2010
    محل سکونت
    بلژیک
    نوشته ها
    175
    امتیاز
    91
    سپاس
    0
    سپاس شده
    102 در 44 پست

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

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

  9. #8


    آخرین بازدید
    22 _ 12 _ 2014
    تاریخ عضویت
    April_2012
    نوشته ها
    90
    امتیاز
    2
    سپاس
    5
    سپاس شده
    6 در 6 پست

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

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

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

  10. #9


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

    یوزرفرم پیشرفته
    آخرین بازدید
    01 _ 05 _ 2016
    تاریخ عضویت
    February_2011
    محل سکونت
    تهران
    نوشته ها
    311
    امتیاز
    1436
    سپاس
    129
    سپاس شده
    548 در 155 پست

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

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

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

  11. #10


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

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

مودول

مودول

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

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