نویسنده موضوع: ثبت تاریخ خودکار بدون تغییر با گذشت زمان  (دفعات بازدید: 18775 بار)

s.sarhadi

  • کاربر فعال
  • ***
  • ارسال: 228
  • جمع امتیازها: +24/-3
سلام مجدد
راهی هست که با باز شدن فایل اکسل، توی یه سلول تاریخ روز به طور خودکار وارد بشه ولی بعد از ذخیره کردنش ثابت بمونه؟
یعنی اگه دو روز بعد فایل رو باز کنم تاریخ همون تاریخ روز ذخیره فایل باقی بمونه؟
نمی خوام از تاریخ غیر فرمولی یعنی ctrl+; استفاده کنم. می خوام کاملا خودکار باشه

lamp

دانلود فهرست + فصل اول کتاب توابع و فرمول نویسی اکسل

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


یاسر طاهرخانی

  • عضو پیشـــرو
  • *****
  • ارسال: 609
  • جمع امتیازها: +108/-56
  • دانش را با نوشتن به زنجیر بکشید
    • حسابداری در اکسل
سلام من نمیدونم چنین کاری میشه کرد یانه
ولی باید اینو بگم که شما دارید میگید وقتی فایل رو باز کردم تاریخ به صورت خودکار درج بشه توسلول ولی وقتی ذخیره کردین فایلو تاریخ ثابت بمونه
حالا من یه سوال دارم ازتون :
اکسل از کجا بفهمه که شما فردا که فایل رو باز کردین میخواین تاریخ روز قبل ثابت مونده باشه
من میخوام بگم که جمله اول و دوم شما همدیگرو نقض میکنن
البته من جسارت نکردم
امیدوارم که جواب داشته باشه

s.sarhadi

  • کاربر فعال
  • ***
  • ارسال: 228
  • جمع امتیازها: +24/-3
 ;D
آره راست می گید من باید بهتر توضیح میدادم
من یه تمپلیت ساختم که با استفاده از today تاریخش همیشه به طور خودکار آپدیته ولی بعد که ذخیره میکنم تو فایل جدید می خوام همون تاریخ بمونه  ;)

یاسر طاهرخانی

  • عضو پیشـــرو
  • *****
  • ارسال: 609
  • جمع امتیازها: +108/-56
  • دانش را با نوشتن به زنجیر بکشید
    • حسابداری در اکسل
امیدوارم سوء تفاهم پیش نیومده باشه
من خیلی فکر کردم آیا چنین کاری میشه کرد یانه ولی به نتیجه ای نرسیدم شاید از دوستان کسی بدونه

اما فایل زیر رو انجام دادم شاید یه بارقه ای در ذهن شما زده بشه
در فایل پیوست شما با تیک کردن ثبت تاریخ به اکسل میفهمونید که کدوم تاریخ رو لحاظ بکنه
من خودم قبلا یک لیست چک درست کرده بودم که به این روش بود و چک هایی که تاریخشون می رسید براساس یک سری فاکتورها اونها رو پاس شده یا پاس نشده اعلام می کرد
امیدوارم مفید واقع بشه

علی فیروزجایی

  • عضو ارشد انجمن
  • ****
  • ارسال: 260
  • جمع امتیازها: +194/-2
  • گاهی سکوت نشانه بی تفاوتی است نه رضایت.
    • توسعه و عمران شاخص
با عرض سلام
باید عرض کنم با چندبار خواندن سوال به سختی متوجه شدم که موضوع چه می باشد.
اما فکر می کنم توانسته باشم به سوال دوستمان واب داده باشم.
با استفاده از کد vb که به صورت زیر می باشد فایل نمونه را هم پیوست نمودم.
امیدوام که جواب سوال همین باشد.
با احترام
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("آیا تاریخ امروز در سلول مورد نظر ثبت شود؟", _
vbYesNo + vbDefaultButton2 + vbQuestion, Application.UserName) = vbYes Then Sheet1.Range("a1") = Now
End Sub

Private Sub Workbook_Open()
If Sheet1.Range("a1") = Empty Then Sheet1.Range("a1") = Now
End Sub

lamp

دانلود فهرست + فصل اول کتاب توابع و فرمول نویسی اکسل

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


s.sarhadi

  • کاربر فعال
  • ***
  • ارسال: 228
  • جمع امتیازها: +24/-3
ممنون از دوست عزیز جناب آقای فیروز جایی
میشه لطف کنید توضیح بدید که این کد دقیقا چکار می کنه؟
ببخشید من خیلی از VB سر در نمیارم

علی فیروزجایی

  • عضو ارشد انجمن
  • ****
  • ارسال: 260
  • جمع امتیازها: +194/-2
  • گاهی سکوت نشانه بی تفاوتی است نه رضایت.
    • توسعه و عمران شاخص
سلام مجدد
نفرمودید که آیا مشکل شما حل شد یا نه؟
توضیح آن اینست که در روال زیر قبل از خروج از فایل(بستن برنامه) از شما سوال میشود که آیا تاریخ جاری را در سلول مورد نظر جایگزین کند؟
این برای موقه ای استفاده می شود که آخرین زمان ورود به فایل را ثبت می کند.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("آیا تاریخ امروز در سلول مورد نظر ثبت شود؟", _
vbYesNo + vbDefaultButton2 + vbQuestion, Application.UserName) = vbYes Then Sheet1.Range("a1") = Now
End Sub


اما کد زیر، چنانچه سلول مورد نظر(تاریخ)خالی باشد تاریخ جاری جاری را ثبت می کند، در غیر این صورت تاریخ ثبت شده قبلی ثابت می ماند.
Private Sub Workbook_Open()
If Sheet1.Range("a1") = Empty Then Sheet1.Range("a1") = Now
End Sub
این دو روال را باید در Object<ThisWorkbook قرار بگیرد.
امیدوارم با توضیح مختصر مطلب را رسانده باشم.

با سپاس

s.sarhadi

  • کاربر فعال
  • ***
  • ارسال: 228
  • جمع امتیازها: +24/-3
ممنونم
هرچند این لطف شما باعث شد من یه چیز جدید یاد بگیرم اما مشکل من این نیست یا لااقل نمیخوام اینجوری حل شه.
چیزی که من می خوام اینه که تاریخ توی فایل ذخیره شده از روی تمپلیت، ثابت بمونه.
من یه تمپلیت دارم که مربوط به شکل کلی فاکتوره. تو سلول تاریخ از تابع Today استفاده کردم که تاریخ روز رو برگردونه.
هربار با تکمیل فاکتور و ثبت اون، یه فایل اکسل جدید برای اون فاکتور خاص ایجاد می شه که به طور جداگانه از سایر فاکتور ها، توی فولدر فاکتورها ذخیره میشه. طبعاً سلول مربوط به تاریخ هم همونجوری یعنی با تابع Today ذخیره میشه. بنابراین اگر مثلاً 10 روز دیگه به اون فاکتور خاص رجوع کنم، به دلیل وجود تابع Today تاریخ، تاریخ روز خواهد بود نه تاریخ فاکتور.
حالا من می خوام وقتی فایل فاکتور شماره فلان از روی تمپلیت ذخیره میشه، تو سلول تاریخ به جای فرمول Today نتیجه فرمول یعنی تاریخ تنظیم فاکتور ذخیره بشه.
امیدوارم تونسته باشم منظورم رو منتقل کنم.

علی فیروزجایی

  • عضو ارشد انجمن
  • ****
  • ارسال: 260
  • جمع امتیازها: +194/-2
  • گاهی سکوت نشانه بی تفاوتی است نه رضایت.
    • توسعه و عمران شاخص
سلام
لطفا نمونه فایل را پیوست بفرما
با تشکر

s.sarhadi

  • کاربر فعال
  • ***
  • ارسال: 228
  • جمع امتیازها: +24/-3

lamp

دانلود فهرست + فصل اول کتاب توابع و فرمول نویسی اکسل

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


علی فیروزجایی

  • عضو ارشد انجمن
  • ****
  • ارسال: 260
  • جمع امتیازها: +194/-2
  • گاهی سکوت نشانه بی تفاوتی است نه رضایت.
    • توسعه و عمران شاخص
پاسخ : ثبت تاریخ خودکار بدون تغییر با گذشت زمان
« پاسخ #10 : 21 اردیبهشت 1392 - 00:26 »
باید خدمت شما عرض کنم فایلی را که آپلود کرده اید ناقص می باشد.
شما می توانید فایل مورد نظرت را در همین انجمن موقع ای که میخواهید موضوعی را ارسال نمایید در  قسمت پایین کادر، بخش +اانتخابهای اختیاری بیشتر... را کلیک نموده و فایل را آپلود نمایی.
لطفا فایل نمونه را در همین بخش مجدداً ارسال بفرما.
با سپاس

amtekc

  • کاربر تازه‌وارد
  • *
  • ارسال: 26
  • جمع امتیازها: +1/-2
سلام
این مبحث دو سال پیش مطرح شده که احتمالا خانم سرحدی حتما راه حلی را برای مشکلشون پیدا کردند ولی ممکنه مشکل افراد دیگری هم باشه، لذا دوباره بحث را باز کردم:
طرح مسئله:
ظاهرا خانم سرحدی یک فایل موقت(تمپلت) درست کردند و انتظارشون این هست که اطلاعات را در اون وارد کنند و وقتی ذخیره سازی انجام میشه این فایل موقت در یک فایل جدید ذخیره بشه (اگر بخواهد اطلاعات در همون فایل ذخیره بشه دیگه تمپلت نخواهد بود!!!)
فرضا سلول A1 سلولی هست که باید تاریخ درج بشه، خب با دستور today با باز شدن فایل تاریخ درج میشه ولی با هر بار باز شدن فایل رفرش خواهد شد، برای حل این مشکل می توان از سلول دیگری به صورت کمکی استفاده کرد و دستور today را در سلول کمکی اجرا کرد سپس value ی آنرا توسط دستور paste special در سلول A1 قرار داد.

Iranweld

  • کاربر فعال
  • ***
  • ارسال: 191
  • جمع امتیازها: +96/-2
با سلام

در فایل پیوست با باز فایل اکسل ماکرویی فراخوانی شده که معادل تاریخ روز به شمسی را در بعضی از سلولها بصورت مختلف  وارد میکند. و اگر قصد دارید در روزهای بعدی با باز شدن فایل تاریخ قبلی تغییر نکند با یک دستور شرطی که مقدار سلول را چک کند و اگر سلول پر نبود ماکرو اجرا شود به خواسته خود برسید

Private Sub Workbook_Open()

Sheet1.Activate

MACRO1

End Sub

Sub MACRO1()

Range("A1").Value = JToday

Range("A3").Value = J_TODAY(1)

Range("A5").Value = J_TODAY()

Range("A7").Value = J_WEEKDAY(J_TODAY(), 1)

End Sub

RAMEZANIMAHDI

  • کاربر تازه‌وارد
  • *
  • ارسال: 1
  • جمع امتیازها: +0/-0
سلام
آقای مهندس من هر چقدر فرمول زیر را امتحان می کنم نمی تونم به هدفم دست پیدا کنم.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If MsgBox("آیا تاریخ امروز در سلول مورد نظر ثبت شود؟", _
vbYesNo + vbDefaultButton2 + vbQuestion, Application.UserName) = vbYes Then Sheet1.Range("a1") = Now
End Sub

Private Sub Workbook_Open()
If Sheet1.Range("a1") = Empty Then Sheet1.Range("a1") = Now
End Sub
هدف من اینه که هر موقع اکسل را باز می کنم و تغییراتی در شیت های مختلف آن ایجاد می کنم تاریخ را در یک سلول در یک شیت مورد نظر ثبت کنه
لطفا قدم به قدم  برام توضیح بدهید
منتظر جواب شما هستم.
ممنون