صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 16

موضوع: اشتباه در درج تاریخ سلول پر شده تحت شرایط خاص

  1. #1


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    اشتباه در درج تاریخ سلول پر شده تحت شرایط خاص

    سلام به اساتید گرامی

    چند وقت پیش با راهنمایی اساتید ماژولی نوشتم که تاریخ شمسی رو در سلول های متناظر سلول هایی که در آن اطلاعات ثبت میگردید به صورت خود کار وارد کند

    ولی جدیدا متوجه یک اشکال اساسی در این ماژول شدم . زمانی که بالا یا پایین سلول خالی ای که قصد وارد کردن اطلاعات را داریم قبلا پر شده باشد (حاوی اطلاعات باشد) و بخاهیم سلول خالی این بین را پر کنیم متوجه شدم در سلول های متناظر و هم چنین سلول های بالایی و پایینی قسمت درج تاریخ . همه با هم به تاریخ روز تغییر میکنند ! در صورتی که من فقط میخواهم سلول متناظر همان سلول خالی به صورت خودکار تاریخ بگیره .
    این جوری تاریخ های ثبت شده قبلی خودکار تغییر میکنه ! و به روز میشه . برای رفع این مشکل چه باید کرد ؟

    در نمونه فایل ضمیمه شده. در قسمت تاریخ های خودکار (که با کاندیشن سبز مشخص شده) من بیشتر سلول هارا با عدد 11 پر کردم و فقط 2 ردیف 9 و 14 صفحه خالی است . وفتی شما در ستون های Process 1 تا Process 11 و ردیف 9 و 14 اطلاعاتی وارد میکنید به غیر از سلول های متناظرش در قسمت تاریخ سلول های بالا یا پایینی آن ها هم تغییر میکند.
    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    فايل هاي پيوست شده فايل هاي پيوست شده
    پاسخ مورد نظر براي اين تاپيك ارسال شده است.

  2.  

  3. #2


    آخرین بازدید
    2023/08/17
    تاریخ عضویت
    March 2015
    محل سکونت
    آمل
    نوشته ها
    3,342
    امتیاز
    11574
    سپاس
    1,884
    سپاس شده
    8,164 در 3,010 پست
    تعیین سطح نشده است

    با سلام

    ظاهرا برای اجرای ماکرو در صورت تغییر در ستون r دو ماکرو متفاوت تعریف کردید

    خط پایین را غیر فعال کنید درست جواب میده

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام:  Untitled.png
مشاهده: 14
حجم:  117.6 کیلو بایت


  4. #3


    آخرین بازدید
    یک ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,473
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    سلام دوست عزیز
    علاوه بر نکته ای که جناب iranweld مطرح کردند دقت کنید که وقتی عددی داخل محدوده وارد میکنید و اینتر رو میزنید target شما عوض میشه و سلول پایینی انتخاب میشه
    یا باید از کلیدهای ترکیبی ctrl+enter استفاده کنید یا اینکه کدتون رو اصلاح کنید که سلول بالایی target رو لحاظ کنه

  5. سپاس ها (2)


  6. #4


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    نقل قول نوشته اصلی توسط iranweld نمایش پست ها
    با سلام

    ظاهرا برای اجرای ماکرو در صورت تغییر در ستون r دو ماکرو متفاوت تعریف کردید

    خط پایین را غیر فعال کنید درست جواب میده

    برای دیدن سایز بزرگ روی عکس کلیک کنید

نام:  Untitled.png
مشاهده: 14
حجم:  117.6 کیلو بایت
    این رنج ها تکراری ولی با اسامی جدید تعریف کردم تا بتونم با وارد کردن اطلاعات در سلول و رفتن به سلول پایین هم تاریخ رو ثبت کنه . در غیر این صورت وقتی شما اون دامنه ها و ماژول هارو نداشته باشید
    برای
    کد PHP:
    Sub data17()

    Dim iAs Integer
    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer

     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column

    If Cells(rowNumberValue 17) <> "" Then
      Cells
    (rowNumberValue 130) = J_TODAY(1)
        
    End If

    End Sub
    Sub data18
    ()

    Dim iAs Integer

    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer



     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column


    If Cells(rowNumberValue 18) <> "" Then
      Cells
    (rowNumberValue 131) = J_TODAY(1)
          
    End If

    End Sub

    Sub data19
    ()

    Dim iAs Integer
    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer

     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column

    If Cells(rowNumberValue 19) <> "" Then
      Cells
    (rowNumberValue 132) = J_TODAY(1)
        
    End If

    End Sub
    Sub data20
    ()

    Dim iAs Integer

    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer



     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column


    If Cells(rowNumberValue 110) <> "" Then
      Cells
    (rowNumberValue 133) = J_TODAY(1)
       
    End If

    End Sub

    Sub data21
    ()

    Dim iAs Integer
    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer

     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column

    If Cells(rowNumberValue 111) <> "" Then
      Cells
    (rowNumberValue 134) = J_TODAY(1)
        
    End If

    End Sub
    Sub data22
    ()

    Dim iAs Integer

    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer



     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column


    If Cells(rowNumberValue 112) <> "" Then
      Cells
    (rowNumberValue 135) = J_TODAY(1)
          
    End If

    End Sub

    Sub data23
    ()

    Dim iAs Integer
    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer

     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column

    If Cells(rowNumberValue 113) <> "" Then
      Cells
    (rowNumberValue 136) = J_TODAY(1)
        
    End If

    End Sub
    Sub data24
    ()

    Dim iAs Integer

    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer



     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column


    If Cells(rowNumberValue 114) <> "" Then
      Cells
    (rowNumberValue 137) = J_TODAY(1)
       
    End If

    End Sub

    Sub data25
    ()

    Dim iAs Integer
    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer

     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column

    If Cells(rowNumberValue 115) <> "" Then
      Cells
    (rowNumberValue 138) = J_TODAY(1)
        
    End If

    End Sub
    Sub data26
    ()

    Dim iAs Integer

    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer



     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column


    If Cells(rowNumberValue 116) <> "" Then
      Cells
    (rowNumberValue 139) = J_TODAY(1)
          
    End If

    End Sub

    Sub data27
    ()

    Dim iAs Integer
    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer

     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column

    If Cells(rowNumberValue 117) <> "" Then
      Cells
    (rowNumberValue 140) = J_TODAY(1)
        
    End If

    End Sub
    Sub data28
    ()

    Dim iAs Integer

    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer



     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column


    If Cells(rowNumberValue 118) <> "" Then
      Cells
    (rowNumberValue 141) = J_TODAY(1)
       
    End If

    End Sub

    Sub data29
    ()

    Dim iAs Integer
    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer

     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column

    If Cells(rowNumberValue 119) <> "" Then
      Cells
    (rowNumberValue 142) = J_TODAY(1)
        
    End If

    End Sub
    Sub data30
    ()

    Dim iAs Integer

    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer



     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column


    If Cells(rowNumberValue 120) <> "" Then
      Cells
    (rowNumberValue 143) = J_TODAY(1)
          
    End If

    End Sub

    Sub data31
    ()

    Dim iAs Integer
    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer

     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column

    If Cells(rowNumberValue 121) <> "" Then
      Cells
    (rowNumberValue 144) = J_TODAY(1)
        
    End If

    End Sub

    Sub data32
    ()

    Dim iAs Integer
    Dim rowNumberValue 
    As IntegercolumnNumberValue As Integer

     rowNumberValue 
    ActiveCell.Row
    columnNumberValue 
    ActiveCell.Column

    If Cells(rowNumberValue 122) <> "" Then
      Cells
    (rowNumberValue 145) = J_TODAY(1)
        
    End If

    End Sub 
    وقتی شما اطلاعات رو زیرهم وارد کنید تاریخ نمیزنه حتما باید بعد از وارد کردن اطلاعات به سلول کناریش برید تا تاریخ ثبت بشه

  7. #5


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    میدونید علت این کد نویسی چیه ؟ علتش اینه که روش وارد کردن اطلاعات ممکنه هم کنار هم باشه یعنی به صورت سطری وارد بشه هم به صورت ستونی زیر هم کم پیش میاد به صورت ستونی بالای هم وارد بشه

    حالا اگه بخواهیم این وار کردن اطلاعات مشکلی برای تاریخ های بالا و پایین سلول متناظر پیش نیاره چه باید کرد

  8. #6


    آخرین بازدید
    یک ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,473
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    چیزی که من از کد شما متوجه شدم اگه درست باشه شما نیاز به هیچ کدوم از اون کدها ندارین
    فقط همین چند خط کد کافیه:
    کد:
    Sub Worksheet_Change(ByVal Target As Range)
    Cells(Target.Row, Target.Column + 23) = J_TODAY(1)
    End Sub

  9. سپاس ها (3)


  10. #7


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    دست شما درد نکنه
    فقط ت ماژول تاریخ نمی دونم چرا اررور میده
    کد PHP:
    Function J_TODAY(Optional mode As Integer)

        
    Application.Volatile True
        Dim x1 
    As New DateClass
        x1
    .Initial
        
        
    If mode 1 Then
            
            J_TODAY 
    FDate(x1.JToday("long"))
        Else
            
    J_TODAY FDate(x1.JToday("Short"))
        
    End If

    End Function 

  11. #8


    آخرین بازدید
    2023/12/30
    تاریخ عضویت
    April 2014
    محل سکونت
    ساوه
    نوشته ها
    347
    امتیاز
    417
    سپاس
    853
    سپاس شده
    266 در 129 پست
    سطح اکسل
    45.00 %

    نقل قول نوشته اصلی توسط amir ghasemiyan نمایش پست ها
    چیزی که من از کد شما متوجه شدم اگه درست باشه شما نیاز به هیچ کدوم از اون کدها ندارین
    فقط همین چند خط کد کافیه:
    کد:
    Sub Worksheet_Change(ByVal Target As Range)
    Cells(Target.Row, Target.Column + 23) = J_TODAY(1)
    End Sub

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

  12. #9


    آخرین بازدید
    یک ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,473
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    نقل قول نوشته اصلی توسط sabertb نمایش پست ها
    دست شما درد نکنه
    فقط ت ماژول تاریخ نمی دونم چرا اررور میده
    کد PHP:
    Function J_TODAY(Optional mode As Integer)

        
    Application.Volatile True
        Dim x1 
    As New DateClass
        x1
    .Initial
        
        
    If mode 1 Then
            
            J_TODAY 
    FDate(x1.JToday("long"))
        Else
            
    J_TODAY FDate(x1.JToday("Short"))
        
    End If

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

  13. سپاس ها (1)


  14. #10


    آخرین بازدید
    یک ساعت پیش
    تاریخ عضویت
    September 2013
    محل سکونت
    بچه محل آقا امام رضا
    نوشته ها
    4,473
    امتیاز
    12316
    سپاس
    8,923
    سپاس شده
    10,587 در 3,746 پست
    سطح اکسل
    100.00 %

    نقل قول نوشته اصلی توسط sabertb نمایش پست ها
    یه مشکلم که هست اینه وقتی اطلاعات رو تو سل ها کپی میکنم یا از یک سل میگیرم و تامیم میدم به بقلی ها و زیری ها جواب نمیده بعلاوه اررو که از تاریخ میگیره
    من فکر کردم فقط دستی داده وارد میکنید. اگه قرار باشه کپی کنید یا فیل کنید یک حلقه نیاز دارید. من تست کردم این برنامه کاملا جواب میده مشکلی نداره
    کد:
    Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    For Each cell In Selection
        If Not Intersect(Target, Selection) Is Nothing Then Cells(cell.Row, cell.Column + 23) = J_TODAY(1)
    Next
    End Sub

  15. سپاس ها (3)



صفحه 1 از 2 12 آخرینآخرین

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

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

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

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

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

کلمات کلیدی این موضوع

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

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

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