اذهب الي المحتوي
أوفيسنا

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

  1. kkhalifa1960

    kkhalifa1960

    الخبراء


    • نقاط

      4

    • Posts

      1977


  2. ناقل

    ناقل

    الخبراء


    • نقاط

      2

    • Posts

      603


  3. محمد هشام.

    محمد هشام.

    الخبراء


    • نقاط

      2

    • Posts

      1713


  4. Foksh

    Foksh

    الخبراء


    • نقاط

      2

    • Posts

      3016


Popular Content

Showing content with the highest reputation on 05/18/24 in all areas

  1. هل هذا طلبك أخي الكريم ,, ضع الكود في حدث في الحالي للنموذج .. Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acTextBox Then If IsNull(ctl.Value) Or ctl.Value = "" Then ctl.BackColor = vbYellow Else ctl.BackColor = vbWhite End If End If Next ctl تلوين النصوص الفارغة.mdb
    2 points
  2. هو هذا الكلام ياسلام عليك معملنا الكبير وشيخنا الجليل ابو خليل الله الله الله الله عليك نعم هذا المطلوب الله يفتح عليك ويبارك فى عمرك واسرتك ويرحم والديك جزاك الله كل خير مع ان الاستاذ / فايد كاد ان يصل الى المطلوب ولكنه لم اوضح له السؤال بالقدر الكافى ولكنى اشكره واسف على تعبه معايا ولو كان الوقت بدرى شوية كان وصل للحل ولكن انا اعرف ظروفه جيدا فجزاك الله خير وبارك فى اسرتك ورحم والديك واتقدم بالشكر للأستاذ العظيم المخلص المحترم جدا الاستاذ / خليفة / @kkhalifa1960 وجزاه الله كل خير عنى ورحم الله والديه ورزقه بغير حساب وبارك فى صحته جزاكم الله خير فانتم خير مساعدا لنا فى هذا المنتدى انا لم اعرف اضع اسم من كأفضل اجابة اعذرونى لم اضع احدا لان كلهم تعبوا معى ومحرج جدا جدا جدا بين عمالقه اكسس
    1 point
  3. تفضل يا دكتور تم الغاء شرط الصنف Me.Refresh Dim i As Integer i = Nz(DCount("*", "Query1"), 0) If i > 0 Then If i = 1 Then Me.k = 1 Else Me.k = i End If End If التوريد3.rar
    1 point
  4. مشاركة مع استاذ @Foksh تفضل د/ @الحلبي محاولتي حسب مافهمت . ووافني بالرد . التوريد-1.rar
    1 point
  5. تفضل استاذ @Abdelaziz Osman طلبك حسب مافهمت . ووافني بالرد . عدم الخروج دون تسجيل-1.rar
    1 point
  6. الخبير المبدع الذى لايبخل بعلمة على احد شكـــــــــرااااااا
    1 point
  7. تفضل ........................... Dim rs As DAO.Recordset Set rs = CurrentDb.OpenRecordset("SELECT TP1.ID, TP1.[اسم الموظف], TP1.[الدرجة الوظيفية], TP1.[العنوان الوظيفي] FROM TP1;", dbOpenSnapshot) With rs .MoveLast .MoveFirst Me.text1.AddItem "اسم الموظف" & ";" & "الدرجة" & ";" & "العنوان الوظيفي" For i = 1 To .RecordCount xfld = 0 Call Allfld(rs![العنوان الوظيفي]) If xfld = 0 Then Beep Me.text1.AddItem rs![اسم الموظف] & ";" & rs![الدرجة الوظيفية] & ";" & rs![العنوان الوظيفي] Else End If .MoveNext Next i End With
    1 point
  8. أحسنت أخي أبو بسملة هذا هو المطلوب بالضبط وجزاك الله خيرا والشكر موصول لأخونا الاستاذ الفاضل Foksh (ولكن لو تكرمت أوضحت لي مكان التعديل أو الإضافة)
    1 point
  9. السلام عليكم مشاركه مع اخوانى هل هذا ما تريد جرب واخبرنا 11.accdb
    1 point
  10. السلام عليكم ورحمة الله وبركاته تسلم بشمهندس محمد سلمت يداك فعلا هذا هو المطلوب السلام عليكم ورحمة الله وبركاته اشكرك بشمهندس Foksh حفظك الله الكود ممتاز فعلا يلبي الطلب في كل الحقول الفارغة لقد استفدت منه وسوف استعمله في نماذج تحتاج ذلك في هذا النموذج حقول محددة فقط احتاج ان يعمل فيها الكود اشكرك مرة اخري بشمهندس
    1 point
  11. تفضل قمت بالتنفيذ فى حقل name1 نفذ نفس الفكرة فى باقى الحقول بالتوفيق تلوين النصوص الفارغة.mdb
    1 point
  12. وعليكم السلام ورحمة الله وبركاته تفضل جرب هذه المعادله =COUNTIF(Sheet1!E3:E4000;"*"& B2 &"*")
    1 point
  13. جرب هذا سيتم نسخ الملف الى مصنف جديد بصيغة xlsx . في نفس مسار المصنف المفتوح TEST WORD 2.rar
    1 point
  14. مشاركة مع استاذ @محمد احمد لطفى مصدر التقرير استعلام وعند البارامتر المهم ضع تحته الشرط (Is NotNull) .
    1 point
  15. بغد اذن أساتذتي ممكن مشاركة . تفضل أستاذ @sky5555 محاولتي حسب ما فهمت الشرح بنموذج (ReaMe) واليك المرفق . DDTest3.rar
    1 point
  16. اسف اخي على التاخير في الرد لاكنني عند الاشتغال على الملف ومراجعة الاكواد لاحظت بعد الهفوات التي لم انتبه اليها من قبل 😱 ربما انت لم تلاحظها لاكنها حتما سوف تسبب لك اخطاء بعد تحديث البيانات وخاصة عند اظافة بيانات جديدة لم تكن موجودة مسبقا على الملف ...... (رحم الله من عمل عملا فأتقنه) تفضل استبدل كود التوزيع بالكود التالي بعد تنقيحه بشكل افضل وادق Sub Create_Worksheets() '09/05/2024 by:MOHAMEED HICHAM www.officena.net "منتدى الاكسيل" ' '*********'Create Worksheets and Name Them With The First letters of The Name*********** Dim WS As Worksheet, srcWS As Worksheet Dim rgData As Range, ColName As Variant Dim Lr As Long, lColumn As Long, Irow As Long Dim rCrit As Range, destRng As Range, tmp As Range Dim dicWS As Object, dictKey As String, Cpt As Variant Dim I As Long, x As Long, nCount As Integer, lastRow As Long With Application .ScreenUpdating = False .EnableEvents = False .Calculation = xlCalculationManual End With ' نطاق المعايير Set WS = Worksheets("البيانات") With WS .Columns("J:G").Clear: .UsedRange.Hyperlinks.Delete Lr = .Cells(Rows.Count, "D").End(xlUp).Row lColumn = .Cells(1, Columns.Count).End(xlToLeft).Column + 2 Set rgData = .Range("C1:E" & Lr) ColName = rgData.Columns(2) Set rCrit = .Cells(1, lColumn) rCrit.Value = .Range("D1") Set rCrit = .Cells(1, lColumn).Resize(2) End With ' الحصول على مجموعة الحروف الفريدة - الحرف الأول من الاسم Set dicWS = CreateObject("Scripting.dictionary") dicWS.comparemode = vbTextCompare For I = 2 To UBound(ColName) ' تجاهل الفراغات If ColName(I, 1) <> "" Then dictKey = Left(ColName(I, 1), 1) If Not dicWS.Exists(dictKey) Then dicWS(dictKey) = "" End If End If Next I ' رمز اظافي للتعامل مع حرف الالف '(ا,أ,إ,آ) & Unicode & وتجميعه والذي يمكن أن يكون 4 أحرف مختلفة Dim letters As Variant, réf As Boolean, arr() As String, j As Long letters = Array(1570, 1571, 1573, 1575) ReDim arr(1 To UBound(letters) + 1) For I = 0 To UBound(letters) dictKey = ChrW(letters(I)) If dicWS.Exists(dictKey) Then réf = True dicWS.Remove dictKey End If j = j + 1 arr(j) = dictKey & "*" Next I If réf Then dictKey = Replace(Join(arr, "-"), "*", "") dicWS(dictKey) = "" End If '*مراجعة المعرفات مع إنشاء أو تحديث ورقة جديدة للمجموعة الحرفية *** For Each Cpt In dicWS.Keys ' ***التحقق من وجود ورقة العمل مسبقا*** If Evaluate("ISREF('" & Cpt & "'!A1)") Then 'تحديث Set srcWS = Worksheets(Cpt) srcWS.UsedRange.Clear Else ' اظافة Set srcWS = Worksheets.Add(after:=Sheets(Sheets.Count)) srcWS.Name = Cpt End If ' لصق البيانات Set tmp = srcWS.[A1] If Len(Cpt) > 1 Then rCrit.Cells(2).Resize(UBound(arr)) = Application.Transpose(arr) Set rCrit = rCrit.CurrentRegion Else rCrit.Offset(1).ClearContents rCrit.Cells(2) = Cpt & "*" Set rCrit = rCrit.CurrentRegion End If rgData.AdvancedFilter xlFilterCopy, rCrit, tmp rgData.EntireColumn.Copy tmp.PasteSpecial Paste:=xlPasteColumnWidths ' اظافة ارتباط تشعبي لاوراق المجوعات الحرفية Worksheets(srcWS.Name).Hyperlinks.Add Anchor:=Worksheets(srcWS.Name).[E2], Address:="", _ SubAddress:="'" & WS.Name & "'" & "!A1", TextToDisplay:="ورقةالبيانات" lastRow = srcWS.Columns("A:C").Find(What:="*", SearchDirection:=xlPrevious, _ SearchOrder:=xlByRows).Row '***(ازالة التكرار في حالة وجوده (على الاوراق الجديدة *** 'الاعمدة d = [{1,2,3}] srcWS.Range(srcWS.Cells(1, 1), srcWS.Cells(lastRow, 3)).RemoveDuplicates d(1), Header:=xlNo ' اعادة ترتيب التسلسل With srcWS.Range("A2:A" & srcWS.Range("B" & srcWS.Rows.Count).End(xlUp).Row) .Formula = "=IF(B2="""","""",IF(B2=""Name"",""Count"",N(A1)+1))" .Value = .Value End With Next Cpt rCrit.EntireColumn.Clear ' تحديد اوراق المجموعات الحرفية For x = 1 To Sheets.Count nf = Sheets(x).Name If Len(nf) = 1 Or (nf) Like "*-*" Then Sheets(x).Activate With ActiveSheet 'عدد الاسماء على كل ورقة lige = Evaluate("SUM(0+(A2:A" & .Cells(.Rows.Count, "A").End(xlUp).Row & "<>""""))") ' اظافة الارتباط التشعبي لجميع الاوراق الى الرئيسية WS.Hyperlinks.Add Anchor:=WS.Cells(x + 2, 10), Address:="", SubAddress:="'" & _ nf & "'" & "!A1", TextToDisplay:="حرف" & "-" & nf .Tab.Color = 5287936: [A1].Select: .DisplayRightToLeft = True: .[f1] = "عدد الاسماء": .[f2] = lige End With ' استخراج اسماء المجموعات الحرفية nams = nams & " " & "حرف" & "-" & nf nCount = nCount + 1 End If Next x ' ترتيب ابجدي لاسماء الشيتات Irow = WS.Range("j:j").Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row WS.Range("j2:j" & Irow).SpecialCells(xlCellTypeBlanks).Delete Shift:=xlUp WS.Range("j1:j" & Irow).Sort Key1:=WS.[j2], _ Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, _ Orientation:=xlTopToBottom WS.Activate With Application .ScreenUpdating = True .EnableEvents = True .Calculation = xlCalculationAutomatic .CalculateFull End With MsgBox nams, vbInformation, "تم حفظ" & " : " & nCount & " " & "مجموعة بنجاح" End Sub اما لطلبك لحفظ الملفات بصيغة PDF تفضل اخي نظرا لعدد اوراق العمل الكثيرة على الملف التي يجب تنسيقها قبل الطباعة او الحفظ سرعة تنفيد الكود ستعتمد على امكانيات الجهاز المستخدم Sub Save_PDF() Dim wb As Workbook, _ WS As Variant, _ lastRow As Long, _ nCount As Integer, strFolder As String Const File_format As String = ".pdf" ' قم بتعديل اسم مجلد الحفظ بما يناسبك strFolder = "المجموعات الحرفية" Set wb = ActiveWorkbook: With Application .ScreenUpdating = False If MsgBox("؟" & " PDF" & " : " & " حفط الملفات ", vbYesNo) = vbNo Then Exit Sub For Each WS In wb.Worksheets If Len(WS.Name) = 1 Or (WS.Name) Like "*-*" Then Cpt = True j = "حرف" & "-" & WS.Name nCount = nCount + 1 lastRow = WS.Columns("A:C").Find(What:="*", SearchDirection:=xlPrevious, _ SearchOrder:=xlByRows).Row With wb On Error Resume Next SaveLocation = wb.Path & Application.PathSeparator & strFolder If Len(Dir(SaveLocation, vbDirectory)) = 0 Then End If MkDir SaveLocation End With ' الاعدادات With WS.PageSetup .PrintArea = "$A$1:$C$" & lastRow .PrintTitleRows = "$1:$1" .CenterHorizontally = True .CenterVertically = True .Orientation = xlLandscape .CenterFooter = j End With WS.ExportAsFixedFormat Type:=xlTypePDF, Filename:=SaveLocation & Application.PathSeparator & j & File_format, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End If Next WS .ScreenUpdating = True End With If Cpt = False Then MsgBox "لا توجد ملفات للحفظ", vbInformation, "تم إلغاء الإجراء": Exit Sub End If MsgBox "تم حفظ" & " : " & nCount & " " & "مجموعة بنجاح", _ vbOKOnly + vbInformation + vbDefaultButton1 + vbApplicationModal, SaveLocation End Sub ترحيل الاسماء حسب الاحرف الى شيتات V3.xlsm
    1 point
×
×
  • اضف...

Important Information