مرحوم محمد محمدی

🖤 پیام تسلیت

با نهایت تأسف و تأثر، باخبر شدیم جناب آقای محمد محمدی با نام کاربری smartman ، از مدیران ارزشمند انجمن اکسل ایران، دار فانی را وداع گفته‌اند.

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

مدیریت و اعضای انجمن ExcelIran این ضایعه را به خانواده محترم ایشان، دوستان و تمامی اعضای انجمن تسلیت عرض نموده و از خداوند متعال برای آن مرحوم، رحمت و مغفرت الهی و برای بازماندگان صبر و شکیبایی مسئلت دارند.


انا لله و انا الیه راجعون

خطا در شمارش سلولهای پر (که hidden ها شمرده نشود)

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

    • 2013/12/13
    • 74

    خطا در شمارش سلولهای پر (که hidden ها شمرده نشود)

    با سلام دوستان

    من میخوام با فشردن دکمه shomaresh تعداد خونه های ستون D که فیلتر نشدن و توی اونا نوشته good شمرده بشه و توی F2 نوشته بشه

    این خط کد رو هم براش نوشتم
    Range("F2").Value = Application.WorksheetFunction.CountIfs(Range("D:D" ), "good", Range("D:D"), Cells.Height > 0)

    ولی نمیدونم چرا تعداد رو صفر میده ؟

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

    در واقع میخوام خونه هایی که با فیلتر hidden شدن شمرده نشن به خاطر همین از شرط Cells.Height > 0 استفاده کردم ولی جواب رو صفر میده؟
    مشکل کجاست و راه حلش چیه؟ یا اینکه آیا روش بهتری وجود داره ؟

    ممنون

    khata dar shomaresh.xlsm
  • hs208

    • 2013/12/13
    • 74

    #2
    دوستان متاسفانه در بالا آدرس range("D: D") رو با شکلک :D نشان داده

    کد صحیح در فایل پیوستی موجود است

    کامنت

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

      • 2013/01/17
      • 1198
      • 84.00

      #3
      با درود

      ابتدا اون ردیف رو که ایجاد کردین . ردیف دوم که خالی هستش رو منظورم هست. بعد
      یه سل رو مثلا E1 رو داخلش بنویسین good یا اون شرطی که باید برسی بشه. بعد کد زیر رو برای همون باتن که گذاشتی بنویس
      کد:
      If Sheet1.Range("E1").Value = "" Then
      MsgBox "Please enter your condition in range E1 ", vbInformation
      Sheet1.Range("E1").Select
      Exit Sub
      End If
      Dim lastRow As Long
      
       lastRow = ActiveSheet.Cells(Rows.Count, "D").End(xlUp).Row
      
      j = 0
      For Each c In Sheet1.Range("D2:D" & lastRow)
              If Not c.Rows.Hidden = True And c.Value = Sheet1.Range("E1").Value Then
                  j = j + 1
                        
              End If
          Next c
          Sheet1.Range("F1").Value = j
      در پناه خداوندگار ایران زمین باشید و پیروز

      کامنت

      چند لحظه..