کار کردن میلی ماکرو

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

    • 2016/06/29
    • 147
    • 41.00

    [حل شده] کار کردن میلی ماکرو

    سلام خدمت اساتید
    من یه ورقه دارم که توی اون 3 ستون A - B - C اطلاعات دارند به این ترتیب که تیون A و C متن و ستون B شامل عدد است من یک ماکرو نوشته ام به شرح زیر که اگر روی ستون B کلیک راست بکنم از عدد اون یکی کم میشه و اگه عدد صفر بشه سلول ستون C متناظرش پاک بشه ماکرو روی کار اول درست کار میکنه ولی روی دومی که کدش رنگی شده بعضی وقتا کار میکنه نعضی وقتا نه
    من هم موندم چرا
    البته باید بگم یه رویداد هم دارم که با هر تغییر سلول ستونها رو سورت میکنه


    کد:
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        Cancel = True
        
            If Target.Column = 2 And Target.Row >= 2 And Target.Row <= 30 Then
                If (Target.Value <> "") And (Target.Value <> 0) Then
                    Target.Value = Target.Value - 1
                End If
    [COLOR=#ff0000]            If Target.Value = 0 Then Cells(Target.Row, 3) = ""[/COLOR]
            End If
    
    end sub
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    سلام دوست عزيز

    ظاهرا كدي كه نوشتين درسته. نبايد مشكلي داشته باشه. با توجه به اينكه گفتين يك ايونت ديگه هم هست كه سورت انجام ميده پيشنهاد ميكنم كدهاتون رو به اينصورت اصلاح كنيد:

    کد:
    Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
        Cancel = True
        Application.EnableEvents = False
        If Not Intersect(Target, Range("B2:B30")) Is Nothing Then
            If Target.Value <> "" And Target.Value <> 0 Then Target.Value = Target.Value - 1
            If Target.Value = 0 Then Cells(Target.Row, 3) = ""
        End If
        Application.EnableEvents = True
    End Sub

    کامنت

    • كامران

      • 2016/06/29
      • 147
      • 41.00

      #3
      نوشته اصلی توسط Amir Ghasemiyan
      سلام دوست عزيز

      ظاهرا كدي كه نوشتين درسته. نبايد مشكلي داشته باشه. با توجه به اينكه گفتين يك ايونت ديگه هم هست كه سورت انجام ميده پيشنهاد ميكنم كدهاتون رو به اينصورت اصلاح كنيد:

      کد:
      Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
          Cancel = True
          Application.EnableEvents = False
          If Not Intersect(Target, Range("B2:B30")) Is Nothing Then
              If Target.Value <> "" And Target.Value <> 0 Then Target.Value = Target.Value - 1
              If Target.Value = 0 Then Cells(Target.Row, 3) = ""
          End If
          Application.EnableEvents = True
      End Sub

      ممنون از راهنمائیتون فقط بابت آموزش خودم یه سوال
      این کد :
      Application.EnableEvents
      سورت کردن رو خاموش روشن میکنه معلومه ولی ممنون میشم اینرو به زبون فارسی برام معنی کنید

      If Not Intersect(Target, Range("B2:B30")) Is Nothing Then

      کامنت

      • Amir Ghasemiyan

        • 2013/09/20
        • 4598
        • 100.00

        #4
        نوشته اصلی توسط كامران
        ممنون از راهنمائیتون فقط بابت آموزش خودم یه سوال
        این کد :
        Application.EnableEvents
        سورت کردن رو خاموش روشن میکنه معلومه ولی ممنون میشم اینرو به زبون فارسی برام معنی کنید

        If Not Intersect(Target, Range("B2:B30")) Is Nothing Then

        بله حتما

        تحت الفظیش میشه این:
        اگر نبود تقاطع بین target و محدوده B2 تا B30 مقداری تهی

        معنی عامیانش میشه اگر بین target و محدوده B2 تا B30 تقاطعی بود

        تقاطع هم یعنی اینکه حداقل یکی از سلول های محدوده اول با یکی از سلول های محدوده دوم یکسان باشن

        کامنت

        چند لحظه..