نجوم المشاركات
Popular Content
Showing content with the highest reputation on 04/14/20 in all areas
-
استخدمنا هذه الفانكشن Function masdatediffh(olddate, Optional newdate) As String Dim d As Integer, m As Integer, y As Integer, nd As Integer, nm As Integer, ny As Integer If IsNull(newdate) Then newdate = Date If IsNull(olddate) Or olddate > newdate Then masdatediffh = "": Exit Function nd = Left(newdate, 2): d = Left(olddate, 2) nm = Mid(newdate, 4, 2): m = Mid(olddate, 4, 2) ny = Right(newdate, 4): y = Right(olddate, 4) If nd < d Then nm = nm - 1: nd = nd + 30 If nm < m Then ny = ny - 1: nm = nm + 12 masdatediffh = Format(nd - d, "00") & "-" & Format(nm - m, "00") & "-" & Format(ny - y, "00") End Function الفانكشن بيعطينا عدد سنوات و الاشهر والايام بين تاريخين تغيرنا مصدر النموذج من الجدول الى استعلام واضفنا حقل جديد باسم Feriq هكذا Feriq: masdatediffh([تاريخ التعيين];Date()) لان حضرتك تريد سنة في مربع و اشهر في المربع و اليوم في المربع قمنا باخفاء المربع نصي اللي اسمه Feriq في النموذج وفي مربع الثلاث للسنة والاشهر والايام استخدمنا دالة Mid لان فانکشن يعطينا النتيجة رقمين للايام و شارحة ورقمين للاشهر و شارحة ورقمين للسنة هكذا مثلا 13-03-20 في دالة Mid يجب ان نعرف تسلسل الرقم هنا رقم 1 تسلسله هو 1 ورقم 3 تسلسله 2 وشارحة - الاول تسلسله 3 ورقم 0 مع الاشهر تسلسله 4 ورقم 3 تسلسله 5 وشارحة - الثانية تسلسله 6 ورقم 2 تسلسله 7 ورقم 0 الاخير تسلسله 8 في المربع السنة استخدمنا هكذا =Mid([Feriq];7;2) رقم 7 اي يعني اختر من تستسل 7 وهو رقم 2 ويكون رقمين فقط اي يعني رقم 2 و صفر اي يعني20 وفي المربع الاشهر هذا =Mid([Feriq];4;2) رقم 4 يعني اختر من تسلسل 4 وهو رقم 0 ويكون رقمين اي يكون 0 و 3 اي يعني 03 وفي المربع الايام هذا =Mid([Feriq];1;2) رقم 1 يهني اختر من تسلسل 1 اي يعني 1 ويكون رقمين اي يعني 13 ملاحظة : تقدر تستخدم مصدر النموذج جدول وليس استعلام لكن يجب ان تضيف في النموذج مربع نصي وتكون مصدره كالتالي masdatediffh([تاريخ التعيين];Date()) تحياتي5 points
-
وعليكم السلام-يمكنك استخدام هذه المعادلة =COUNTIFS(الموجودون!$D:$D,B$2,الموجودون!$G:$G,B$1,الموجودون!$F:$F,$A3) 1.xlsx5 points
-
السلام عليكم و رحمة الله تعالى و بركاته الى الإحوة الأفاضل هذا الملف و الذي يحتوي على اكواد رائعة . و الذي يحتاجه خاصة الذين يتعاملون مع فروع الشركات التي ترسل ملفات عن طريق الايميل مثلا : لديك نمودج لتقرير ما اسمه repport.xls ترسله الى الفروع ،و عند استقبال الملفات عن طريق الايمل و تحملها تصبح هكذا repport(1).xls ..repport(2).xls...repport(3).xls..الخ . لا يهم أيا كان اسم الملف و تريد اعادة تسمية الملفات بناءا على اسم الفرع في الخلية من كل تقرير . اليك هذا الملف بضعطة زر . تسمية كل الملفات. مهما كان عددها الملفات المرفقة : أمثلة عن تقارير. عند التحميل تجد التقارير و البرنامج 1- أفتح ملف اعادة تسمية الملفات 2- جدد مسار ملفات التقارير التي في المرفق 3- اضغط على جلب اسماء الملفات 4- اضغط على اعادة تسمية. ستلاحظ أن الملفات قد تغيرت أسماءها الى اسم الفرع المرسل. ملاحظة : يمكنك التعديل على الاكواد كما تشاء حسب تصميم تقريرك و السلام عليكم و رحمة الله تعالى و بركاته تسمية.rar4 points
-
وعليكم السلام -جرب هذا لعله يفيدك برنامج ومنظومة صرافة العملات بحلته وشكله الجديد وهذا ملف اخر برنامج للصرافة المالية الخاصة وهذا برنامج اخر بمقابل مادى برنامج صرافة لإدارة مؤسسات الصرافة4 points
-
4 points
-
حسب ما فهمت انا اتفضل اليك هذه الاكواد Private Sub Command13_Click() Me.TimerInterval = 250 If Me.A = 0 Then Me.A = 1 If Me.B = 0 Then Me.B = 1 End Sub Private Sub Command15_Click() Me.TimerInterval = 0 End Sub Private Sub Form_Timer() If Me.A = 9 Then Me.A = 1 Else Me.A = Me.A + 1 End If If Me.B = 9 Then Me.B = 1 Else Me.B = Me.B + 1 End If End Sub واليك المثال 19 (1).accdb3 points
-
اتفضل استخدمت هذا الكود اي نماذج بيكون مفتوحة سيدخل له القيمة Private Sub أمر2_Click() If CurrentProject.AllForms("Form2").IsLoaded = True Then Form_form2.نص0 = Me.نص0 ElseIf CurrentProject.AllForms("Form3").IsLoaded = True Then Form_form3.نص0 = Me.نص0 End If DoCmd.Close acForm, Me.Name End Sub مثال اوفيسنا نموذج الحسابات يعمل مع اكثر من نموذج.rar3 points
-
السلام عليكم-تم انشاء صفحة جديدة بالملف (إدخال البيانات) وتم عمل قائمة منسدلة بالعمود الثانى B بأرقام السيارات , فكل ما عليك فعله هو اختيار رقم السيارة من القائمة وسيقوم الإكسيل بإظهار اسم السائق لتلك السيارة تلقائياً دون تدخل منك وذلك بهذه المعادلة... فمن فضلك لا تقوم بعمل دمج للخلايا لحسن عمل المعادلة =IFERROR(INDEX(الناقلين!$B$3:$B$1000,MATCH($B2,الناقلين!$C$3:$C$1000,0)),"") الناقلين.xlsx3 points
-
وعليكم السلام ورحمة الله وبركاته واليك التعديل على المرفقك مدة خدمة الموظف.accdb3 points
-
تفضل لك ما طلبت وهذه أسماء وكلمات السر للمتخدمين مع الصلاحيات ... والصفحة التى بها الفورم الذى تعمل عليه هى صفحة إدخال البيانات ..... وكلمة السر دائماً للدخول لصفحة الصلاحيات هى 123 اسم المستخدم كلمة المرور صفحة الادخال صفحة الاستعلام قاعدة البيانات Yasser 123 yes yes yes aseel 111 yes no yes mohamed 222 no no no بيانات الموظفين.xlsm3 points
-
بالنسبة لموضوع الصلاحيات فيمكنك متابعة هذا بنفسك من خلال عدة مشاركات بالمنتدى تم تداول هذا الموضوع بها ومنها : برنامج صلاحيات المستخدمين الاصدار 3 حماية ملف اكسل من داخل الملف + صلاحيات لكل مستخدم + سجل لأسماء و مواعيد الدخول للملف شاشة دخول مع صلاحيات برنامج صلاحيات المستخدمين - بشكل جديد نموذج دخول بصلاحيات الاطلاع على أوراق العمل صلاحيات للوصول لشيتات صلاحيات الدخول للمستخدمين وهذه فيديوهات شرح https://www.youtube.com/watch?v=zGopdxUQCQU https://www.youtube.com/watch?v=JxrjmUW_UoA3 points
-
أخى الكريم جرب هذا تم عمل كمبوبوكس بدلا من التكست بوكس هيكون اسرع بالطبع فى البحث بيانات الموظفين 2020 -1.xlsm3 points
-
3 points
-
3 points
-
3 points
-
السلام عليكم و رحمة الله وبركاته تم تنفيذ الكود المطلوب Sub az() ' Dim FS As Worksheet, TS As Worksheet Dim FC, FR, TR, ER, Q1, Q2, Q3, SH Set FS = Sheets("أمور الشغل") ER = FS.UsedRange.Rows.Count For FR = 2 To ER Q1 = FS.Cells(FR, 4).Text ' المعدة Q2 = FS.Cells(FR, 1).Value ' رقم امر التشغيل For SH = 1 To ActiveWorkbook.Sheets.Count If Sheets(SH).Name = Q1 Then Set TS = Sheets(SH) ' ورقة السيارة Q3 = Application.CountIf(TS.Range("A:A"), Q2) If Q3 > 0 Then GoTo 3 TR = Application.CountA(TS.Range("A:A")) 4 If TS.Cells(TR, 1) <> "" Then TR = TR + 1 GoTo 4 End If For FC = 1 To 12 TS.Cells(TR, FC) = FS.Cells(FR, FC) Next FC End If Next SH 3 Next FR End Sub و لكن نصيحة الاسهل هو استخدام الجداول المحورية او استخدام التصفية التلقائية او استخدام التصفية المتقدمة بالكود و هذه الحلول افضل من استخدام الكود الموضح اعلاه تحافظ على حجم الملف صغير و كل تعديل في بيانات الورقة الاولى يظهر فورا ولك حرية الاختيار شيت امور الشغل.xls2 points
-
جزاك الله كل خير على هذا الشرح الوافى اخى شفان ريكاني2 points
-
أخى الكريم mrsadek2000 تم تناول ومناقشة هذا البرنامج من قبل على هذا الرابط برنامج الحسابات العامة والمخازن والمقاولات-The Fastest2 points
-
السلام عليكم ربما هذا المثال هو المطلوب بالتوفيق إن شاء الله الموظفين.accdb2 points
-
وعليكم السلام اخوي عبداللطيف 🙂 هذا الرابط فيه وحدة نمطية لطلبك 🙂 https://www.officena.net/ib/topic/80943-كيفية-حساب-عدد-الاشهر-بين-تاريخين/ جعفر2 points
-
2 points
-
جزاك الله كل خير استاذ محمد والف مليون مبـــــروك ومن تقدم الى تفوق دائما ان شاء الله الى الأمام2 points
-
وعليكم السلام -بعد اذنك استاذ سليم ... ولما اصلاً لا تقوم بإستخدام خاصية البحث بالمنتدى -تفضل الوارد اولا صادر اولا (first in first out (FIFO2 points
-
اخي الكريم السلام عليكم ورحمة الله وبركاته كل عام وانتم بخير هل يراودك شك احيانا في بعض الكلمات او الرموز عند تسمية الحقول هل هي محجوزة أم لا ؟ اليك الحل هدية العيد : في المرفقات تطبيق بحثي يشتمل على جميع كلمات ورموز الاكسس المحجوزة والتي يجب أخذ الحيطة عند تسمة الحقول واجتناب التسمية بها لان ذلك يؤدي الى ظهور أخطاء أمام المبرمج يخفى عليه سببها . آمل ان تجدوا الفائدة ،،، dbx.rar1 point
-
1 point
-
1 point
-
تفضل اخي @فايز.. والشكر موصول للاستاذ @ابوآمنة مزحه : تقول ماشفتها وانا لقيتها في ملغك الاخير هذا اخي فايز تحياتي للجميع Posters.accdb1 point
-
ياسلام عليك @ابوآمنة وزياده شوية نضيف xn=0 بعد rs.movefirst لكي برضه رساله واحده للبحث الثاني بالتوفيق1 point
-
مساهمة مع أخي رمهان أضف بعد هذه هذه السطر DoCmd.GoToRecord , , acFirst هذا الكود rs.MoveFirst شاهد المرفق Posters5.zip1 point
-
1 point
-
1 point
-
السلام عليكم و رحمة الله و بركاته ماهو شرط عدم التكرار مثلا عدم تكرار امر الشغل او غيره1 point
-
1 point
-
1 point
-
لا ضرورة لرفع ملف من اكثر من 2000 صف يكفي نموذج بسيط (في الملف المرفق حوالي 130 صف )فقط لمعايتة الماكرو يمنكنك اضافة اي عدد من الصفوف في الورقة Toullab شرط عدم ترك خلايا فارغة في الصفوف حيث يعمل الفلتر ( الرابع السادس والسابع) شخصياً لا افضّل تسمية الشيتات باللغة الغربية لصعوبة كتابة الكود ونقله الكود Option Explicit Sub My_FILTER() Rem Created by Saliom Hasbaya on 14/4/2020 With Application .ScreenUpdating = False .Calculation = xlCalculationManual End With Dim T As Worksheet, S As Worksheet Dim T_Table As Range, mr As Range, era As Range Dim i%, lr%, x%, Homany%, k%, y% Dim arr Set T = Sheets("Toullab"): Set S = Sheets("Statics") arr = Array("الاول", "الثاني", "الثالث", "الرابع") Set T_Table = T.Range("A1").CurrentRegion If T.AutoFilterMode Then T_Table.AutoFilter lr = S.Cells(Rows.Count, 1).End(3).Row With S.Range("C4:D" & lr - 1) .ClearContents .Offset(, 3).ClearContents .Offset(, 6).ClearContents .Offset(, 9).ClearContents End With y = 2 For k = 0 To 3 For i = 4 To lr - 1 '++++++++++++++++++++++++++++++++++++ T_Table.AutoFilter 6, S.Cells(i, 1) T_Table.AutoFilter 7, arr(k) T_Table.AutoFilter 4, S.Cells(2, 3) Set mr = T_Table.SpecialCells(xlCellTypeVisible).Offset(1) For Each era In mr.Areas x = Application.CountA(era.Columns(7)) If x Then Homany = Homany + era.Rows.Count End If Next S.Cells(i, 1).Offset(, y) = Homany - 1: Homany = 0 '************************************************************ T_Table.AutoFilter 4, S.Cells(2, 4) Set mr = T_Table.SpecialCells(xlCellTypeVisible).Offset(1) For Each era In mr.Areas x = Application.CountA(era.Columns(7)) If x Then Homany = Homany + era.Rows.Count End If Next S.Cells(i, 1).Offset(, y + 1) = Homany - 1: Homany = 0 Next i y = y + 3 Next k If T.AutoFilterMode Then T_Table.AutoFilter With Application .ScreenUpdating = True .Calculation = xlCalculationAutomatic End With Set T = Nothing: Set S = Nothing Set T_Table = Nothing Set mr = Nothing: Set era = Nothing End Sub الملف مرفق OH_my_filter.xlsm1 point
-
اشكركم على المرور جميعا ارى حل الاخ شيفان اسهل وافضل مع احترامي لكم جميعا1 point
-
وعليكم السلام أخى الكريم لما لا تقوم بإستخدام خاصية البحث بالمنتدى طالما لم تقم برفع ملف بالمطلوب ؟ تفضل مُجمِع البيانات للاكسيل - Excel Data Collector الإصدار الخامس دمج وتجميع عدة ملفات خارجية فى ملف واحد بالمعادلات وهذا رابط اخر دمج ملفات اكسل في ملف واحد وهذا كود اخر لهذا الموضوع Sub MergeExcelFiles() 'https://www.ablebits.com/office-addins-blog/2017/11/08/merge-multiple-excel-files-into-one/ Dim fnameList, fnameCurFile As Variant Dim countFiles, countSheets As Integer Dim wksCurSheet As Worksheet Dim wbkCurBook, wbkSrcBook As Workbook fnameList = Application.GetOpenFilename(FileFilter:="Microsoft Excel Workbooks (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm", Title:="Choose Excel files to merge", MultiSelect:=True) If (vbBoolean <> VarType(fnameList)) Then If (UBound(fnameList) > 0) Then countFiles = 0 countSheets = 0 Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Set wbkCurBook = ActiveWorkbook For Each fnameCurFile In fnameList countFiles = countFiles + 1 Set wbkSrcBook = Workbooks.Open(Filename:=fnameCurFile) For Each wksCurSheet In wbkSrcBook.Sheets countSheets = countSheets + 1 wksCurSheet.Copy after:=wbkCurBook.Sheets(wbkCurBook.Sheets.Count) Next wbkSrcBook.Close SaveChanges:=False Next Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic MsgBox "Processed " & countFiles & " files" & vbCrLf & "Merged " & countSheets & " worksheets", Title:="Merge Excel files" End If Else MsgBox "No files selected", Title:="Merge Excel files" End If End Sub وهذا كود ثانى للمطلوب Sub ConslidateWorkbooks() 'https://trumpexcel.com/combine-multiple-workbooks-one-excel-workbooks/ Dim FolderPath As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False FolderPath = Environ("userprofile") & "DesktopTest" Filename = Dir(FolderPath & "*.xls*") Do While Filename <> "" Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop Application.ScreenUpdating = True End Sub1 point
-
بارك الله فيك أستاذ الرائد77 .... عمل ممتاز جعله الله فى ميزان حسناتك أخى عبدالفتاح في بي اكسيل وذلك لأنك لم تقم بتغيير مسار فولدر التقارير بما يتناسب مع جهاز الكمبيوتر لديك1 point
-
1 point
-
لم يكن طلبك واضح من البداية يا أخي لا بأس تفضل . اضافة العنصر المختار من ليست بوكس 3 الى العمود h ; و الليست 2 الى i يمكنك التغييير ادا اردت في الكود Sample (1).xlsm1 point
-
وعليكم السلام اخى @husamwahab منور جزاك الله خيرا زياده الخير خيرين ومنى تعديل طفيف عالسابق بعد تجربته لم يكن يسجل القيم فعدلته بتعديل طفيف استفدته من اخى واستاذى @kha9009lid جزاه الله خيرا بالتوفيق اخوانى مربح تحرير وسرد(1).accdb أحسنت اخى حسام جزاك الله خيرا1 point
-
وعليكم السلام اخى @ازهر عبد العزيز ان شاء الله يكون ما طلبت تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق مربح تحرير وسرد.accdb1 point
-
@فايز.. @ابوآمنة هذا تعديل على كود الاستاذه زهره ولماطلبت بنفس الرسائل Dim strSearch As String Dim rs As Object Set rs = Me.RecordsetClone If IsNull(Me![txtSearch]) Or (Me![txtSearch]) = "" Then MsgBox "رجاء ادخل اسم للبحث عنه", vbOKOnly, "خطأ في البحث" Me![txtSearch].SetFocus Exit Sub End If strSearch = Me![txtSearch] With rs .FindNext "[EmpName] like '*" & strSearch & "*'" If Not .EmpName Like "*" & strSearch & "*" Then MsgBox "لا يوجد سجل بهذا الإسم : " & strSearch, , "غير موجود" Me.txtSearch = "" Me![txtSearch].SetFocus ElseIf .NoMatch Then MsgBox "آخر سجل في البحث عن : " & strSearch, , "آخر سجل" Me.cmdSearch.Caption = "بحث" Me.txtSearch = "" Me![txtSearch].SetFocus Me.cmdSearch.ForeColor = RGB(0, 0, 255) DoCmd.GoToRecord , , acFirst Else Me.Bookmark = .Bookmark MsgBox "تم ايجاد اسم : " & strSearch, , "مبروك" Me.cmdSearch.Caption = "اكمال البحث" Me.cmdSearch.ForeColor = RGB(255, 0, 0) End If End With rs.Close Set rs = Nothing بالتوفيق1 point
-
ولا يهمك اخى محمد جرب الان ووافنى بالنتيجه جزاك الله خيرا اخى @husamwahab التقيم1.accdb1 point
-
السلام عليكم ورحمة الله ضع هذا الكود فى حدث ThisWorkbook Private Sub Workbook_SheetActivate(ByVal Sh As Object) For i = 1 To Sheets.Count Sheets(i).Range("A1").Value = i Next End Sub1 point
-
1 point
-
Try This macro Option Explicit Sub Colorize() Dim Sh As Worksheet Set Sh = ActiveSheet Dim Rg As Range, cel As Range Dim at_c As Worksheet Dim Fadr$, Sadr$, i% Dim Act_Rg As Range, F_rg As Range Set Rg = Sh.Range("a1").CurrentRegion.Columns(1).Cells Rg.Interior.ColorIndex = xlNone For i = 1 To Sheets.Count If Sheets(i).Name <> Sh.Name Then Set Act_Rg = Sheets(i).Range("a1").CurrentRegion.Columns(1) Act_Rg.Interior.ColorIndex = xlNone For Each cel In Rg Set F_rg = Act_Rg.Find(cel, lookat:=1) If F_rg Is Nothing Then GoTo Next_cel cel.Interior.ColorIndex = 6 Fadr = F_rg.Address: Sadr = Fadr Do F_rg.Interior.ColorIndex = 6 Set F_rg = Act_Rg.FindNext(F_rg) Sadr = F_rg.Address If Sadr = Fadr Then Exit Do Loop Next_cel: Next cel End If Next i End Sub File Included Tekrar_by_sheets.xlsm1 point
-
ما عليك الا اضافة 1 (او اي رقم تريده) الى المعادلة كي تصبح هكذا =IF(OR(A2="",B2=""),"",DATEDIF(DATE(B2,1,1),TODAY(),"y")+1)1 point
-
1 point
-
ورد خطأ بسيط في الملف السابق ارجو المعذرة اليك الكود الصحيح مع الملف المرفق الكود Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Or Target.Address = "$A$2" Then With Application .ScreenUpdating = False .EnableEvents = False End With Dim i%, t%, y% Dim eom As Date eom = Evaluate("EOMONTH(DATE($A$1,$A$2,1),0)") y = Day(eom) Columns("G:ak").Hidden = False ' hid_Vacance For i = 35 To 37 If Cells(14, i) = vbNullString Then Cells(1, i).EntireColumn.Hidden = True End If Next hid_Vacance For i = 7 To 37 If Cells(15, i).Columns.Hidden = True Or Cells(15, i) = Cells(3, 1) Then t = t + 1 End If Next Cells(5, 2) = y - t End If With Application Application.ScreenUpdating = True Application.EnableEvents = True End With End Sub '=============================================== Sub hid_Vacance() Application.EnableEvents = False Dim lraz%: lraz = Cells(Rows.Count, "AZ").End(3).Row Dim match%, x%, tt% Dim yes As Boolean For tt = 2 To lraz yes = IsError(Application.match(Range("AZ" & tt), Range("g14:aK14"), 0)) If Not yes Then x = Application.match(Range("AZ" & tt), Range("g14:aK14"), 0) + 6 Cells(14, x).EntireColumn.Hidden = True End If Next Application.EnableEvents = True End Sub الملف الجديد كشف Salim A3yad2 .xlsm1 point