شمسی سازی تاریخ در نرم افزار Ms.Project

در این مطلب سعی کرد ه ایم 2 روش شمسی سازی تاریخ در نرم افزار  Ms.Project را مورد برسی قرار دهیم

 روش اول شمسی ساز ی تاریخ با ماکرو نویسی:

 در بروی منوی viewابتدا از ریبون

کلیک نمایید  از قسمت ویژوال بیسیک به داخل نمای ماکرونویسی برویدMacros

در صفحه بازشده به آدرس

 Insert>Moduleبروید

حال پنجره کوچکی باز می شود که نام آن ماژول 1 می باشد فرمول زیر را همانند شکل زیر در آن کپی نمایید

 

Option Base 0

Public ConstSHBaseYear = 1278

Public ConstSHBaseMonth = 12

Public ConstSHBaseDay = 29

Function SHIsLeap_Year(ByValShYear As Long) As Boolean

Dim LEAP1 As Single

SHIsLeap_Year = False

   LEAP1 = (8 * ShYear + 22) / 33 - 0.001

   LEAP1 = LEAP1 - Int(LEAP1)

   If (LEAP1 > 0.77) Or (LEAP1 = 0) Then SHIsLeap_Year = True

End Function

Function SHLeap_Count(ByValShYear As Long) As Integer

Dim LEAP1 As Integer, LEAP2 As Integer, LEAP3 As Integer

   LEAP1 = (ShYear - 22) \ 33

   LEAP2 = ((ShYear - 22) Mod 33) \ 4

   If ShYear>= 22 Then

      LEAP3 = 6 + (8 * LEAP1) + LEAP2 '6=(22 \ 4) + 1) leap days tilShyear=22

   Else

      LEAP3 = (ShYear + 3) \ 4 'the first leap year  asShyear=1

   End If

   If (ShYear - 21) Mod 33 = 0 Then LEAP3 = LEAP3 - 1

SHLeap_Count = LEAP3

End Function

Sub CH_To_SH(ByValCHDate As Date, Year As Long, Month As Long, Day As Long)

Dim DayNumAs Long, ReminderDay As Long

Dim NewYearAs Long, NewMonth As Long, NewDay As Long

NewYear = 0

NewMonth = 0

NewDay = 0

DayNum = Round(CHDate) - 80

NewYear = (DayNum \ 365) + SHBaseYear + 1

ReminderDay = (DayNum Mod 365) - (SHLeap_Count(NewYear - 1) - SHLeap_Count(SHBaseYear))

   If ReminderDay<= 0 Then

NewYear = NewYear - 1

ReminderDay = 365 + (DayNum Mod 365)

ReminderDay = ReminderDay - (SHLeap_Count(NewYear - 1) - SHLeap_Count(SHBaseYear))

   End If

   If ReminderDay<= 0 Then

NewYear = NewYear - 1

     If SHIsLeap_Year(NewYear) Then

ReminderDay = 366

     Else

ReminderDay = 365

     End If

   End If

NewMonth = ((ReminderDay - 1) \ 31) + 1

NewDay = ReminderDay Mod 31

   If NewDay = 0 Then NewDay = 31

   If NewMonth> 6 Then

NewDay = NewDay + (NewMonth - 7)

NewMonth = NewMonth + ((NewDay - 1) \ 30)

NewDay = (NewDay Mod 30)

      If NewDay = 0 Then NewDay = 30

   End If

   Year = NewYear

   Month = NewMonth

   Day = NewDay

End Sub

Function FDate(ADate As String, Zero As Boolean, Optional Four As Boolean = False) As String

Dim Y As Long, M As Long, D As Long

Dim ys As String, ms As String, ds As String

CH_To_SHCDate(ADate), Y, M, D

    If Four Then

ys = Str(Y)

    Else

ys = Right$(Str(Y), 2)

    End If

    If Zero Then

      If Len(Trim(Str(M))) < 2 Then

ms = "0" + Trim(Str(M))

      Else

ms = Trim(Str(M))

      End If

      If Len(Trim(Str(D))) < 2 Then

ds = "0" + Trim(Str(D))

      Else

ds = Trim(Str(D))

      End If

    Else

ms = Trim(Str(M))

ds = Trim(Str(D))

    End If

FDate = ys& "/" &ms& "/" & ds

End Function

حال دوباره  آدرس را تکرار کنید تا پنجره دومی باز شود که نام آن ماژول 2 می باشد ایجاد شود

فرمول زیر را همانند شکل زیر کپی نمایید

 

Public Sub Shamsi_date()

    Dim tskProjTask As Task             'Reference to a task object.

    Dim tsksProjTasks As Tasks

    Set tsksProjTasks = ActiveProject.Tasks

For Each tskProjTaskIntsksProjTasks

        If Not (tskProjTaskIs Nothing) Then            'Check to see if task exists and that is not a external task.

            If Not tskProjTask.ExternalTaskThen

               tskProjTask.Text1 = FDate(Format(tskProjTask.Start, "yyyy/mm/dd"), True)

               tskProjTask.Text2 = FDate(Format(tskProjTask.Finish, "yyyy/mm/dd"), True)

            End If

        End If

    Next tskProjTask

End Sub

 

 

خوب تا اینجا کار ماکرو نویسی ما به اتمام رسیده با زدن  دکمه F5 پنجره زیر باز خواهد شد.

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

مرحله بعدی نمایش تاریخ شمسی در نمای گانت چارت می باشد ،از آنجا که فرمول ها بروی  Text1 & Text2 نوشته است از طریق Add new column

 این دو ستون را فراخوانی کنید.

 

میتوانید برای قابل فهم تر شدن تاریخ ها  Text1را به نام( شروع)  و Text2  به نام (پایان) تغییر نام دهید.

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

View>macros>View records  کلیک نمایید

در پنجره باز شده بروی RUN کلیک نمایید.

معایب این روش:

1-جهت هر بار تغییر تاریخ میلادی باید ماکروی نوشته شده باید بازخوانی شود تا ستون  تاریخ های شمسی نیز تغییر کند.

 

 

روش دوم: با استفاده از فرمول نویسی 

این روش یکی از بهترین روش های شمسی سازی تاریخ می باشد که اولین بار توسط کافه مدیران برای شما دوستان نگارش شده است

در ابتدا فرمول های این قسمت آموزش را دانلود نمایید.

دانلود فرمول با نقطه ویرگول

 دانلود فرمول با ویرگول

توجه کنید این روش دارای دو مدل فرمول می باشد اولی با نقطه ویرگول می باشد و دومی با ویرگول که در سیستم ها متفاوت می باشد شما باید تست کنید کدام یک برای سیستم شما مناسب است

 با کلیک راست کردن بروی یکی از ستون ها و انتخاب منوی  custom fields 

در پنجره باز شده نوع ستون را از نوع  Text  انتخاب نمایید. 

Text1و Text2 و  را انتخاب نمایید و نام آن ها را به شروع و پایان تغییر دهید.  

Txet1 را انتخاب نمایید 

با کلیک بروی منوی   Formula وارد پنجره مربوطه بشوید و قسمت اول فرمول را که همانند ذیل کپی نمایید.

توجه کنید  تیک use formula  را حتما انتخاب کنید اگر انتخاب نکنید تاریخ ها در summary  فعالیت ها نمایش داده نمی شود .

 Ok کنید و خارج شوید همین مراحل را برای Text2 انجام دهید و قسمت دوم فرمول را کپی نمایید.

 

حالا نوبت فراخوانی ستون های Text2 و Text1 و ازطریق Add New Column می باشد

 

البته لازم ذکر است که با استفاده از این روش با تغییر تاریخ میلادی بلافاصله تاریخ های شمسی نیز تغییر می کند.

نکـــــــــات 

نکته1:  از فرمول های پیوست شده  استفاده نمایید ممکن است از فرمول های  موجود در صفجه سایت تغییر کرده باشد

نکته2:  دربعضی از سیستم ها بجای(;) نقطه ویرگول از (,)ویرگول استفاده می شود در صورت مشگل تغییر دهید

به نظر بنده این روش در حال حاضر  بهترین راه حل جهت نمایش تاریخ شمسی در نرم افزار Ms-Project می باشد.

اگر شما روش بهتری دارید؟ می توانید به ایمیل وب سایت ارسال نمایید تا با نام شما در کافه مدیران منتشر شود.

همچنین از دوستان  کافه مدیرانی که  زحمت تغییر فرمول به ویرگول را کشیدند تشکر می کنیم 

دانلود  نمونه فایل آماده

 
حرف آخر: دوستان کافه مدیرانی این مطلب رو مدنظر داشته باشید که فرمت این آموزش برای اولین بار از طریق این سایت منتشر گردیده است. 
 
 فیلم روش دوم را نیز جهت درک بهتر برای شما دوستان قرار دادیم .Wink
 
 

 

این مورد را ارزیابی کنید
(30 رای‌ها)
  • آخرین ویرایش در شنبه, 17 تیر 1396 ساعت 12:01
  • اندازه قلم
  • دیدگاه (97)
مجتبی جباری

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

پست الکترونیکی این آدرس ایمیل توسط spambots حفاظت می شود. برای دیدن شما نیاز به جاوا اسکریپت دارید

نظرات   

 
0 #97 مجید حمیدزاده در تاریخ: یکشنبه 01 مرداد 1396 ، ساعت 12:05 ب ظ
سلام
مننون
خیلی خیلی عالی بود
کار راه اندازه است
نقل قول
 
 
0 #96 رویا در تاریخ: سه شنبه 20 تیر 1396 ، ساعت 01:04 ق ظ
یعنی هزار تا بوس رو دستان مهربان شما.امیدوارم هر چی از خدا میخواید بهتون بده.خیلی خیلی خیلی عالی و بی نظیر بود.دوستتون دادم .پاینده باشید همیشه.
نقل قول
 
 
0 #95 مجتبی جباری در تاریخ: شنبه 17 تیر 1396 ، ساعت 11:04 ق ظ
با عرض سلام به تمامی دوستان
دوستان گرامی هیچ مشگلی در کارایی فرمول ها در صورتی که طبق آموزش ،عمل کنید وجود ندارد


تیک use formula را در پنجره custom fields را فراموش نکنید

از این فرمول ها در حال حاضر در پروژه های واقعی در حال استفاده میباشد.

موفق باشید
نقل قول
 
 
0 #94 امیر در تاریخ: جمعه 16 تیر 1396 ، ساعت 09:04 ق ظ
سلام روش دوم خیلی وراحته فقط یک مشکلی داره که تاریخ شروع وپایان برای کلیه آیتمهادرست نمایش داده میشه ولی برای سرفصل تاریخ شروع برای پایان دیده میشه

پاسخ سوال:
نقل قول
تیک use formula را در پنجره custom fields را انتخاب نمایید مشگل رفع میشود
نقل قول
 
 
0 #93 محمد صالحی پور در تاریخ: پنج شنبه 15 تیر 1396 ، ساعت 12:04 ب ظ
با تشکر از راهنمایی خوبتون
من از روش دوم استفاده کردم. خیلی راحت کار کرد در msp2017 از فرومول ویرگول استفاده کردم. فقط مشکلی که هست تاریخ شروع و پایان Summery task ها رو نمی زنه. چکار کنم

پاسخ:
نقل قول
تیک use formula را در پنجره custom fields را انتخاب نمایید مشگل رفع میشود
نقل قول
 
 
0 #92 مجتبی جباری در تاریخ: چهارشنبه 31 خرداد 1396 ، ساعت 11:03 ق ظ
از حسن نظر تمامی دوستان بسیار ممنونم
ان شالله که مطالب سایت برای دوستان کافه مدیرانی کارساز باشد
موفق باشید
نقل قول
 
 
0 #91 سهراب در تاریخ: چهارشنبه 31 خرداد 1396 ، ساعت 02:03 ق ظ
با سپاس بی پایان, من مشاور سیستم‌های بهره‌وری و تولید ناب هستم و برای ارائه یک طرح توجیهی به فارسی ساز تاریخ احتیاج داشتم که مطلب شما بسیار مفید بود. در ضمن روش دوم که توسط خود سایت ارائه شده بود بسیار ساده تر بود.
با سپاس بی پایان
نقل قول
 
 
0 #90 فرزاد حسن زاده در تاریخ: جمعه 26 خرداد 1396 ، ساعت 12:03 ق ظ
درود بر شما
فایل هایی که گداشتین تا استفاده کنیم بسیار مفید و کمک کننده بود
سپاسگذارم
نقل قول
 
 
0 #89 الی در تاریخ: چهارشنبه 20 ارديبهشت 1396 ، ساعت 09:02 ق ظ
[quote name="sam"]با سلام و تشکر از روش آموزشی
من روش دوم را برای تاریخ شمسی اجرا کردم همچی خوبه فقط یک مشکل دارم و اونم این است که : تاریخ شروع تاریخ روزی است که فایل رو تشکیل میدهم و تایرخ شروع همه ی فعالیتها همین امروز درج میشه اما من میخواهم تاریخ شروع رو عوض کنم و نیاز دارم که مثلا تاریخ شروع برای 5 سال پیش باشد اما نمیشه ممنون میشم راهنمایی بفرمایید
با سپاس[/quote

با سلام. من هم ایم مشکل را داشتم. در فایل ورد، تمامی Start Schedule ها را به Start تیدیل کنید (با ctrl+F و replace). باید 15 کلمه تغییر کنه. همین کار را برای Finish انجام بدین و بعد متن فرمول جدید را در MSP جایگزین کنید
نقل قول
 
 
0 #88 پویا در تاریخ: یکشنبه 17 ارديبهشت 1396 ، ساعت 12:02 ب ظ
دمتون گرم
نقل قول
 

ارسال نظر


کد امنیتی
بارگزاری مجدد

3072223
بازدید امروز
بازدید دیروز
بازدید هفته جاری
بازدید ماه جاری
بازدید کل
1157
6469
15883
104240
3072223

آی‌پی شما: 107.22.30.57
امروز: چهارشنبه، 01 شهریور 1396 - ساعت: 08:06:47

آرشیو

« August 2017 »
Mon Tue Wed Thu Fri Sat Sun
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

ورود به سایت

درباره ما

HTML 5 وب سایت کافه مدیران در دی ماه سال 1392 توسط گروهی از متخصصین ایرانی...