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

موضوع: چگونه در vba به كنترل جاري اشاره كنم

  1. #11


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

    RE: چگونه در vba به كنترل جاري اشاره كنم

    نقل قول نوشته اصلی توسط mahasa shayesteh
    مرسی از توضیحات میشه لطفا برای همین کمبوباکس یه نمونه بذارید ببینم چه اتفاقی میفته ببخشیدا زیاد سوال میپرسم
    نه اتفاقا سوال بجایی بود. البته من متوجه شدم که label اصلا نمی تواند active شود.
    متاسفانه این ایراد از من بود. خیلی با قوانین VBA آشنا نیستم. گاهی وقتا رکب می خورم.

    اما در صورتی که از textbox استفاده می کنید می توانید از این روش استفاده کنید.
    در برخی مواقع خود مفسر قادر به تشخیص دگر شکل های یک شی می باشد. که معمولا در اکسل این طور هست. (خیلی وقتا خودتون تجربه کردید همه چیزو میشه تبدیل کنین به چیزای دیگه). اما گاهی وقتا این اتفاق نمی افتد و ارور خواهید دید. حداقل واسه اون موقع ها اطلاعاتی کسب کردید.


    اما در این مورد خاص اکسل دگرشکل رو تشخیص میده. خوب یک مقدار بد هست!!!! از لحاظ برنامه نویسی خطای منطقی برنامه شما رو خیلی بالا می برد. بهتر است اصولی کار کنید و از دگرریختی همون طور که توضیح دادم استفاده کنید.

    همان طور که شما فرمودید MsgBox Me.ActiveControl.Text جواب می دهد و مشکلی ندارد.
    اما text از مشخصه های پیش فرض نیست و ممکن است نابجا استفاده بشه و خطا ایجاد کنه.

    از آنجایی که VBA با نسخه VB6 هماهنگ شده این اتفاقات خیلی زیاد رخ میدهد.
    اما در نسخه های بعدی ویژوال بیسیک 2003-2010 این فرآیند تصحیح شده و امکان پذیر نیست.

    ممنون خانم شایسته، اصرار شما باعث شد اشتباه خودم رو اصلاح کنم.

    موفق باشید.

  2.  

  3. #12


    آخرین بازدید
    2022/08/30
    تاریخ عضویت
    September 2011
    محل سکونت
    استان فارس - فراشبند
    نوشته ها
    159
    امتیاز
    38
    سپاس
    55
    سپاس شده
    33 در 24 پست
    سطح اکسل
    45.00 %

    RE: چگونه در vba به كنترل جاري اشاره كنم

    با عرض تشكر از جناب داروي

    با در نظر گرفتن فرمايشات شما و با توجه به سوال من در پست 1 نميتوانم از تغيير كپشن ليبل استفاده كنم چون ليبل دستور اكتيو را نمي پذيرد
    خوب حالا ايا من ميتوانم بجاي ليبل از commandbutton استفاده كنم ؟
    اگه امكان داره شكل صحيح كد زير بنويسيد


    Private Sub CommandButton1_Click()
    Me.ActiveControl.Caption = Application.WorksheetFunction.Now()
    End Sub

  4. #13


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

    RE: چگونه در vba به كنترل جاري اشاره كنم

    نقل قول نوشته اصلی توسط alisabet
    با عرض تشكر از جناب داروي

    با در نظر گرفتن فرمايشات شما و با توجه به سوال من در پست 1 نميتوانم از تغيير كپشن ليبل استفاده كنم چون ليبل دستور اكتيو را نمي پذيرد
    خوب حالا ايا من ميتوانم بجاي ليبل از commandbutton استفاده كنم ؟
    اگه امكان داره شكل صحيح كد زير بنويسيد


    Private Sub CommandButton1_Click()
    Me.ActiveControl.Caption = Application.WorksheetFunction.Now()
    End Sub
    سلام من کد زیر را امتحان کردم پاسخ مورد نظر رو گرفتم.:

    Private Sub CommandButton1_Click()
    Me.ActiveControl.Caption = Now()
    End Sub

    Private Sub CommandButton2_Click()
    Me.ActiveControl.Caption = Now()
    End Sub

    Private Sub CommandButton3_Click()
    Me.ActiveControl.Caption = Now()
    End Sub

    اگر بد متوجه شدم منظور شمارو لطفا بفرمایید.

  5. #14


    آخرین بازدید
    2022/08/30
    تاریخ عضویت
    September 2011
    محل سکونت
    استان فارس - فراشبند
    نوشته ها
    159
    امتیاز
    38
    سپاس
    55
    سپاس شده
    33 در 24 پست
    سطح اکسل
    45.00 %

    RE: چگونه در vba به كنترل جاري اشاره كنم

    كاملاً درسته كد شما درسته اوني كه من نوشته بودم غلط بود خيلي ممنون

  6. #15


    آخرین بازدید
    2022/12/26
    تاریخ عضویت
    November 2010
    محل سکونت
    کرج
    نوشته ها
    362
    امتیاز
    295
    سپاس
    193
    سپاس شده
    596 در 151 پست
    تعیین سطح نشده است

    MEYTI به Yahoo ارسال پیام

    RE: چگونه در vba به كنترل جاري اشاره كنم

    با تشکر و کسب اجازه از جناب داوری
    شما میتونی همین کدو به صورت زیر توی ماکرو بنویسی بعد در رویداد کلیک همه commandbutton ها این ماکرو رو صدا بزنی
    کد PHP:
    Sub MMM()
    UserForm1.ActiveControl.Caption Now()
    End Sub 

  7. #16


    آخرین بازدید
    2022/08/30
    تاریخ عضویت
    September 2011
    محل سکونت
    استان فارس - فراشبند
    نوشته ها
    159
    امتیاز
    38
    سپاس
    55
    سپاس شده
    33 در 24 پست
    سطح اکسل
    45.00 %

    RE: چگونه در vba به كنترل جاري اشاره كنم

    نقل قول نوشته اصلی توسط m_d6712
    نقل قول نوشته اصلی توسط alisabet
    با عرض تشكر از جناب داروي

    با در نظر گرفتن فرمايشات شما و با توجه به سوال من در پست 1 نميتوانم از تغيير كپشن ليبل استفاده كنم چون ليبل دستور اكتيو را نمي پذيرد
    خوب حالا ايا من ميتوانم بجاي ليبل از commandbutton استفاده كنم ؟
    اگه امكان داره شكل صحيح كد زير بنويسيد


    Private Sub CommandButton1_Click()
    Me.ActiveControl.Caption = Application.WorksheetFunction.Now()
    End Sub
    سلام من کد زیر را امتحان کردم پاسخ مورد نظر رو گرفتم.:

    Private Sub CommandButton1_Click()
    Me.ActiveControl.Caption = Now()
    End Sub

    Private Sub CommandButton2_Click()
    Me.ActiveControl.Caption = Now()
    End Sub

    Private Sub CommandButton3_Click()
    Me.ActiveControl.Caption = Now()
    End Sub

    اگر بد متوجه شدم منظور شمارو لطفا بفرمایید.
    اما اگر commandbutton داخل يك فريم باشد vba فريم را بعنوان كنترل فعال در نظر ميگيرد در صورتي كه كد مربوطه را با رويداد كليك commandbutton تعريف كردم و از اينرو هنگام كليك بر روي اين كنترل بايد همين كنترل بعنوان كنترل فعال در نظر گرفته شود مشكل چگونه حل ميشود ؟ در ضمن من حتماَ بايد فريم را داشته باشم

  8. #17


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

    RE: چگونه در vba به كنترل جاري اشاره كنم

    نقل قول نوشته اصلی توسط alisabet
    نقل قول نوشته اصلی توسط m_d6712
    نقل قول نوشته اصلی توسط alisabet
    با عرض تشكر از جناب داروي

    با در نظر گرفتن فرمايشات شما و با توجه به سوال من در پست 1 نميتوانم از تغيير كپشن ليبل استفاده كنم چون ليبل دستور اكتيو را نمي پذيرد
    خوب حالا ايا من ميتوانم بجاي ليبل از commandbutton استفاده كنم ؟
    اگه امكان داره شكل صحيح كد زير بنويسيد


    Private Sub CommandButton1_Click()
    Me.ActiveControl.Caption = Application.WorksheetFunction.Now()
    End Sub
    سلام من کد زیر را امتحان کردم پاسخ مورد نظر رو گرفتم.:

    Private Sub CommandButton1_Click()
    Me.ActiveControl.Caption = Now()
    End Sub

    Private Sub CommandButton2_Click()
    Me.ActiveControl.Caption = Now()
    End Sub

    Private Sub CommandButton3_Click()
    Me.ActiveControl.Caption = Now()
    End Sub

    اگر بد متوجه شدم منظور شمارو لطفا بفرمایید.
    اما اگر commandbutton داخل يك فريم باشد vba فريم را بعنوان كنترل فعال در نظر ميگيرد در صورتي كه كد مربوطه را با رويداد كليك commandbutton تعريف كردم و از اينرو هنگام كليك بر روي اين كنترل بايد همين كنترل بعنوان كنترل فعال در نظر گرفته شود مشكل چگونه حل ميشود ؟ در ضمن من حتماَ بايد فريم را داشته باشم
    خوب این خیلی واضح است که اتفاق می افته. دلیلش هم اینه که commandbutton دیگر کنترلی از userform نیست و بلکه کنترلی از frame هستش. درحالی که me به userform اشاره داره. برای رفع این مشکل 2 یکی از روش های زیر رو بکار ببرید:

    Private Sub CommandButton1_Click()
    Me.ActiveControl.ActiveControl.Caption = Now()
    End Sub

    یا

    Private Sub CommandButton1_Click()
    Frame1.ActiveControl.Caption = Now()
    End Sub

    موفق باشید


صفحه 2 از 2 نخستنخست 12

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

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

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

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

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

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

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

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