اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

نجوم المشاركات

  1. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      17

    • Posts

      13578


  2. عبدالله بشير عبدالله
  3. Foksh

    Foksh

    أوفيسنا


    • نقاط

      6

    • Posts

      4389


  4. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      4

    • Posts

      8723


Popular Content

Showing content with the highest reputation since 12/20/25 in all areas

  1. وعليكم السلام ورحمة الله وبركاته جرب الكود في الملف المرفق 1الجرد.xlsm
    3 points
  2. لدي هذا التطبيق يقوم باختبارات ادارية متنوعة ارجو ان تبدو رأيكم فيه مع جزيل الشكر Administrative_Tests.rar
    3 points
  3. ممكن يكون طلبك هنا https://www.youtube.com/watch?v=M1DhpzkT8kA او جرب هذا الكود: Sub Observer_FullSystem() Dim ws As Worksheet, wsReport As Worksheet Dim NamesArr() As Variant Dim UsedRow As Object, UsedCol As Object, UsedAll As Object Dim lrNames As Long, lrRows As Long, lrCols As Long Dim r As Long, c As Long, i As Long Dim Available() As String Dim cnt As Long, MaxAllowed As Long, TotalCells As Long Dim TryCount As Long Dim MainCols As Long: MainCols = 2 ' عدد الأعمدة الأساسية Set ws = ActiveSheet Application.ScreenUpdating = False Randomize ' ===== Backup ===== ws.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Backup_" & Format(Now, "ddmmyy_hhmmss") ws.Activate ' ===== قراءة الأسماء ===== lrNames = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row NamesArr = ws.Range("B3:B" & lrNames).Value ' ===== حدود الجدول ===== lrRows = ws.Cells(ws.Rows.Count, 3).End(xlUp).Row lrCols = ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column ws.Range(ws.Cells(3, 4), ws.Cells(lrRows, lrCols)).ClearContents ' ===== الحد الأقصى ===== TotalCells = (lrRows - 2) * (lrCols - 3) MaxAllowed = Application.WorksheetFunction.RoundUp(TotalCells / (lrNames - 2), 0) Set UsedAll = CreateObject("Scripting.Dictionary") ' ===== التوزيع ===== For r = 3 To lrRows Set UsedRow = CreateObject("Scripting.Dictionary") For c = 4 To lrCols TryCount = 0 RetryCell: TryCount = TryCount + 1 If TryCount > 300 Then GoTo NextCell Set UsedCol = CreateObject("Scripting.Dictionary") For i = 3 To r - 1 If ws.Cells(i, c).Value <> "" Then UsedCol(ws.Cells(i, c).Value) = 1 Next i cnt = 0 ReDim Available(1 To UBound(NamesArr, 1)) For i = 1 To UBound(NamesArr, 1) If Not UsedRow.exists(NamesArr(i, 1)) _ And Not UsedCol.exists(NamesArr(i, 1)) Then If Not UsedAll.exists(NamesArr(i, 1)) _ Or UsedAll(NamesArr(i, 1)) < MaxAllowed Then cnt = cnt + 1 Available(cnt) = NamesArr(i, 1) End If End If Next i If cnt > 0 Then ws.Cells(r, c).Value = Available(Int(Rnd * cnt) + 1) UsedRow(ws.Cells(r, c).Value) = 1 UsedAll(ws.Cells(r, c).Value) = UsedAll(ws.Cells(r, c).Value) + 1 Else GoTo RetryCell End If NextCell: Next c Next r ' ===== تقرير ===== On Error Resume Next Set wsReport = Sheets("تقرير") On Error GoTo 0 If wsReport Is Nothing Then Set wsReport = Sheets.Add wsReport.Name = "تقرير" Else wsReport.Cells.Clear End If wsReport.Range("A1:D1") = Array("الاسم", "الإجمالي", "أساسي", "احتياطي") For i = 3 To lrNames wsReport.Cells(i - 2, 1) = ws.Cells(i, 2) wsReport.Cells(i - 2, 2) = Application.CountIf(ws.Range(ws.Cells(3, 4), ws.Cells(lrRows, lrCols)), ws.Cells(i, 2)) wsReport.Cells(i - 2, 3) = Application.CountIf(ws.Range(ws.Cells(3, 4), ws.Cells(lrRows, 3 + MainCols)), ws.Cells(i, 2)) wsReport.Cells(i - 2, 4) = wsReport.Cells(i - 2, 2) - wsReport.Cells(i - 2, 3) Next i wsReport.Columns.AutoFit Application.ScreenUpdating = True MsgBox "تم التوزيع + إنشاء نسخة احتياطية + تقرير كامل ?", vbInformation End Sub
    3 points
  4. السلام عليكم ورحمة الله وبركاته اقدم لكم شرح مبسط لطريقة بحث احترافيه في شيت اكسل رابط الفيديو لتحميل ملف العمل https://www.mediafire.com/file/4t7skm26bdj2mhk/salloum.xlsx/file
    2 points
  5. اعلم هذا وواضح بالملف وعملت في قطاع التعليم التقني والتوجيه الفني 39 سنة واعلم جيدا كيف عمل اللجان لم يكن الامر يتطلب كل هذا على كل حال عودة للملف اليك الملف بالتعديل الاخير مراقبة_ تحويل اللجان الى أسماء.xlsm
    2 points
  6. اليك ما طلبت بالتنسيق الشرطي aaaa2.xlsm
    2 points
  7. غير صحيح انت لم توفق في التعديل افتح النموذج على التصميم وادخل على مصدر بيانات النموذج من النقاط الثلاث الذي هو الاستعلام الفرعي ثم عدل كما في الصورة
    1 point
  8. من الاشياء التي تم تصحيحها : كان موجود كود يعيد اي تاريخ من هذا الشهر الى اليوم الأول وهذا يعتبر عمل غير موافق للحقيقة .. اذا الادخال في يوم 15 يجب ان يسجل في 15 لذا جعلت الكود يقبل التسديد في اي يوم من الشهر فالعمدة هو الشهر الحالي .. لا فرق بين اوله وآخره
    1 point
  9. تفضل تعديل بسيط على الشرط عدم الاقتطاع 5.rar
    1 point
  10. تسلم استاذنا الغالي والف شكر كفيت ووفيت
    1 point
  11. في مرفقي الاخير .. في شرط المتغير تم تصحيح الشرط فعمل معي
    1 point
  12. طيب انتظرني سافحص الكود لوحده خارج المنظومة
    1 point
  13. اخي الكريم ذكرت انظر في الكود في فورم FrmTransfer1 بينما البرنامج يفتح على FrmTransfer والكود cmd_Pay_installments موجود في النموذجين لا اخفيك تهت .. اذا العمل على FrmTransfer1 لماذا FrmTransfer موجود ؟ اذا يوجد ازرار غير مهمة احذفها .. هذا مجرد مثال
    1 point
  14. اخي طاهر .. خذني على قد فهمي اريدك ترفع مرفق يكون الجدول الخاص بالاقتطاعات خالي اعتقد انه الجدول tbl_Loans كما اظن وتشرح لي بالخطوات اعمل ايه من خلال النموذج .. خطوة خطوة وصورة للنتيجة المفترض الحصول عليها
    1 point
  15. الخبير الفاضل اعتذر عن ازعاجك بكثرة طلباتى ولكنى اقوم بطلب بسيط واحاول الاستفادة منة وتطبيقة على اكثر من حقل لو نجح الامر تمام لولم ينجح اقوم باكمال طلبى ولكن مافعلته فى انشاء الجدول ابداع غير مسبوق بارك الله لك وفيك شكرا خالص الشكر
    1 point
  16. السلام عليكم اخي طاهر انا ربما اختلف قليلا عن بقية اخوتي الخبراء والاعضاء هنا الغالب هنا يختصرون عليك وعليهم الوقت ويعطونك حل للمشكلة التي تواجهك مباشرة .. ولكن في بعض الاحيان المشكلة اذا لم تعالج من الاصل .. فإنها تولد مشكلات واخطاء تتبعها حينما استعرض مثالك لا يمكنني فهم آلية العمل : خذ ما دار في بالي : اولا لماذا الاقتطاع وتخصيصه شهري 3 و 7 فقط ... يجب ان نفهم لماذا؟ يجب ان يكون الجواب مقنع علما انه ومن خلال الجدول يوجد اقتطاعات في اشهر اخرى لا يخفى عليك . معظم .. بل كل .. عمليات القروض التي تخص العاملين والموظفين في كل الأنظمة يتم اقتطاعها من المرتب شهريا .. الى ان يتم تسديد كامل القرض مثلا اذا الموظف مطالب بتسديد 3000 دينار سنويا .. ستكون الحصة الشهرية 250 دينار تخصم من مرتبه آليا حتى لو هناك قروض اخرى يضاف استحقاقها الشهري في عمود يخصها .. والنتيجة ان الموظف يستلم مرتب شهري صافي بعد اقتطاع المستحق هنا العملية تكون انسيابية ولسنا بحاجة الى اكواد فقط استعلام واحد يقوم بالمهمة . ثانيا لاحظت ان نوع الوظيفة او رقمها يختلف من موظف الى آخر .. الى هنا صحيح ولكن حالاات الموظف تختلف فمسمى الوظيفة يجب ان يكون ثابتا ولا يتغير الا في حال الترقية .. وغالبا مسمى الوظيفة يرتبط فقط في المرتب الاساسي والعلاوات وانت جعلت الوظيفة حالاات يجب ان تكون الحالة في حقل منفصل لا دخل للوظيفة بها مثلا مدير توفي يبقى المسمى مدير ولكن الحالة متوفى وهنا تطبق المزايا والضوابط على الحالة وليس على مسمى الوظيفة ظهر لي هذا الخلل عندما غيرت الرقم في Nr من 1 الى 15 تحولت جميع السجلات الى 15 وهذا ايضا خطأ لأن الواجب ان ما سبق تسديده وقت حياته لا يتغير
    1 point
  17. شكرا استاذي العزيز
    1 point
  18. تفضل استاذ @محمد حسن2 محاولتي اليك الشرح والمرفق . بعد اختيار المرفقات واختيار اسم الفولدر ومسار الحفظ والضغط على الزر نسخ بيعمل لك فولدران بالمسار الذي اختارته واسمه . فولدر به كل الملفات المختارة والثاني نفس الفولدر مضغوط وبنهاية البروجرسبار بيفتح جوجل درايف ز والتكملة بالفيديو التالي . BackUpTest.rar
    1 point
  19. جزيت خيرا مؤكد لن نعدم فائدة .. فجزاك الله خيرا سوف نتصفحه و نقتبس اجمل ما فيه .. وندعوا لك ولن نستغني عن تفاعلك ومشاركتك معنا
    1 point
  20. البرنامج ممتاز ... ولكن عند تشغيلة يظهر بهذه الصورة زاحفا نحو اليسار الى الاسفل يبدو بسبب هذا الكود عند الفتح Private Sub Form_Current() Me.Form.InsideHeight = 9000 Me.Form.InsideWidth = 17000 CenterFormOnScreen "frm-UserLogon" End Sub
    1 point
  21. معلمى الفاضل Foksh خالص الشكر ابدعت انتهت كل مشاكل الاحتمال الاول
    1 point
  22. السلام عليكم عند ادخال رقم التسجيل والضغط على زر البحث يظهر معلومات الموظف وفي حالة ادخال رقم التسجيل خطاء تظهر رسالة تنبيه بعدم وجود هذا الرقم ولدي زر اخر اسمه اضافة وهذا عند ادخال رقم التسجيل وتظهر المعلومات اريد عند الظغط على زر اضافة يتم الحاق المعلومات في النموذج الفرعي البرنامج2025.rar
    1 point
  23. شكرا استاذ عمر على المشاركة الجميلة تحقق من الخطوة الأولى 1- ضبط الوقت .. وغلق النموذج عند انتهائه 2- حفظ الاجابة في جدول tbl_Answers 3- عمل جدول اعدادات عامة ملاحظة : بعد التجربة اتضح لي وجوب ايجاد جدول وسيط لرصد الاجابة المبدئية في الوضع الحالي سيتم حفظ الفقرة الأخيرة اي اجابة سؤال واحد فقط انتظروني سأعمل على ذلك
    1 point
  24. هل الملف كان يعمل ثم فجأة توقف؟ ارسل الملف للاصلاح .
    1 point
  25. احسنت وانت الصادق .... بل كل من يمر بالموضوع يشارك معنا .... لن اتأخر اذا سمح لي وقتي ابدااااااااااا لأننا جميعا مساهماتنا في المنتدى من اجل كسب الثواب .... جزاك الله خيرا وكتب اجرك ...
    1 point
  26. يعني استمر في التعديل على هذه النسخة وبالطريقة التي ذكرتها
    1 point
  27. وعليكم السلام ورحمة الله وبركاته أخي الكريم .. مشاركة مع مهندسنا الغالي .. فكرتي تتلخص بالعمل على حدث On Paint لقسم التفاصيل . قم بإضافة مربع نص غير منضم ، ولا تحدد له لون خلفية أو لون حدود وسميه مثلاً FokshTXT ، و طبق ما يلي :- Private Sub تفصيل_Paint() If IsNull(Me.External_lab) Or Me.External_lab = "" Then Me.FokshTxT.BackStyle = 1 Me.FokshTxT.BackColor = RGB(255, 230, 250) Else Me.FokshTxT.BackStyle = 0 End If End Sub حيث وللتوضيح ، اللون [RGB(255, 230, 250)] هو لون الخلفية المستخدم في النموذج . فقط تحكمنا بتلوين خلفية مربع النص ، كما في الصورة التالية :- وملفك بعد التعديل :- JO_Lab.zip
    1 point
  28. بارك الله فيك .. وللمرة المليون أسف على تعب حضرتك وجعله في ميزان حضرتك ... وهذا أملنا في هذا المنتدى العظيم بأساتذته
    1 point
  29. دائما لك نكهة خاصة مميزة 😋👌🌹 إبداع وإمتاع
    1 point
  30. رائع جدا هذه صورة لعملية الاعداد الجميل والشكل النهائي اتمنى اخي ان يتاح الاخراج عبر تقرير .. لما له من المزايا العديدة المفيدة
    1 point
  31. وعليكم السلام ورحمة الله وبركاته جرب هذا تسلسل ملئ بيانات الفورم1.xlsm
    1 point
  32. هذه الصور تبين النتيجة تصميم ثم عرض .. العرض يتم لجميع الطلاب
    1 point
  33. ممتاز جدا جدا وانا قمت بتجربة كود جلب الخطوط العربية فقط من النظام وسوف ادمج بينه وبين طريقتى لتمكين المطور او المستخدم من تحديد خطوط معينه ان اراد ذلك فى المستقبل وهذا الكود المنقح Option Compare Database Option Explicit '=== تعريف LOGFONT === Private Type LOGFONT lfHeight As Long lfWidth As Long lfEscapement As Long lfOrientation As Long lfWeight As Long lfItalic As Byte lfUnderline As Byte lfStrikeOut As Byte lfCharSet As Byte lfOutPrecision As Byte lfClipPrecision As Byte lfQuality As Byte lfPitchAndFamily As Byte lfFaceName(0 To 31) As Byte End Type Private Const ARABIC_CHARSET As Byte = 178 Private Const DEFAULT_CHARSET As Byte = 1 '=== الـ API Declarations === #If VBA7 Then Private Declare PtrSafe Function GetDC Lib "user32" (ByVal hWnd As LongPtr) As LongPtr Private Declare PtrSafe Function ReleaseDC Lib "user32" (ByVal hWnd As LongPtr, ByVal hdc As LongPtr) As Long Private Declare PtrSafe Function EnumFontFamiliesEx Lib "gdi32" Alias "EnumFontFamiliesExA" _ (ByVal hdc As LongPtr, lpLogFont As LOGFONT, ByVal lpEnumFontProc As LongPtr, _ ByVal lParam As LongPtr, ByVal dwFlags As Long) As Long #Else Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As Long Private Declare Function EnumFontFamiliesEx Lib "gdi32" Alias "EnumFontFamiliesExA" _ (ByVal hdc As Long, lpLogFont As LOGFONT, ByVal lpEnumFontProc As Long, _ ByVal lParam As Long, ByVal dwFlags As Long) As Long #End If Private m_FontList As Collection '=== الدالة الرئيسية === Public Sub LoadArabicFonts(cbo As Control, Optional IncludeNonArabic As Boolean = False) On Error GoTo ErrorHandler ' التحقق من صحة الـ Control If cbo Is Nothing Then Err.Raise 91, , "Control غير صالح" ' تهيئة القائمة بأمان SafeClearCombo cbo cbo.RowSourceType = "Value List" ' تحميل الخطوط Set m_FontList = New Collection If LoadSystemArabicFonts(IncludeNonArabic) Then PopulateComboBox cbo Else SafeAddItem cbo, "خطوط غير متوفرة" End If Exit Sub ErrorHandler: SafeClearCombo cbo SafeAddItem cbo, "خطأ في تحميل الخطوط" Debug.Print "LoadArabicFonts Error: " & Err.Number & " - " & Err.Description End Sub '=== وظائف مساعدة آمنة === Private Sub SafeClearCombo(cbo As Control) On Error Resume Next cbo.Clear On Error GoTo 0 End Sub Private Sub SafeAddItem(cbo As Control, itemText As String) On Error Resume Next cbo.AddItem itemText On Error GoTo 0 End Sub '=== تحميل الخطوط من النظام === Private Function LoadSystemArabicFonts(IncludeNonArabic As Boolean) As Boolean Dim hdc As LongPtr Dim lf As LOGFONT ' إعداد LOGFONT للخطوط العربية lf.lfCharSet = IIf(IncludeNonArabic, DEFAULT_CHARSET, ARABIC_CHARSET) ' الحصول على Device Context #If VBA7 Then hdc = GetDC(0) #Else hdc = GetDC(0&) #End If If hdc = 0 Then Exit Function On Error GoTo Cleanup EnumFontFamiliesEx hdc, lf, AddressOf EnumFontProc, 0, 0 Cleanup: LoadSystemArabicFonts = (m_FontList.Count > 0) #If VBA7 Then ReleaseDC 0, hdc #Else ReleaseDC 0&, hdc #End If On Error GoTo 0 End Function '=== Callback للخطوط === #If VBA7 Then Private Function EnumFontProc(lpelf As LOGFONT, ByVal lpntm As LongPtr, _ ByVal FontType As Long, ByVal lParam As LongPtr) As Long #Else Private Function EnumFontProc(lpelf As LOGFONT, ByVal lpntm As Long, _ ByVal FontType As Long, ByVal lParam As Long) As Long #End If On Error Resume Next Dim fName As String fName = StrConv(lpelf.lfFaceName, vbUnicode) fName = Left$(fName, InStr(fName, ChrW(0)) - 1) fName = Trim$(fName) ' فلتر TrueType فقط + تجنب التكرار If Len(fName) > 2 And (FontType And 4) = 4 And Not FontExists(fName) Then m_FontList.Add fName, fName ' Debug.Print "Font added: " & fName ' للاختبار End If EnumFontProc = 1 End Function '=== فحص وجود الخط === Private Function FontExists(fontName As String) As Boolean Dim f As Variant On Error Resume Next Set f = m_FontList(fontName) FontExists = (Err.Number = 0) On Error GoTo 0 End Function '=== ملء القائمة مع الترتيب === Private Sub PopulateComboBox(cbo As Control) Dim arr() As String Dim i As Long If m_FontList.Count = 0 Then Exit Sub ' تحويل Collection إلى Array ReDim arr(1 To m_FontList.Count) For i = 1 To m_FontList.Count arr(i) = m_FontList(i) Next i ' ترتيب سريع QuickSort arr, LBound(arr), UBound(arr) ' إضافة للـ ComboBox For i = LBound(arr) To UBound(arr) cbo.AddItem arr(i) Next i End Sub '=== Sort === Private Sub QuickSort(arr() As String, ByVal low As Long, ByVal high As Long) Dim pivot As String, i As Long, j As Long, temp As String If low < high Then pivot = arr((low + high) \ 2) i = low: j = high Do While StrComp(arr(i), pivot, vbTextCompare) < 0: i = i + 1: Wend While StrComp(arr(j), pivot, vbTextCompare) > 0: j = j - 1: Wend If i <= j Then temp = arr(i): arr(i) = arr(j): arr(j) = temp i = i + 1: j = j - 1 End If Loop While i <= j If low < j Then QuickSort arr, low, j If i < high Then QuickSort arr, i, high End If End Sub '=== وظيفة اختبار === Public Function GetArabicFontsCount() As Long Set m_FontList = New Collection LoadSystemArabicFonts False GetArabicFontsCount = m_FontList.Count End Function
    1 point
  34. رداً على هذه النقطة ، وحيث أنه سبق تنفيذها سابقاً .. جرب المرفق نفسه بعد التعديل بحيث سيتم فقط عرض الخطوط العربية ( أو التي تتعامل مع الكاركتر العربي ) في الكومبوبوكس . مع إضافة الفرز التصاعدي للأسماء :- Db3.zip
    1 point
  35. الله .. الله .. الله .. ما هذا !! لا يهمني العمل الآن .. يكفيني النص المكتوب .. اخجلتني يارجل .. لحظة تعال ... معرف جديد + خبرة فائقة .. وخطاب يمثل المنتدى .. اني لأشم ريح يوسف
    1 point
  36. االرجاء الانتظار الى الانتهاء من باقى التعديلات CertificateCustomization.zip
    1 point
  37. وعليكم السلام ورحمة الله وبركاته .. أعجبتني الفكرة كثيراً بان يكون هناك مرونة وليونة في نص محتوى الشهادة .. فخطر ببالي فكرة أود مشاركتكم ثمارها في الصورة الموضحة تالياً قبل ارفاق الملف .
    1 point
  38. وعليكم السلام ورحمة الله وبركاته .. بدايةً اسم الحقل = "id_pers" وليس "رقم التسجيل" صحيح ؟؟ اعتقد انك تستطيع استعمال الدالة DMAX كقيمة افتراضية لمربع النص داخل النموذج . كمثال ، اجعل القيمة الإفتراضية لمربع النص id_pers تساوي الجملة التالية وجرب بعد أن تقوم بحذف السجل الموجود في جدولك :- =Nz(DMax("id_pers","tbl_personne1"),19020999)+1 ملفك بعد التعديل :- IsertImages.zip
    1 point
  39. تفضل جرب اخي ووافينا بالنتيجة Sub RefreshData() ' تعديل Dim i As Long, k As Long Dim last_Dest As Long, lastrow As Long Dim ws_data As Worksheet: Set ws_data = Worksheets("data") For Each ws_dest In ThisWorkbook.Worksheets lastrow = ws_data.Cells(ws_data.Rows.Count, 1).End(xlUp).row last_Dest = ws_dest.Cells(ws_dest.Rows.Count, 1).End(xlUp).row Application.ScreenUpdating = False For i = 2 To lastrow For k = 2 To last_Dest 'في حالة وجود اوراق اخرى على المصنف قم باظافتها هنا If ws_dest.Name <> ws_data.Name And ws_dest.Name <> "اليومية" And ws_dest.Name <> "ورقة6" Then ' شرط تطابق عمود التسلسل وعمود التوجيه If ws_dest.Cells(k, 1).Value = ws_data.Cells(i, 1).Value And _ ws_dest.Cells(k, 2).Value = ws_data.Cells(i, 2).Value Then _ 'في حالة تحقق الشرط ws_dest.Cells(k, 3).Value = ws_data.Cells(i, 3).Value 'التاريخ ws_dest.Cells(k, 4).Value = ws_data.Cells(i, 4).Value ' البيان ws_dest.Cells(k, 5).Value = ws_data.Cells(i, 5).Value 'مدين ws_dest.Cells(k, 6).Value = ws_data.Cells(i, 6).Value 'دائن ws_dest.Activate 'تسطير تلقائي للبيانات DL = ws_dest.Range("A65500").End(xlUp).row DC = ws_dest.Cells(1, Columns.Count).End(xlToLeft).Column ws_dest.Columns("A:F").Borders.LineStyle = xlNone ws_dest.Range(Cells(2, 6), Cells(DL, DC)).Borders.Weight = xlThin End If End If Next Next Next ws_dest ws_data.Activate MsgBox "تم التعديل بنجاح", 64 Application.ScreenUpdating = True End Sub Sub transfer_data() ' ترحيل Dim Sh As Worksheet Dim ws_data As Worksheet: Set ws_data = Worksheets("data") For Each Sh In ThisWorkbook.Worksheets For R = 2 To [B20000].End(xlUp).row If Cells(R, 2).Value = Sh.Name And Cells(R, 2).Value <> Empty Then Application.ScreenUpdating = False Cells(R, 2).Resize(1, 5).Copy Sh.Range("B" & Sh.[B20000].End(xlUp).row + 1) End If Next Next For Each Sh In Worksheets 'في حالة وجود اوراق اخرى على المصنف قم باظافتها هنا If Sh.Name <> "اليومية" And Sh.Name <> "data" And Sh.Name <> "ورقة6" Then Sh.Activate Sh.Range("A3:A1000").ClearContents Sh.Range("A3") = 1 Sh.Range("A3:A" & Range("B" & Rows.Count).End(xlUp).row).DataSeries , xlDataSeriesLinear DL = Sh.Range("A20000").End(xlUp).row DC = Sh.Cells(1, Columns.Count).End(xlToLeft).Column Sh.Columns("A:F").Borders.LineStyle = xlNone Sh.Range(Cells(2, 6), Cells(DL, DC)).Borders.Weight = xlThin End If Next MsgBox ("تم بحمد الله ترحيل القيود لا تنسى أن تشكر الله علي هذه النعم "), vbOKOnly + vbInformation, "لاتنسونا من صالح الدعاء لنا ولولدينا وللمسلمين" ws_data.Activate Application.ScreenUpdating = True End Sub استدعاء من عدة شيتات- V3.xlsm
    1 point
  40. من الملفات القديمة التي تمت مشاركتي لها والتي تطلب غالباً كيف نحمي الخلايا غير الفارغة بواسطة باسوورد (الباسورد في الملف / الخلية H3/ يمكن حفظة و مسحه عن عيون الفضوليين) مع حرية الغاء الجماية كما تشاء protect non empty data with Pass word.xlsm
    1 point
  41. اليك الملف بعد اضافة المعادلة تحياتي كشف لمن غاب اكثر من 3.xlsm
    1 point
  42. السلام عليكم تم التعديل على ملف أخي سليم بإضافة كل الشهور في شيت واحد مع إضافة كود لإظهار الشهر المعني فقط وهذا لأجل الإحصائيات السنوية... يمكن إضافة التعديلات الأخرى الجديدة على هذا الملف... بالنسبة لأيام العطل الأخرى (غير عطلة نهاية الأسبوع) يكفي أن لا نسجل فيها الغيابات... والله أعلم أرجو أن تسهل هذه التعديلات العمل على الملف... أخوكم بن علية كشف hben.xlsm
    1 point
  43. ممكن ذلك شاهد هذا الملف (العملية تتم عند كبسة اليمين وليس دوبل كليك في نطاق محدد ) كله قابل للتغيير حسب المطلوب Right_Click.xlsm
    1 point
  44. ملف جيد و الى الامام لكن ارجو تقبل بعض الملاحظات: 1- لا ضرورة لتحميل ملف كبير بهذا الشكل يكفي ملف صغير مختصر 20 الى 30 صف (نموذج ) والذي يريد اضافة معلومات يكون الامر متاحاً له 2- لا ضرورى لادراج التواريخ يدوياً في كل صفحة من صفحات الشهور (يكفي عمل نسخات (12 نسخة) عن الورقة Salim من هذا الملف واختيار الشهر والسنة و بوم العطلة في كل نسخة) ثم تسمية هذه الصفحات باسماء الشهور اذا اردت ليقوم اكسل بادراج التواريخ ألياً (كما في الصفحة Salim) مع حساب الشهر 28و29و30 أو 31 و تاوين يوم العطلة كما تحدده في الخلية A3 3 -هذه الورقة صالحة لكل الاعوام الدراسية (يكفي تغيير السنة فقط من الخلية A1) في كل صفحة من صفحات الشهور الملف (كنموذج) مرفق كشف Salim.xlsm
    1 point
  45. نسخة من الملف بتنسبق 2003 protect non empty data with Pass word.xls
    1 point
  46. اخي الكريم ابو أحمد السلام عليكم ورحمة الله وبركاته تم ضبط كود شهر نوفمبر بالمرفقات مع تحياتي Charts Form.rar
    1 point
  47. استاذى الفاضل دغيدى رغم اننى لا اعمل فى المرتبات ولا فى الحكومة الا اننى اتمنى ان تكون هذه الاجابة صحيحة و طريقتها كالتالى الطبقة الأولى نحذف 50 ج من المبلغ لأنها معفاة ثم الطبقة الثانية أزيد من 50 حتى 250 ج(6 فى الألف ). الثالثة أزيد من 250 حتى 500 ج (6.5 فى الألف ). الرابعة أزيد من 500 حتى 1000 ج(7 فى الألف) . الخامسة أزيد من 1000 حتى 5000 ج (7.5 فى الألف) . السادسة أ زيد من 5000 حتى 10000 ج (8 فى الألف) . كل مبلغ يزيد عن 10000 ج تخضع الزيادة لسعر 3 فى الألف . مرفق برنامج جاهز من اعمال المحاسب صلاح مدكور وبرنامج اكسيل ارفقه اخى ابوحنين ولكنه لم يشر فيه الى وجود معادله تحسب الضريبة فى العمود b البرنامج مجرب بدليل اكتب مبلغ اقل من 50 جنية لن يعطى لك مبلغ الدمغة لانها معفاه اتمن ان اكون وفقت فى تقديم معلومة مفيدة لحضرتك اخوك سعد عابد برنامج للدمغة.rar الدمغة.rar
    1 point
  48. السلام عليكم هذا فديو يشرح التصفية المتقدمة التى تتميز بإمكانية نقل البيانات المفلترة إلى شيت آخر كما تمكننا من مميزات أخرى ========== الفديو ========== وقتا ممتعا الملف المستخدم بالشرح بالمرفقات الجزء الثانى التصفية المتقدمة شرح.zip
    1 point
×
×
  • اضف...

Important Information