متحرک بودن دکمه فرمان در صفحه

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • payam

    • 2012/05/18
    • 79

    متحرک بودن دکمه فرمان در صفحه

    با درود
    من در یک صفحه اکسل یک command button قرار دادم. ولی وقتی صفحه به چپ حرکت می کنه دکمه ناپدید میشه و باید دوباره صفحه رو برگردونم تا پیدا بشه. آیا راهی هست که دکمه به صورت شناور در صفحه قرار بگیره و در هر لحظه قابل دیدن باشه؟
    ممنون میشم راهنمایی کنید.
  • komeilex

    #2
    RE: متحرک بودن دکمه فرمان در صفحه

    سلام. برای شناور بودن دکمه که چیزی به نظرم نمیرسه مگر این که با کد نویسی بشه کاری انجام داد. ولی راه ساده ایی که به نظرم می رسه اینه که سطر و ستون مربوط به اون دکمه رو فریز کنین.
    [attachment=1149]
    فایل های پیوست شده

    کامنت

    • امين اسماعيلي
      مدير تالار ويژوال بيسيك

      • 2013/01/17
      • 1198
      • 84.00

      #3
      RE: متحرک بودن دکمه فرمان در صفحه

      با درود

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

      http://www.uplooder.net/cgi-bin/dl.cgi?key=c8e8f4807bf6a5d00e555f0eb1efdbb8
      در پناه خداوندگار ایران زمین باشید و پیروز

      کامنت

      • milad.moafi

        • 2013/01/10
        • 29

        #4
        RE: متحرک بودن دکمه فرمان در صفحه

        سلام، میتونی به جای command button از shape استفاده کنی، و کدت رو به شکل assign کنی، و حالا اون خواسته ات رو میتونی عملی کنی که اگه تو properties شکلت بتونی چک باکس move with text رو پیدا کنی و غیر فعالش کنی، به هدفت رسیدی.
        شایدم تو همون properties دکمه active x ات باشه، دقیقا نمیدونم...
        علم و دانش همان قدرت است

        کامنت

        • Nima

          • 2011/07/22
          • 385

          #5
          فکر کنم باید از کد زیر در ایونت شیت استفاده کنید:
          کد:
          Private Sub Worksheet_SelectionChange(ByVal Target As Range)
              With ActiveWindow.VisibleRange
                  ActiveSheet.Shapes("CommandButton1").Top = .Top
                  ActiveSheet.Shapes("CommandButton1").Left = .Left
              End With
          End Sub
          [CENTER][COLOR=#ff0000]************************************[/COLOR]
          No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
          [COLOR=#ff0000]************************************[/COLOR]

          [/CENTER]

          کامنت

          • Ali Parsaei
            مدير تالارتوابع اکسل

            • 2013/11/18
            • 1522
            • 71.67

            #6
            در آدرس ياد شده آقاي اسماعيلي ديگر فايلي در آن براي دانلود نيست!
            آقا نيما کد فوق را هم امتحان کردم جواب نمي دهد.
            Last edited by Ali Parsaei; 2014/03/02, 12:34.
            [SIGPIC][/SIGPIC]

            کامنت

            • Nima

              • 2011/07/22
              • 385

              #7
              کد زیر رو هم تست کنید:
              کد:
              Private Sub Worksheet_selectionChange(ByVal Target As Range)
                  With ActiveWindow.Selection
                      Me.CommandButton1.Top = .Top + 20
                      Me.CommandButton1.Left = .Left + 20
                  End With
              End Sub
              [CENTER][COLOR=#ff0000]************************************[/COLOR]
              No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
              [COLOR=#ff0000]************************************[/COLOR]

              [/CENTER]

              کامنت

              • Nima

                • 2011/07/22
                • 385

                #8
                و کد زیر:
                کد:
                Private Sub Worksheet_SelectionChange(ByVal Target As Range)
                    CommandButton1.Left = Target.Left + Target.Width
                    CommandButton1.Top = Target.Top + Target.Height
                End Sub
                [CENTER][COLOR=#ff0000]************************************[/COLOR]
                No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
                [COLOR=#ff0000]************************************[/COLOR]

                [/CENTER]

                کامنت

                • Ali Parsaei
                  مدير تالارتوابع اکسل

                  • 2013/11/18
                  • 1522
                  • 71.67

                  #9
                  خيلي آقايي،
                  کد دوم و سوم هر دو درست کار مي کند. بسيار ممنونم.
                  اين پاسخهاي سريع که لطف مي کنيد و مي دهيد نتيجه زحماتي است که قبلا" کشيده و تجربه اي است که در کد نويسي کسب کرده ايد و راحت در اختيار بنده حقير قرار مي دهيد، و من به اين موضوع کاملا" واقفم فکر نکني حواسم نيست ها!!!!! و از اين بابت بسيار متشکرم.
                  [SIGPIC][/SIGPIC]

                  کامنت

                  • alieddy0

                    • 2011/07/21
                    • 141
                    • 55.00

                    #10
                    با سلام
                    جهت اكتيو شدن كليد در محدوده خاص ميتونيد از كد زير در كنار كد جناب آقا نيما استفاده نماييد
                    کد PHP:

                    If ActiveCell.Row 88 And ActiveCell.Row 53 And ActiveCell.Column 13 ThenCommandButton1.Visible True
                    Else
                    CommandButton1.Visible False
                    End 
                    If 
                    اين كد كليد رو در محدوده ستون 13 در رديف هاي 54 تا 87 نمايش ميدهد
                    Last edited by alieddy0; 2014/03/02, 12:34.

                    کامنت

                    • Ali Parsaei
                      مدير تالارتوابع اکسل

                      • 2013/11/18
                      • 1522
                      • 71.67

                      #11
                      سلام،
                      آيا امکان دارد که کد مربوطه را به صورتي نوشت تا در تمام صفحات اجرا شود (يک کد نوشته شود، ولي هر صفحه که فعال بود در آن قابل اجرا باشد)
                      فايل پيوست را نگاه کنيد، در شيت يک در صورت انتخاب خانه هاي c3:c12 آيکون کامندبوتن در سل پديدار و با کليک آن يوزرفرم و عمليات مربوطه آن اجرا مي گردد ولي مي خواهم در صفحات ديگر هم همين عمل اجرا گردد.
                      البته کد را در قسمت WORKBOOK نوشتم و يک کم تغيير دادم ولي اجرا نشد، البته من هنوز سواد درست حسابي در مورد VBA ندارم ولي شايد مشکل اين است که COMMANDBUTTON در هر صفحه بايد جداگانه اعمال گردد.
                      فایل های پیوست شده
                      Last edited by Ali Parsaei; 2014/03/10, 17:34.
                      [SIGPIC][/SIGPIC]

                      کامنت

                      • Nima

                        • 2011/07/22
                        • 385

                        #12
                        نوشته اصلی توسط علي پارسا
                        سلام،
                        آيا امکان دارد که کد مربوطه را به صورتي نوشت تا در تمام صفحات اجرا شود (يک کد نوشته شود، ولي هر صفحه که فعال بود در آن قابل اجرا باشد)
                        فايل پيوست را نگاه کنيد، در شيت يک در صورت انتخاب خانه هاي c3:c12 آيکون کامندبوتن در سل پديدار و با کليک آن يوزرفرم و عمليات مربوطه آن اجرا مي گردد ولي مي خواهم در صفحات ديگر هم همين عمل اجرا گردد.
                        البته کد را در قسمت WORKBOOK نوشتم و يک کم تغيير دادم ولي اجرا نشد، البته من هنوز سواد درست حسابي در مورد VBA ندارم ولي شايد مشکل اين است که COMMANDBUTTON در هر صفحه بايد جداگانه اعمال گردد.
                        برای یه همچین کاری ابتدا باید در ایونت workbook sheetactivate باتن رو تعریف کنی تا وقتی شیت اکتیو شد یک باتن به ان اضافه بشه

                        بعد هم در ایونتworkbook sheetdeactivate اون باتن که ایجاد شده بود رو حذف کنی تا حین پیمایش بین شیتها تعداد زیادی باتن ایجاد نشده باشه

                        و کد مربوط به ظاهر شدن باتن با سلکت کردن سلولها رو هم برای تمام شیتها بنویسی
                        [CENTER][COLOR=#ff0000]************************************[/COLOR]
                        No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
                        [COLOR=#ff0000]************************************[/COLOR]

                        [/CENTER]

                        کامنت

                        • امين اسماعيلي
                          مدير تالار ويژوال بيسيك

                          • 2013/01/17
                          • 1198
                          • 84.00

                          #13
                          با درود
                          با تشکر از اقا نیما و توضیحانتشون . یه فایل براتون میزارم . از اونایی که بهشون قول دادم و بازم زدم زیرش معذرت ........................
                          تو ورک بوک کد ها رو نوشتم . خود به خود کلید رو براتون تو هر شیتی درست میکنه تو اون محدوده. اگر قبلا کلیدی باشه با اون نام پاک میکنهو خودکار به یک ماکرو به نام امین که یوزر فرم 1 رو باز میکنه وصل میشه و خلاصه نمیدونم بقیشو تو فایل ببین.............................
                          فایل های پیوست شده
                          در پناه خداوندگار ایران زمین باشید و پیروز

                          کامنت

                          • pelisuru

                            • 2012/12/31
                            • 19
                            • 45.00

                            #14
                            سلام و خسته نباشید
                            این کد رو اگه بخوایم برای چندتا shape بنویسیم چکار باید کرد. خیلی ممنون
                            کد:
                            Private Sub Worksheet_SelectionChange(ByVal Target As Range)'Updateby Extendoffice 20161116
                                Application.ScreenUpdating = False
                                If Target.Cells.Count > 1 Then Exit Sub
                                    With ActiveSheet.Shapes("RoundedRectangle1")
                                        .Top = ActiveWindow.VisibleRange.Top + 5
                                        .Left = ActiveWindow.VisibleRange.Left + ActiveWindow.VisibleRange.Width - .Width - 45
                                    End With
                                Application.ScreenUpdating = False
                            
                            End Sub


                            کامنت

                            چند لحظه..