تغییر عددsumif ,countif و درج فرمول با استفاده از vba

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

    • 2017/12/18
    • 112
    • 39.00

    [حل شده] تغییر عددsumif ,countif و درج فرمول با استفاده از vba

    با سلا م و خسته نباشید
    فایل اکسلی را به همراه توضیحات ضمیمه کرده ام، خواهشمندم راهنمایی بفرمائید.
    باتشکر
    فایل های پیوست شده
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزيز
    چرا اصرار داريد حتما با vb حل بشه؟
    خود اكسل راه حل هاي ساده اي داره نيازي به كدنويسي نيست

    کامنت

    • habib100

      • 2017/12/18
      • 112
      • 39.00

      #3
      سلام
      بله درست می فرمایید ، هر چند ماکرو باعث سنگینی فایل می شود ولی جهت جلوگیری از پاک شدن تصادفی داده ها توسط کاربر وارتباطی که شیتها با هم دارند که باعث می شود خروجی ها اشتباه شوند، و سئوال دوم با راه حل های ساده اکسل قابل انجام نبود و دانستن این موارد با ماکرو برایم جالب می باشد.

      ممنونم از همکاری شما

      کامنت

      • habib100

        • 2017/12/18
        • 112
        • 39.00

        #4
        با سلام
        ممکن هست دوستان راهنمایی کنن؟

        کامنت

        • M_ExceL

          • 2018/04/23
          • 677

          #5
          نوشته اصلی توسط habib100
          با سلا م و خسته نباشید
          فایل اکسلی را به همراه توضیحات ضمیمه کرده ام، خواهشمندم راهنمایی بفرمائید.
          باتشکر
          سلام،
          برای شیت اول کد زیر :
          کد:
          Private Sub Worksheet_Change(ByVal Target As Range)
          lr1 = Cells(Rows.Count, 4).End(3).Row
          lr2 = Cells(Rows.Count, 5).End(3).Row
          If lr1 > lr2 Then
          lrow = lr1
          Else
          lrow = lr2
          End If
          If WorksheetFunction.CountA(Range("d" & lrow & ":e" & lrow)) > 1 Then
          Range("f" & lrow) = "=d" & lrow & "*e" & lrow
          End If
          End Sub
          برای شیت دوم کد زیر رو استفاده کنید :
          کد:
          Sub sm_cntf()
          Dim rr() As Variant
          Dim rr2() As Variant
          lr = Cells(Rows.Count, 1).End(3).Row
          Dim cel, rng As Range
          Set rng = Range("a5:a" & lr).SpecialCells(xlCellTypeVisible)
          rd = WorksheetFunction.CountA(rng)
          ReDim Preserve rr(1 To rd)
          ReDim Preserve rr2(1 To rd)
          i = 1
          j = 1
              With Application
                  .EnableEvents = False
                  .ScreenUpdating = False
                      For Each cel In rng
                          If cel = Range("a2") Then
                              rr(i) = cel.Offset(, 1)
                              i = i + 1
                          End If
                          If cel = Range("a3") Then
                              rr2(j) = cel.Offset(, 1)
                              j = j + 1
                          End If
                      Next
                  .ScreenUpdating = True
                  .EnableEvents = True
              End With
          Range("d2") = WorksheetFunction.Sum(rr)
          Range("d3") = WorksheetFunction.Sum(rr2)
          Range("g2") = i - 1
          Range("g3") = j - 1
          End Sub
          یا حق.
          فایل های پیوست شده
          [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
          [/CENTER]

          کامنت

          • habib100

            • 2017/12/18
            • 112
            • 39.00

            #6
            سلام
            ممنون برای شیت 1 کار نمی کند؟

            کامنت

            • M_ExceL

              • 2018/04/23
              • 677

              #7
              نوشته اصلی توسط habib100
              سلام
              ممنون برای شیت 1 کار نمی کند؟
              کار میکنه،
              البته درصورتی که ستون های e و d خالی نباشند، می تونید شرط رو تغییر بدید.
              [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
              [/CENTER]

              کامنت

              • habib100

                • 2017/12/18
                • 112
                • 39.00

                #8
                سلام
                موقعی که در ستون e عدد می زنم ، error عکس پیوست را می دهد . و محاسبه را درست ثبت می کند این ارور مربوط به چیه؟[ATTACH=CONFIG]19499[/ATTACH]

                کامنت

                • M_ExceL

                  • 2018/04/23
                  • 677

                  #9
                  نوشته اصلی توسط habib100
                  سلام
                  موقعی که در ستون e عدد می زنم ، error عکس پیوست را می دهد . و محاسبه را درست ثبت می کند این ارور مربوط به چیه؟[ATTACH=CONFIG]19499[/ATTACH]
                  کد زیر رو جایگزین کنید :
                  کد:
                  Private Sub Worksheet_Change(ByVal Target As Range)
                  Application.EnableEvents = False
                  lr1 = Cells(Rows.Count, 4).End(3).Row
                  lr2 = Cells(Rows.Count, 5).End(3).Row
                  If lr1 > lr2 Then
                  lrow = lr1
                  Else
                  lrow = lr2
                  End If
                  If WorksheetFunction.CountA(Range("d" & lrow & ":e" & lrow)) > 1 Then
                  Range("f" & lrow) = "=d" & lrow & "*e" & lrow
                  End If
                  Application.EnableEvents = True
                  End Sub
                  [CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
                  [/CENTER]

                  کامنت

                  • habib100

                    • 2017/12/18
                    • 112
                    • 39.00

                    #10
                    ممنون درست شد.

                    کامنت

                    چند لحظه..