دستوری برای جمع زدن

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • mokaram
    مدير تالار اکسل و بانک اطلاعاتی

    • 2011/02/06
    • 1805
    • 74.00

    دستوری برای جمع زدن

    با سلام
    یه متغیر تعریف کردم از آ ۱ تا زد ۱ و تو هر خونه یه کد نوشته شده
    و زیر هر کد چند تا عدد هست.
    چطوری میتونم دستوری بنویسم که اگه تو تکست باکس ۱ یه کدوم از متغییر ها
    را زدم بیاد اعداد زیر اون متغیر را جمع بزنه
    [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
    [/CENTER]
  • Amirsayyafi

    • 2011/06/25
    • 277

    #2
    RE: دستوری برای جمع زدن

    درخواستتون خیلی مبهمه. ولی تصور کنم با HLOOKUP جواب میده.
    [color=#6B8E23]
    [b]این نیز بگذرد.[/b][/color]

    کامنت

    • mokaram
      مدير تالار اکسل و بانک اطلاعاتی

      • 2011/02/06
      • 1805
      • 74.00

      #3
      RE: دستوری برای جمع زدن

      نوشته اصلی توسط Amirsayyafi
      درخواستتون خیلی مبهمه. ولی تصور کنم با HLOOKUP جواب میده.

      طبق عکس بالا میخوام اگه هر کدوم از کدها را که زدم ، مجموع اعداد زیر اون کد تو تکس باکس بعدی نشون داده بشه


      [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
      [/CENTER]

      کامنت

      • Amirsayyafi

        • 2011/06/25
        • 277

        #4
        RE: دستوری برای جمع زدن

        من وی بی بلد نیستم ولی فایل زیر میتونه پاسخ شما باشه.


        http://persiandrive.com/346837
        [color=#6B8E23]
        [b]این نیز بگذرد.[/b][/color]

        کامنت

        • EBRAHIMSASANI

          • 2011/06/11
          • 33

          #5
          RE: دستوری برای جمع زدن

          با سلام

          دوست عزیز در فایلی که براتون تسویه حساب انجام میداد من این کارو براتون انجام داده بودم ولی با این حال فایل زیر رو ببینید

          http://upin.ir/images/xe9yziqyt9iyipuzxtwa.xls

          کامنت

          • mokaram
            مدير تالار اکسل و بانک اطلاعاتی

            • 2011/02/06
            • 1805
            • 74.00

            #6
            RE: دستوری برای جمع زدن

            نوشته اصلی توسط EBRAHIMSASANI
            با سلام

            دوست عزیز در فایلی که براتون تسویه حساب انجام میداد من این کارو براتون انجام داده بودم ولی با این حال فایل زیر رو ببینید

            http://upin.ir/images/xe9yziqyt9iyipuzxtwa.xls
            ممنون دوست عزیز
            میشه در باره این کد:
            کد PHP:
            txt = Array("a2:a65536""b2:b65536""c2:c65536""d2:d65536""e2:e65536""f2:f65536""g2:g65536""h2:h65536"
            و این کد :
            کد PHP:
            TextBox2.Text Application.WorksheetFunction.Sum(Sheet1.Range(txt(c.Column 1))) 
            یه توضیحی بدید که چی میگه
            [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
            [/CENTER]

            کامنت

            • EBRAHIMSASANI

              • 2011/06/11
              • 33

              #7
              RE: دستوری برای جمع زدن

              با سلام
              Dim txt
              با این کد متغیر txt را تعریف نمودیم


              txt = Array("a2:a65536", "b2:b65536", "c2:c65536", "d265536", "e2:e65536", "f2:f65536", "g2:g65536", "h2:h65536")1
              در کد بالا با استفاده از آرایه یک بعدی به متغیر txt مقداردادیم
              توضیح اینکه آرایه ها جهت ذخیره مجموعه ای از داده ها بکار می روند ( دقت کنید که مجموعه ای از داده ها ) . آرایه ها متغیرهایی محسوب می شوند که به جای یک مقدار چندین مقدار را ذخیره می کنند که vba از آرایه های یک بعدی و چند بعدی پشتیبانی می کند . در این کد متغیر txt آرایه ای یک بعدی می باشد که برای ذخیره مقادیر ستونهای A تا H بکار رفته به غیر از ردیف یک این ستونها .
              یک آرایه تک بعدی یک ستون از داده های مربوطه می باشد ( و یا یک سطر ) و دارای نام و مؤلفه جهت دسترسی به مقادیر موجود در آرایه .


              می توانیم کد را به صورت زیر نیز تعریف کنیم
              Dim txt(7) As Range ( آرایه شامل 8 مؤلفه می باشد از 0 تا 7) که txt(0)1 در کد فوق معادل "a2:a65536" می باشد و txt(1) 1معادل "b2:b65536" و الخ


              For Each c In Sheet1.Range("a1:h1") 1
              شروع حلقه for/each که متغیر c را در مجموعه A1:H1 تعریف کرده ایم یعنی این حلقه در بین خانه های A1 تا H1 گردش می کند و شرطها و دستورات قرارگرفته در درون حلقه را برای این خانه ها بررسی و اجرا می کند


              If c = TextBox1.Text Then
              اگر متغیر c مقدارش با مقدار textbox1 برابر باشد مثلاً 101 باشد


              TextBox2.Text = Application.WorksheetFunction.Sum(Sheet1.Range(txt (c.Column-1)))1
              Application.WorksheetFunction.sum
              این کد مشخص می کند که می خواهیم از فرمولهای موجود در اکسل استفاده کنیم که در این جا sum می باشد
              Sheet1.Range(txt(c.Column – 1))1 معادل شیت یک ، مجموعه txt(1)1 می باشد c.columnیا شماره ستون برای متغیر c به عنوان مثال c=101 برابر 2 می باشد که اگر یک را از آن کم کنیم برابر یک می شود و در آرایه txt(1)1 معادل "b2:b65536" می باشد که مجموعه ی زیر ستون با سرستونی 101 می باشد ممکن است سؤالی پیش بیاید و آن اینکه چرا از شماره ستون یک را کم کنیم جواب این است که در تعریف آرایه کران پایین آرایه به طور پیش فرض صفر می باشد یعنی شماره ستون خانه های زیر ستون b که در کد ما شامل b2:b65536 می شوند و در آرایه به عنوان دومین مجموعه هستند دو می باشد حال ما برای اشاره به مجموعه b2:b65536 در آرایه باید شماره مؤلفه یک را انتخاب کنیم یعنیtxt(1)1

              End If
              پایان شرط

              Next c
              پایان حلقه c

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

              امیدوارم تونسته باشم منظور رو رسونده باشم

              کامنت

              • mokaram
                مدير تالار اکسل و بانک اطلاعاتی

                • 2011/02/06
                • 1805
                • 74.00

                #8
                RE: دستوری برای جمع زدن

                خیلی زیبا و با بلاغت گفته
                ممنون
                [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
                [/CENTER]

                کامنت

                • alisabet

                  • 2011/09/08
                  • 159
                  • 45.00

                  #9
                  RE: دستوری برای جمع زدن

                  با اجازه اساتيد محترم

                  اين فايل را هم ببين
                  http://uplod.ir/w1h92grwk4wk/total.xlsm.htm

                  کامنت

                  • ~M*E*H*D*I~
                    • 2011/10/19
                    • 4377
                    • 70.00

                    #10
                    RE: دستوری برای جمع زدن

                    نمیدونم چه اصراری بر استفاده از فرم بوده گرچه در vba هم میشه این کارو کرد با یک خط کد و ترکیب سه فرمول sum,offset, count
                    [CENTER]
                    [SIGPIC][/SIGPIC]
                    [/CENTER]

                    کامنت

                    • ~M*E*H*D*I~
                      • 2011/10/19
                      • 4377
                      • 70.00

                      #11
                      RE: دستوری برای جمع زدن

                      با سلام

                      یه فایل برای سوال آماده کردم فک کنم مشکل حله با روش های مختلف هم ارائه شده سوالی بود در خدمتم
                      فایل های پیوست شده
                      [CENTER]
                      [SIGPIC][/SIGPIC]
                      [/CENTER]

                      کامنت

                      • mokaram
                        مدير تالار اکسل و بانک اطلاعاتی

                        • 2011/02/06
                        • 1805
                        • 74.00

                        #12
                        RE: دستوری برای جمع زدن

                        خیلی ممنون استاد[hr]
                        خیلی ممنون استاد
                        [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
                        [/CENTER]

                        کامنت

                        چند لحظه..