مشکل در گرفتن جواب ok یا cancel از inputbox و تراز چین کردن متن نمایشی آن

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

    • 2014/03/08
    • 19

    مشکل در گرفتن جواب ok یا cancel از inputbox و تراز چین کردن متن نمایشی آن

    با سلام و خسته نباشید؛

    کدهایی به شکل زیر نوشته ام ولی دو تا مشکل دارم:
    1- متنی که در کادر inputbox ظاهر می شود میخواهم که از سمت راست ترازچین و خوانده شود.
    2- در فایلم، بعد از این دو خط کد، میخواهم با دستور if ، کدهایی بنویسم که اگر کاربر دکمه ok کادر inputbox را بدون نوشتن یا انتخاب آدرس، انتخاب کرد چه اتفاقی بیفتد و اگر از اول دکمه cancel کادر inputbox را انتخاب کرد چه کارهایی انجام شود. البته بعضی از کدها را نیز امتحان کردم ولی جواب نداد مثل این کدها: if L = "" ، یا if L is nothing یا if L = false

    و اما دو خط کد اصلی که نوشته ام:
    Dim L As Range
    ( Set L= Application.InputBox("select a cell you want", "select", , , , , , 8
    در کد خط زیر در جای علامت سوال نمیدانم چه کدی بنویسم (طبق شرح مذکور)
    if ???????????????????????????? then
    ............
    ............
    end if

    با تشکر
    عبداله
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزیز
    از اونجایی که با زدن دکمه cancel به ارور میخورید از این کد کمک بگیرین:

    کد:
    On Error GoTo Cancel
    Dim L As Range
    Set L = Application.InputBox("select a cell you want", "select", Type:=8)
    
    
    If L.Count > 0 Then
        'OK code goes here
    Else
    Cancel:
        'Cancel code goes here
    End If

    کامنت

    • navid136220

      • 2014/03/08
      • 19

      #3
      سلام استاد گرامی

      متاسفانه کدهایی که نوشته بودید نیز جواب نداد و در صورتیکه کاربر بدون انتخاب خانه، ok و یا cancel را بزند باز با پیغام خطاهای پیش فرض vba مواجه می شود و کدهای حلقه if کار نمی کند. ضمناً در مورد راست چین نمودن پیغام فارسی داخل کادر inputbox چیزی نفرمودید!

      با تشکر فراوان

      کامنت

      • Amir Ghasemiyan

        • 2013/09/20
        • 4598
        • 100.00

        #4
        نوشته اصلی توسط navid136220
        سلام استاد گرامی

        متاسفانه کدهایی که نوشته بودید نیز جواب نداد و در صورتیکه کاربر بدون انتخاب خانه، ok و یا cancel را بزند باز با پیغام خطاهای پیش فرض vba مواجه می شود و کدهای حلقه if کار نمی کند. ضمناً در مورد راست چین نمودن پیغام فارسی داخل کادر inputbox چیزی نفرمودید!

        با تشکر فراوان
        سلام دوست عزیز
        من چند بار چک کردم مشکلی نداشت. لطفا فایلتون رو بذارین شاید فایلتون مشکل داره

        در مورد راست چین کردن هم اطلاعی ندارم. فکر نکنم قابل انجام باشه. msgbox این قابلیت رو داره ولی inputbox احتمالا نداره

        کامنت

        • majid_mx4

          • 2012/06/25
          • 699

          #5
          با سلام

          ضمن تشکر از دوست و استاد عزیز جناب قاسمیان

          دوست عزیز لطفا بفرمایید شما دقیقا میخواهید با inputbox چه کار ی انجام بدهید. بعد در مورد بقیه موارد شاید بتوان کمی کرد.

          چرا نوع Type:=8 را انتخاب کرده اید

          پایدار باشید میر

          کامنت

          • navid136220

            • 2014/03/08
            • 19

            #6
            با سلام و خسته نباشید

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

            با تشکر
            فایل های پیوست شده

            کامنت

            • navid136220

              • 2014/03/08
              • 19

              #7
              با سلام خدمت استاد عزیز جناب آقای میر

              با inputbox میخواهم آدرس خانه ای را که کاربر انتخاب می کند یا می نویسد را داشته باشم و سپس کدهایی بنویسم که در موقع شروع عملیات از آدرس همان خانه شروع کند و به همین خاطر هم از type:=8 استفاده کرده ام.

              با تشکر

              کامنت

              • iranweld

                • 2015/03/29
                • 3341

                #8
                با سلام

                کد ذیل را تست کنید.

                با l.address شما میتوانید نام سلول یا نام محدوده انتخاب شده را بدست آورید

                کد PHP:
                Sub testinputbox()
                    
                Dim l As Range
                    Set l 
                Application.InputBox("Ñæí Çæáíä ÎÇäå Çí ˜å ÞÑÇÑ ÇÓÊ ÈäæíÓíÏ¡ í˜ÈÇÑ ˜á혠 äãÇÆíÏ æ ÓÓ ok ÑÇ ˜á혠äãÇÆíÏ""ÇäÊÎÇÈ"Type:=8)
                    If 
                l.Count 0 Then
                    
                        MsgBox l
                .Address vbNewLine "correct"
                    
                Else
                        
                MsgBox "ÎÇäå Çí ÑÇ ÇäÊÎÇÈ ä˜ÑÏå ÇíÏ"
                    
                End If
                End Sub 

                کامنت

                • navid136220

                  • 2014/03/08
                  • 19

                  #9
                  با سلام و تشکر از دوست عزیز iranweld

                  میدونم از l.address میتوانم استفاده کنم ولی نکته اینجاست که حلقه ی if نوشته شده در کدهای بالا کار نمی کند!

                  باز ممنون از وقتی که می گذارید.

                  کامنت

                  • majid_mx4

                    • 2012/06/25
                    • 699

                    #10
                    با سلام
                    دوست عزیز

                    دسترسی به بعضی از قسمتهای inputbox تقریبا غیر ممکن است برای همین بشما پشنهاد فایل ضمیمه و استفاده از RefEdit را میکنم.

                    بسیار کارایی تر و راحتر و تقریبا تمامی امکانات مورد نظر شما را دارد. (فقط یک پشنهاد است )

                    پایدار باشید میر
                    فایل های پیوست شده

                    کامنت

                    • navid136220

                      • 2014/03/08
                      • 19

                      #11
                      جناب آقای میر، با سلام و خسته نباشید

                      خیلی ممنونم پیشنهاد شما درست بود refedit هم کارآتره و هم امکانات inputbox را دارد. متشکرم از وقتی که گذاشتید و راهنماییم کردید.

                      کامنت

                      چند لحظه..