نمایش نتایج: از شماره 1 تا 4 , از مجموع 4

موضوع: کار کردن میلی ماکرو

  1. #1


    آخرین بازدید
    2019/12/17
    تاریخ عضویت
    June 2016
    نوشته ها
    147
    امتیاز
    120
    سپاس
    41
    سپاس شده
    100 در 53 پست
    سطح اکسل
    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
                If Target.Value = 0 Then Cells(Target.Row, 3) = ""
            End If
    
    end sub
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    پاسخ مورد نظر براي اين تاپيك ارسال شده است.

  2.  

  3. #2


    آخرین بازدید
    19 ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,469
    امتیاز
    12312
    سپاس
    8,924
    سپاس شده
    10,583 در 3,742 پست
    سطح اکسل
    100.00 %

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

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

    کد:
    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


  4. سپاس ها (1)


  5. #3


    آخرین بازدید
    2019/12/17
    تاریخ عضویت
    June 2016
    نوشته ها
    147
    امتیاز
    120
    سپاس
    41
    سپاس شده
    100 در 53 پست
    سطح اکسل
    41.00 %

    نقل قول نوشته اصلی توسط 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

  6. #4


    آخرین بازدید
    19 ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,469
    امتیاز
    12312
    سپاس
    8,924
    سپاس شده
    10,583 در 3,742 پست
    سطح اکسل
    100.00 %

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

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

    بله حتما

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

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

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

  7. سپاس ها (2)



اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است