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

موضوع: ایجاد فرم های سفارشی توسط VBA

  1. #1


    آخرین بازدید
    31 _ 03 _ 2017
    تاریخ عضویت
    May_2010
    محل سکونت
    بلژیک
    نوشته ها
    175
    امتیاز
    92
    سپاس
    0
    سپاس شده
    103 در 45 پست

    ایجاد فرم های سفارشی توسط VBA

    [align=center][size=x-large]لینک کمکی اضافه شد[/size][/align]

    با سلام دوستی سوال فرمودند که چطور می شود فرم های سفارشی در VBA ساخت. به این مفهوم که بشود بر اساس نیاز مشتری Control هایی (button, textbox, label) بسازیم.

    نقل قول نوشته اصلی توسط دوستی
    سلام آقای داوری.
    چطور میشه از طریق کد در Form،یک کنترل(مثل:label,textbox,...)به فرم اضافه کرد.
    [size=large]این فایل رو من خیلی ساده جهت آموزش در مدت کوتاه درست کردم. لذا ممکن است ایراداتی داشته باشد.[/size]

    http://www.mediafire.com/file/28v0tpepm2v8bhv/CustomizeControls_with_VBA.xlsm

    لینک کمکی:
    http://uplod.ir/gax3gakjje3h/CustomizeControls_with_VBA.zip.htm

    در فایل بالا دو label ایجاد شده است. یک textbox و دو button

    برای ایجاد label ها از کد های زیر استفاده کردم:

    Dim label As MSForms.label
    Set label = Me.Controls.Add("Forms.Label.1", "myLabe", True)
    With label
    .Caption = "write some text here:"
    .Width = 60
    .Height = 25
    .Top = 110
    .Left = 10
    .ZOrder (0)
    End With

    Dim label2 As MSForms.label
    Set label2 = Me.Controls.Add("Forms.Label.1", "myLabel2", True)
    With label2
    .Caption = "then click these two buttons"
    .Width = 200
    .Height = 20
    .Top = 140
    .Left = 10
    .ZOrder (0)
    End With



    برای تولید textbox از کد زیر:

    Dim mytextbox As Control
    Set mytextbox = Me.Controls.Add("Forms.TextBox.1", "MyTextBox1", True)
    With mytextbox
    .Width = 150
    .Height = 25
    .Top = 110
    .Left = 70
    .ZOrder (0)
    End With


    دو نوع button درست کردم: اولی withoutevent
    Dim mybutton As Control
    Set mybutton = Me.Controls.Add("Forms.CommandButton.1", "MyButton1", True)

    With mybutton
    .Caption = "without events"
    .Width = 200
    .Height = 25
    .Top = 160
    .Left = 10
    .ZOrder (0)
    End With

    اگر همین طور ساده button و یا هر control دیگری رو ایجاد کنید. این کنترل event نخواهد داشت. به این مفهوم که شما قادر خواهید بود از امکانات اون استفاده کنید اما event نخواهد داشت. یعنی تابعی به نام button_click() وجود نخواهد داشت. در واقع وقتی کنترلی به این روش درست می کنید باید event اون رو هم دستی ایجاد کنید.

    دو راه برای رفع این مشکل وجود دارد.
    راه سخت تر:
    برای ایجاد event به صورتی دستی (manual) باید از یک event در control مادر (که userform هست) استفاده کنید. مثلا می خواهید رویداد click بسازید. می توانید از رویداد click یوزر فرم استفاده کنید. فقط باید شرطی بگذارید که مکان موس رو ارزیابی کنه در لحظه کلیک و اگر مکان موس روی مقتصات button بود دستورات مورد نظر رو اجرا کنه. در صورت تمایل بیشتر توضیح می دهم.


    راه ساده تر
    البته راه آسون تر استفاده از control های withevent هست. [size=medium]البته این روش محدودیت هایی رو ایجاد می کنه.[/size] اما برای استفاده در ابتدای راه خیلی مفید می باشد:

    ابتدا یک شی اما private خارج از هر گونه تابعی در یوزر فرم ایجاد می کنید با این دستور:
    Private WithEvents mybut As MSForms.CommandButton

    سپس در تابعی که control ها رو میسازید این کد را اضافه می کنید.
    Set mybut = Me.Controls.Add("Forms.CommandButton.1", "mybut", True)

    With mybut
    .Caption = "with events"
    .Width = 200
    .Height = 25
    .Top = 190
    .Left = 10
    .ZOrder (0)
    End With


    به این صورت می توانید event click این button رو فرآخوانی کنید:

    Private Sub mybut_Click()
    MsgBox ("you wrote '" + Me.Controls("MyTextBox1") + "' in the textbox above.")
    End Sub

    توجه فرمایید که Me.Controls("MyTextBox1") مقدار داخل textboxی که از طریق VBA ایجاد کرده اید رو برای شما بر میگرداند.

    همان طور که گفتم این روش محدودیت هایی رو ایجاد می کنه:
    به این مفهوم که باید شما برای هر control یک دستور جداگانه private withevents بنویسید که این در صورتی که تعداد control ها مشخص نباشد و یا به هر دلیلی نشود این کار رو انجام داد محدودیت اساسی است. دیگر محدودیت هایی نیز دارد.



    همچینی می توانید button در شیت و سلول ایجادنمایید.
    البته روش اون کار فرق می کند.

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

  2.  

  3. #2


    آخرین بازدید
    3 دقیقه پیش
    تاریخ عضویت
    January_2012
    محل سکونت
    استان اردبیل / شهرستان پارس آباد (مغان)
    نوشته ها
    1,169
    امتیاز
    2484
    سپاس
    1,384
    سپاس شده
    1,940 در 616 پست

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

    RE: ایجاد فرم های سفارشی توسط VBA

    با سلام.
    آقای داوری،بابت توضیحاتتون بسیار-بسیار ممنون.همیشه زحمت ما گردن شماست.هر موقع وقت کردین توضیحات بالا رو گسترش دهید و هر چیزی که به نظرتون رسید،بنویسید.
    سایت فیلتر هستش اگه میشه فایل رو دوباره آپلود کنید.


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

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

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

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

  1. حل مسئله n وزیر به روش عقب گرد توسط VBA
    توسط ~M*E*H*D*I~ در انجمن مهندسی صنایع و اکسل
    پاسخ ها: 3
    آخرين نوشته: 13 _ 11 _ 2014, 19:06
  2. تنظیم دیده شدن یا نشدن شیتهای یک فایل اکسل توسط کابران دومین
    توسط farzin17273 در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 1
    آخرين نوشته: 10 _ 06 _ 2013, 14:01
  3. نصب یک برنامه توسط یک باتن در وی بی
    توسط امیر رضا دهقان در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 1
    آخرين نوشته: 29 _ 12 _ 2012, 19:53
  4. آمار گيري توسط اكسل
    توسط ali2449 در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 1
    آخرين نوشته: 09 _ 10 _ 2012, 10:11
  5. انتخاب آیتم های کومبوباکس توسط کیبرد
    توسط saber2q در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 6
    آخرين نوشته: 27 _ 06 _ 2012, 17:05

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

اموزش ساخت فرم vba در اکسل

نحوه ساخت یوزر فرم در اکسل

ایجاد رویداد در اکسل

نحوه انتخاب یک کنترل فرم در vba

رویدادها و دستورات vba

ساخت فرم در اکسل با vba

آموزش ایجاد فرم در اکسل به همراه vba

dim withevents vba مورد

طریقه طراحی فرم vb اکسل

ایجاد label در فرم اکسل 2010

ساخت فرم در vba

ساختن فرم در اكسل رايگان

روش textbox در فرم اکسل

رو ایجاد فرم در اکسل

آموزش تصویری ایجاد فرم در اکسل

ساختن یک user form در اکسل

ساخت یوزر فرم در اکسل با vba

ایجاد فرم در اکسل با vba

اموزش طراحی فرم در vba

ایجاد یک userform در vba در اکسل

آموزش فرم سازی درvba

ساخت فرمهای VB اکسل

استفاده از کنترل های سفارشی در msgbox در ویژوال بیسیک

ساخت فرم در excel vba

طراحی فرمها کاربردی در vba

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

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