
باز هم مشکل در محاسبه ساعت مرخصی
Collapse
این تاپیک قفل است.
X
X
-
با تشکر و سپاس از اساتید بزرگوار جناب آقای قاسمیان و جناب آقای مجید ... متاسفانه توی محاسبه مجموع مرخصی ساعتی که توی یک روز انجام شده ایراد داره .. مثلا دو تا مرخصی جداگانه که هر کدومشون 40 دقیقه باشه رو 80 دقیقه محاسبه میکنه .. که قاعدتا میبایست 1.20 بشه .. ممنون میشم ایراد رو رفع فرمایین.
https://t.me/pump_upp -
سلام دوست عزیزبا تشکر و سپاس از اساتید بزرگوار جناب آقای قاسمیان و جناب آقای مجید ... متاسفانه توی محاسبه مجموع مرخصی ساعتی که توی یک روز انجام شده ایراد داره .. مثلا دو تا مرخصی جداگانه که هر کدومشون 40 دقیقه باشه رو 80 دقیقه محاسبه میکنه .. که قاعدتا میبایست 1.20 بشه .. ممنون میشم ایراد رو رفع فرمایین.
http://forum.exceliran.com/showthrea...AE%D8%B5%DB%8C
تا جایی که یادمه شما گفتین ساعت ها بصورت اعشاری باید باشه و ظاهرا خودتون یک تابع داشتین که تبدیل میکرد.
اینکه میگین 80 دقیقه رو بنویسه یک ساعت و بیست دقیقه بستگی به فرمت سلول داره. فرمت اگه بصورت زیر باشه ساعت هم لحاظ میشه
کد:h:mm
-
کامنت
-
فایل نمونه خدمت اساتید محترمفایل های پیوست شدهhttps://t.me/pump_uppکامنت
-
امیدوارم متوجه درخواستتون شده باشم
یک تابع اضافه کردم که دقیقه رو به ساعت و دقیقه تبدیل کنه
کد اصلیتون رو هم یک تغییر کوچیک دادم
کد:Sub ExcelIran() code = Sheet7.Range("H31").Value Range("report").ClearContents Database = Range("database") For i = 1 To UBound(Database) If Database(i, 1) = code Then q = Split(Database(i, 2), "/") Y = q(0) m = q(1) D = q(2) If Database(i, 6) = ChrW(1585) & ChrW(1608) & ChrW(1586) & ChrW(1575) & ChrW(1606) & ChrW(1607) Then Sheet7.Cells(2 * m, D + 2) = 1 Else If Sheet7.Cells(2 * m + 1, D + 2) > 0 Then Sheet7.Cells(2 * m + 1, D + 2) = sumhour(Database(i, 5), Sheet7.Cells(2 * m + 1, D + 2)) Else Sheet7.Cells(2 * m + 1, D + 2) = Database(i, 5) End If End If End If Next i End Sub Function sumhour(first, second) Dim f As Integer, s As Integer, sums As Integer, hour As Integer, minute As Integer f = first * 100 s = second * 100 sums = f + s hour = Int(sums / 60) minute = sums Mod 60 sumhour = hour + minute / 100 End Functionکامنت
-
سلام دوست عزیز
بله حق با شماست.
من با کمک فانکشن های خودتون این مشکل رو حل کردم
کد:Sub ExcelIran() code = Sheet7.Range("H31").Value Range("report").ClearContents Database = Range("database") For i = 1 To UBound(Database) If Database(i, 1) = code Then q = Split(Database(i, 2), "/") Y = q(0) m = q(1) D = q(2) If Database(i, 6) = ChrW(1585) & ChrW(1608) & ChrW(1586) & ChrW(1575) & ChrW(1606) & ChrW(1607) Then Sheet7.Cells(2 * m, D + 2) = 1 Else If Sheet7.Cells(2 * m + 1, D + 2) > 0 Then Sheet7.Cells(2 * m + 1, D + 2) = sumhour(Time_To_Second(Database(i, 5)), Time_To_Second(Sheet7.Cells(2 * m + 1, D + 2))) Else Sheet7.Cells(2 * m + 1, D + 2) = Database(i, 5) End If End If End If Next i End Sub Function sumhour(first, second) Dim f As Integer, s As Integer, sums As Integer, hour As Integer, minute As Integer sums = first + second hour = Int(sums / 60) minute = sums Mod 60 sumhour = hour + minute / 100 End Functionکامنت
-
کد:Sub ExcelIran() code = Sheet7.Range("H31").Value Range("report").ClearContents Set Database = Range("database") For i = 1 To Database.Rows.Count If Database(i, 1) = code And Database(i, 1).Rows.Hidden = False Then q = Split(Database(i, 2).Value, "/") Y = q(0) m = q(1) D = q(2) If Database(i, 6) = ChrW(1585) & ChrW(1608) & ChrW(1586) & ChrW(1575) & ChrW(1606) & ChrW(1607) Then Sheet7.Cells(2 * m, D + 2) = 1 Else If Sheet7.Cells(2 * m + 1, D + 2) > 0 Then Sheet7.Cells(2 * m + 1, D + 2) = sumhour(Time_To_Second(Database(i, 5).Value), Time_To_Second(Sheet7.Cells(2 * m + 1, D + 2))) Else Sheet7.Cells(2 * m + 1, D + 2) = Database(i, 5) End If End If End If Next i End Sub Function sumhour(first, second) Dim f As Integer, s As Integer, sums As Integer, hour As Integer, minute As Integer sums = first + second hour = Int(sums / 60) minute = sums Mod 60 sumhour = hour + minute / 100 End Functionکامنت



ممنون از وقتی که میزارین

کامنت