سوال در مورد vba

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • امین نیما

    • 2015/05/24
    • 110

    [حل شده] سوال در مورد vba

    با سلام مجدد خدمت دوستان و اساتید محترم

    2 تا سول داشتم از اساتید

    1- در سربرگ developer گزینه insert تفاوت form control و active x control در چیست و تفاوت کاربرد های آنها در چیست؟

    2- من 5 تا button(form control) ایجاد کردم با شروط متفاوت چطور میتونم با تعریف یک button در صورت کلیک تمام 5 button هم زمان اجرا بشن.

    با تشکر از دوستان
  • khakzad

    • 2010/03/17
    • 2034
    • 85.00

    #2
    سلام
    form control
    داخل خود شیت اکسل تنظیماتش انجام میشه و از طریق control، مثلا cell link بهشون داده میشه و به راحتی قابل فرمول نوشتن داخل شیت داره و کد لازم نداره
    active x control
    همون گزینه ها رو داره اما با این تفاوت که برای تنظیماتش نیاز به محیط وی بی ای و کدنویسی در اونجا نیاز هست


    در خصوص سوال دومتون هم لطفا توضیح بیشتری بدید و ترجاحا فایل نمونه بذارید

    موفق باشید
    [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

    [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
    [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
    :wcom:

    [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
    [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
    [/CENTER]

    کامنت

    • امین نیما

      • 2015/05/24
      • 110

      #3
      نوشته اصلی توسط khakzad
      سلام
      form control
      داخل خود شیت اکسل تنظیماتش انجام میشه و از طریق control، مثلا cell link بهشون داده میشه و به راحتی قابل فرمول نوشتن داخل شیت داره و کد لازم نداره
      active x control
      همون گزینه ها رو داره اما با این تفاوت که برای تنظیماتش نیاز به محیط وی بی ای و کدنویسی در اونجا نیاز هست


      در خصوص سوال دومتون هم لطفا توضیح بیشتری بدید و ترجاحا فایل نمونه بذارید

      موفق باشید
      فایل پیوست را مشاهده بفرمایید توضیح بیشتر دادم
      2تا سوال دارم در موره نحوه نوشتن php مورد نظر
      با تشکر از دوستان
      فایل های پیوست شده

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #4
        با سلام

        در مورد سوال اول باید داخل یک ماکرو نام دو ماکرو 1 و 2 رو قرار بدید و به باتن شماره سه خود این ماکرو رو اختصاص بدید

        در فایل شما هیچ ماکرویی مشاهده نمیگردد که ببینیم باتن یک و دو چه عملی را انجام میدهند تا برای سوال دوم راهی در نظر گرفته شود

        اگر در ضمیمه کردن فایل حاوی ماکرو در سایت مشکل دارید آنرا زیپ کرده و در سایت ضمیمه کنید

        کد PHP:
        Sub TEST()

        MACRO1

        MACRO2

        End Sub 

        کامنت

        • امین نیما

          • 2015/05/24
          • 110

          #5
          نوشته اصلی توسط iranweld
          با سلام

          در مورد سوال اول باید داخل یک ماکرو نام دو ماکرو 1 و 2 رو قرار بدید و به باتن شماره سه خود این ماکرو رو اختصاص بدید

          در فایل شما هیچ ماکرویی مشاهده نمیگردد که ببینیم باتن یک و دو چه عملی را انجام میدهند تا برای سوال دوم راهی در نظر گرفته شود

          اگر در ضمیمه کردن فایل حاوی ماکرو در سایت مشکل دارید آنرا زیپ کرده و در سایت ضمیمه کنید

          کد PHP:
          Sub TEST()

          MACRO1

          MACRO2

          End Sub 
          با تشکر از راهنمایی شما فایل زیپ شده به پیوست ارسال شد لطف بفرمایید راهنمایی کنید
          فایل های پیوست شده

          کامنت

          • iranweld

            • 2015/03/29
            • 3341

            #6
            با سلام

            بمحض تغییر در دیتای سلولi1 ماکروی ab فراخوانی میگردد که دو ماکروی a و b را اجرا مینماید
            تصویر پیوست بیانگر تغییرات لازم میباشد
            فایل های پیوست شده
            Last edited by iranweld; 2015/11/07, 15:18.

            کامنت

            • امین نیما

              • 2015/05/24
              • 110

              #7
              نوشته اصلی توسط iranweld
              با سلام

              در مورد سوال اول باید داخل یک ماکرو نام دو ماکرو 1 و 2 رو قرار بدید و به باتن شماره سه خود این ماکرو رو اختصاص بدید

              در فایل شما هیچ ماکرویی مشاهده نمیگردد که ببینیم باتن یک و دو چه عملی را انجام میدهند تا برای سوال دوم راهی در نظر گرفته شود

              اگر در ضمیمه کردن فایل حاوی ماکرو در سایت مشکل دارید آنرا زیپ کرده و در سایت ضمیمه کنید

              کد PHP:
              Sub TEST()

              MACRO1

              MACRO2

              End Sub 
              با تشکر از شما در مورد راهنمایی بالا
              اگه بخوام با باتن سوم باتن اول و دوم را فراخوانی بکنم با توجه به راهنمایی که فرمودین چگونه عمل کنم
              نمیخوام مجدد فرمول ها را جدا گانه در باتن 3 بنویسم ،،،،،به مانند راهنمایی شما امکان داره مثلا بگم باتن 1 و باتن 2 فعال بشود
              من موفق نشدم از فرمولی که شما در بالا فرمودین به جواب برسم لطفا راهنمایی بفرمایید
              با تشکر از شما

              کامنت

              • iranweld

                • 2015/03/29
                • 3341

                #8
                فایل رو برای شما بصورت زیپ شده در پست قبلی آپلود کردم چطور موفق نشدید؟

                در فایل جدید هم با تغییر ماه و هم با باتن 3 هر دو ماکرو اجرا میگردد
                فایل های پیوست شده

                کامنت

                • امین نیما

                  • 2015/05/24
                  • 110

                  #9
                  نوشته اصلی توسط iranweld
                  فایل رو برای شما بصورت زیپ شده در پست قبلی آپلود کردم چطور موفق نشدید؟

                  در فایل جدید هم با تغییر ماه و هم با باتن 3 هر دو ماکرو اجرا میگردد
                  با تشکر مجدد از شما به دلیل پاسخ گویی سریع
                  اگه فرمول که برای باتن 3 نوشتین ملاحظه بفرمایید شما برای اینکه هر دو باتن های 1و2 عمل کنه فرمول های باتن های 1و2 را مجدد در باتن 3 نوشتین
                  Sub AB()
                  A
                  MsgBox "Macro A finished"
                  B
                  MsgBox "Macro B finished"
                  End Sub

                  Sub A()

                  Range("a1").Value = Range("b1").Value + Range("c1")

                  End Sub

                  Sub B()

                  Range("a2").Value = Range("b2").Value + Range("c2")

                  End Sub


                  به این دلیل که تعداد باتن های فرمول من بیش از 50 عدد است و طولانی من میخوام که با یک باتن مثلا 51 کل 50 باتن قبلی فعال بشود ولی مجبور نباشم تمام 50 فرمول قبلی را در باتن 51 بنویسم
                  آیا امکان این کار در VBA وجود داره؟
                  با تشکر از شما ببخشید طولانی شد امیدوارم تونسته باشم منظورم رو برسونم
                  خدانگهدار

                  کامنت

                  • abootorab

                    • 2014/10/17
                    • 351

                    #10
                    نوشته اصلی توسط امین نیما
                    با تشکر مجدد از شما به دلیل پاسخ گویی سریع
                    اگه فرمول که برای باتن 3 نوشتین ملاحظه بفرمایید شما برای اینکه هر دو باتن های 1و2 عمل کنه فرمول های باتن های 1و2 را مجدد در باتن 3 نوشتین
                    Sub AB()
                    A
                    MsgBox "Macro A finished"
                    B
                    MsgBox "Macro B finished"
                    End Sub

                    Sub A()

                    Range("a1").Value = Range("b1").Value + Range("c1")

                    End Sub

                    Sub B()

                    Range("a2").Value = Range("b2").Value + Range("c2")

                    End Sub


                    به این دلیل که تعداد باتن های فرمول من بیش از 50 عدد است و طولانی من میخوام که با یک باتن مثلا 51 کل 50 باتن قبلی فعال بشود ولی مجبور نباشم تمام 50 فرمول قبلی را در باتن 51 بنویسم
                    آیا امکان این کار در VBA وجود داره؟
                    با تشکر از شما ببخشید طولانی شد امیدوارم تونسته باشم منظورم رو برسونم
                    خدانگهدار
                    با درود و تشکر از جناب iranweld
                    دوست عزیز اگر درست متوجه منظورتون شده باشم در واقع شما میخواین با کلیک بر روی یک کلید (مثلا باتن 51) بصورت یکجا کار (زیربرنامه های) تمام کلید ها (مثلا باتن های 1 تا 50) رو انجام بده.
                    واسه این کار کافیه کد زیر رو بنویسید و آن رو به باتن 51 نسبت دهید.
                    نکته: این کد کاملا پویا می باشد و محدودیتی در تعداد کلیدهای موجود و همچنین نامگذاری آنها و حتی نامگذاری زیربرنامه های مربوطه وجود ندارد.

                    کد PHP:
                    Sub Run_All_Button()
                        
                    Dim btn As Shape
                        
                    For Each btn In ActiveSheet.Shapes
                            
                    If btn.Type msoFormControl And Application.Caller <> btn.Name Then
                                Application
                    .Run btn.OnAction
                            End 
                    If
                        
                    Next
                    End Sub 

                    اگر مشکلی در این مورد داشتین در خدمتم.
                    موفق باشین
                    Last edited by abootorab; 2015/11/09, 15:57.

                    کامنت

                    • امین نیما

                      • 2015/05/24
                      • 110

                      #11
                      نوشته اصلی توسط abootorab
                      با درود و تشکر از جناب iranweld
                      دوست عزیز اگر درست متوجه منظورتون شده باشم در واقع شما میخواین با کلیک بر روی یک کلید (مثلا باتن 51) بصورت یکجا کار (زیربرنامه های) تمام کلید ها (مثلا باتن های 1 تا 50) رو انجام بده.
                      واسه این کار کافیه کد زیر رو بنویسید و آن رو به باتن 51 نسبت دهید.
                      نکته: این کد کاملا پویا می باشد و محدودیتی در تعداد کلیدهای موجود و همچنین نامگذاری آنها و حتی نامگذاری زیربرنامه های مربوطه وجود ندارد.

                      کد PHP:
                      Sub Run_All_Button()
                          
                      Dim btn As Shape
                          
                      For Each btn In ActiveSheet.Shapes
                              
                      If btn.Type msoFormControl And Application.Caller <> btn.Name Then
                                  Application
                      .Run btn.OnAction
                              End 
                      If
                          
                      Next
                      End Sub 

                      اگر مشکلی در این مورد داشتین در خدمتم.
                      موفق باشین
                      با سلام خدمت شما دوست عزیز و محترم
                      ممنون از پاسخ گویی شما
                      از فرمول شما استفاده کردم جواب میده فرمول شما فقط دیباگ میزنه تو vba این قسمت فرمول زرد رنگ میشود Application.Run btn.OnAction

                      کامنت

                      چند لحظه..