شمسی سازی تاریخ در نرم افزار 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
 
 

 

این مورد را ارزیابی کنید
(31 رای‌ها)
مجتبی جباری

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

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

نظرات   

 
0 #105 حسین kia در تاریخ: جمعه 26 آبان 1396 ، ساعت 02:08 ب ظ
سلام خیلی ممنون روش دوم عالی بود ولی هربار که یه پروزه جدید رو اغاز میکنم باید از نوع تاریخ شروع و پایان رو اضافه کنم؟؟؟ چون میپره هربار
نقل قول
 
 
0 #104 سعید ذ در تاریخ: چهارشنبه 24 آبان 1396 ، ساعت 10:08 ق ظ
خیلی عالی بود . ممنون
نقل قول
 
 
0 #103 شرفلو در تاریخ: دوشنبه 24 مهر 1396 ، ساعت 09:07 ب ظ
خیلی عالی بود ممنون
نقل قول
 
 
0 #102 شرفلو در تاریخ: دوشنبه 24 مهر 1396 ، ساعت 09:07 ب ظ
سلام
خیلی عالی بود ممنون
نقل قول
 
 
0 #101 مسعود12 در تاریخ: شنبه 18 شهریور 1396 ، ساعت 03:06 ب ظ
با عرض سلام.من طبق روش دوم مراحل رو انجام دادم ولی با هر تغییر تاریخ میلادی در تاریخ شمسی تغییری ایجاد نمیشه و روی تاریخ 1388/7/20 گیر کرده!!مشکل از کجاس؟!!
باتشکر فراوان
نقل قول
 
 
0 #100 msp در تاریخ: سه شنبه 07 شهریور 1396 ، ساعت 09:06 ق ظ
مرررررررررررررر ررسی عالی بود با توضیحات کامل
نقل قول
 
 
+1 #99 مجتبی جباری در تاریخ: سه شنبه 07 شهریور 1396 ، ساعت 12:06 ق ظ
سلام خانم ایازی
خدمتتون عرض كنم این روش فقط جهت نمایش تاریخ شمسی میباشد و قابلیت شمسی سازی نوار زمان گانت چارت را ندارد
نقل قول
 
 
0 #98 سمانه ایازی در تاریخ: دوشنبه 06 شهریور 1396 ، ساعت 11:06 ق ظ
سلام خیلی ممنون از اطلاعاتی که در اختیار دیگران قرار دادید. فقط یه موردی من نتوستم اصلاح کنم دو ستون ایجاد کردم و تاریخ شروع و پایان شمسی ایجاد شد ولی در قسمت گانت چارت در خط زمانی بالای صفحه همچنان تاریخ به میلادی نوشته. ممنون میشم راهنمایی کنید.
نقل قول
 
 
0 #97 مجید حمیدزاده در تاریخ: یکشنبه 01 مرداد 1396 ، ساعت 12:05 ب ظ
سلام
مننون
خیلی خیلی عالی بود
کار راه اندازه است
نقل قول
 
 
0 #96 رویا در تاریخ: سه شنبه 20 تیر 1396 ، ساعت 01:04 ق ظ
یعنی هزار تا بوس رو دستان مهربان شما.امیدوارم هر چی از خدا میخواید بهتون بده.خیلی خیلی خیلی عالی و بی نظیر بود.دوستتون دادم .پاینده باشید همیشه.
نقل قول
 

ارسال نظر


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

3655440
بازدید امروز
بازدید دیروز
بازدید هفته جاری
بازدید ماه جاری
بازدید کل
8299
4955
13254
63973
3655440

آی‌پی شما: 54.221.73.186
امروز: دوشنبه، 20 آذر 1396 - ساعت: 20:09:58

آرشیو

« December 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 توسط گروهی از متخصصین ایرانی...