-
Posts
780 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
47
نوع المحتوي
التقويم
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو عبدالله بشير عبدالله
-
التعديل على كود البحث في برنامج المرسلات الإدارية
عبدالله بشير عبدالله replied to Khair ali's topic in منتدى الاكسيل Excel
السلام عليكم استاذ خيري كيف حالك واتمنى ان تكون بخير وعافيه جرب التعديل التالي للبحث والتعديل والخذف والاظافة البحث بالرقم الأشاري أو البحث بأي جزء من النص المكتوب في الخليةm15 مع احتيار وارد او صادر من القائمة االمراسلات الإدارية1.xlsm تحياتي -
سحب معلومات تلقائية بين ورقتين في مربع تحرير النص
عبدالله بشير عبدالله replied to احمد 505's topic in منتدى الاكسيل Excel
السلام عليكم ورحمة الله وبركاته في ملفك تستخدم Shapes TextBox (وهي من النوع Form Control)، فهي لا تدعم حدث Change مباشرة قكرة الاستاذ hegazee بسيطة وعملية ربما تعديل بسيط على الفكرة وهو كتابة الرقم في خلية ويتم ربط الخلية بالتكست الاول في الملف اكتب الرقم في الخلية الصفراء تبادل معلوات ورقتين(2).xlSB عذرا ان لم تستطع طلبك كما تريد ولعل الاعضاء المخترمون لديهم افكار اخرى تخياتي -
وعليكم السلام ورحمة الله وبركانه حرب الكود بالملف خلاصة حسب تقرير البصمة1.xlsm
-
وعليكم السلام ورحمة الله وبركاته اسعدنى ان الملف يعمل لديكم تم اظافة زر جديد لطلبك الاخير وتم ترتيب الاسماء ابجديا مع التجميع الكلي لكل العملاء مع امكانية الطباعة والتحويل الى PDF والمعاينة متابعة (3).xlsm
-
سحب معلومات تلقائية بين ورقتين في مربع تحرير النص
عبدالله بشير عبدالله replied to احمد 505's topic in منتدى الاكسيل Excel
السلام عليكم بعد اذن استاذنا الفاضل hegazee جرب التعديل التالي تبادل معلوات ورقتين(1).xlsb -
وعليكم السلام ورخمة الله وبركاته الملف والاكواد على اكسل 2016 نظام 64 بت ويعمل بكفاءة لدي بدون اي مشاكل وجربته على جهاز احر اكسل 2013 وشغال 100% واكسل 2007 يعمل على نظام 32 بت مايكروسوفت لم تبدأ دعم إصدارات 64-بت من أوفيس إلا ابتداءً من Office 2010. اعتقد السبب ولست جازما بالامر ExportAsFixedFormat (PDF): التصدير هذه الميزة غير مدمجة في Excel 2007 إلا إذا كان مثبتًا "Microsoft Save as PDF or XPS Add-in" هذه الإضافة كانت تُنشر رسميًا من مايكروسوفت ولم تعد متاحة مباشرة على موقع مايكروسوفت بعد انتهاء دعم Office 2007 الغا من موافع اخرى ربما تمون غير موثوقة إذا لم تكن مثبتة ستظهر رسالة خطأ عند التصدير لـ PDF. كما في الصورة لديك نصيحة غير الاصدار 2007 الى اعلى واعتقد ان اصدار 2010 يدعم ميزة التصدير اذا كان مواصفات جهازك عادية اذا كان مواصفات جهازك جيده اصدار من 2016 او 2019 او 2021 جرب الملف على جهاز احر اصداره فوف 2007 هذا خسب علمى وربما للخبراء الافاضل راي اخر اجهله تحياتي
-
يرجى المساعدة في تعديل الكود
عبدالله بشير عبدالله replied to Khorsheed Omar's topic in منتدى الاكسيل Excel
السلام عليكم جرب التعديل التالي التعديل في الجزء wsArchive.Protect Password:=Password, USERINTERFACEONLY:=True الى wsArchive.Protect Password:=Password, USERINTERFACEONLY:=True, AllowFiltering:=True الكود كاملا Sub CopyPrintClear() Dim wsArchive As Worksheet Dim wsPrint As Worksheet Dim lastRow As Long Dim copyRange As Range Dim rowCount As Long Dim i As Long Dim Password As String Dim requiredCells As Variant Dim cell As Variant Dim isIncomplete As Boolean Password = "KHORSHEED.OMAR.2025" ' تعيين الشيتات Set wsPrint = ThisWorkbook.Sheets("طباعة") Set wsArchive = ThisWorkbook.Sheets("أرشيف") ' التحقق من الخلايا المطلوبة requiredCells = Array("A2", "F2", "F3", "C18") isIncomplete = False For Each cell In requiredCells If Trim(wsPrint.Range(cell).Value) = "" Then isIncomplete = True Exit For End If Next cell If isIncomplete Then MsgBox "الملف غير كامل. يرجى تعبئة جميع الخلايا المطلوبة.", vbExclamation Exit Sub End If ' رسالة تأكيد If MsgBox("هل تريد تنفيذ العملية؟", vbYesNo + vbQuestion, "تأكيد") = vbNo Then Exit Sub End If ' رفع الحماية مؤقتًا wsArchive.Unprotect Password:=Password ' تحديد نطاق النسخ Set copyRange = wsPrint.Range("A6:G15") rowCount = copyRange.Rows.Count ' تحديد أول صف فارغ في شيت الأرشيف lastRow = wsArchive.Cells(wsArchive.Rows.Count, "B").End(xlUp).Row + 1 ' نسخ الجدول بالكامل إلى الأرشيف wsArchive.Range("A" & lastRow).Resize(rowCount, 5).Value = copyRange.Value ' نسخ القيم الفردية إلى الأعمدة المطلوبة wsArchive.Range("F" & lastRow & ":F" & lastRow + rowCount - 1).Value = wsPrint.Range("C18").Value wsArchive.Range("J" & lastRow & ":J" & lastRow + rowCount - 1).Value = wsPrint.Range("B3").Value wsArchive.Range("H" & lastRow & ":H" & lastRow + rowCount - 1).Value = wsPrint.Range("F3").Value wsArchive.Range("G" & lastRow & ":G" & lastRow + rowCount - 1).Value = wsPrint.Range("F2").Value wsArchive.Range("I" & lastRow & ":I" & lastRow + rowCount - 1).Value = wsPrint.Range("A2").Value ' تحديد منطقة الطباعة وشطبها wsPrint.PageSetup.PrintArea = "$A$1:$F$18" wsPrint.PrintOut ' مسح البيانات من الشيت wsPrint.Range("A6:A15").ClearContents wsPrint.Range("C6:E15").ClearContents wsPrint.Range("A2").ClearContents wsPrint.Range("F2").ClearContents wsPrint.Range("F3").ClearContents wsPrint.Range("C18").ClearContents ' الطباعة مرة ثانية إذا رغبت wsPrint.PageSetup.PrintArea = "$A$1:$F$18" wsPrint.PrintOut wsArchive.Protect Password:=Password, USERINTERFACEONLY:=True, AllowFiltering:=True ' تنظيف الحافظة Application.CutCopyMode = False ' العودة إلى شيت الطباعة وتحديد الخلية A1 wsPrint.Activate wsPrint.Range("A1").Select End Sub -
ما طلبته هو الموجود فعلا الزر طباعة فردية يطلب اسم العميل الزر الاخر طباعة كل العملاء لا يطلب اسم العميل يخرج ديالوج الطباعة مباشرة وتختار طباعة او pdf ينشئ مجلد باسم كل العملاء به اسماء العملاء كل في pdf لوحده ,ونجد من ضمنها ملف pdf باسم كل العملاء به كل العملاء مجتمعين ارجو التوضيح اكثر ان كان ما شرحته لك ليس طلبك
-
وعليكم السلام ورحمة الله وبركاته عذرا للتاخير في الرد لان فترة الصباح كل لديه ما يشغله خارج البيت كنت انمنى ان تكون كل الطلبات من الاول بسبب ان الطلب الاخير سيعيد تجهيز الماكرو الاول من جديد لانه هناك ارتباط بين الطلب الاول والثاني في عدة اشياء على كل حال اليك الملف متابعة (2).xlsm انمنى ان يكون طليك في هذا الملف لك وافر التقدير والاحترام
-
وعليكم السلام ورحمة اللع وبركاته لم تصلنى الفكرة بعد اين توجد القائمة المتسدلة لا اعتفد انها في TextBox8 لان TextBox في الـ VBA (UserForm) لا يدعم قائمة منسدلة (DropDown / List) ، مع وجود ComboBox. انا اذا كانت TextBox8 مرتبطة بكمبوبكس او لستبكس - قم بالضغط على TextBox8 في وضع التصميم ثم من الخصائص على يسار الشاشة اختار locked - true او enabled-false ارفاق ملف يختصر الوقت لفهم فكرة عمل TextBox8 تحياتي
-
-
جزاك الله خيرا استاذنا الفاضل
-
جربت الملف لا توجد اي مشكلة الكود يعمل جيدا , اذا كان pdf مفتوحا تخدت هذه المشكلة او اذا كان اسم العميل يحتوى على اي من الحروف الاتية تخدث المشكلة \ / : * ? " < > | جرب على جهاز احر وتامل من الاعضاء التجربة لنتاكد
-
السلام عليكم ورحمة الله وبركاته تم استبدال التكستبوكس بكمبوبكس فبدل كتابة الاسم تجد الاسماء جاهزة في فائمة البيانات ستحتوى تلقائيًا بعرض الصفحة اثناء الطباعة بعد الإنشاء، يظهر مربع حوار 3 خيارات: نعم = طباعة مباشرة لا = حفظ كـ PDF إلغاء = معاينة قبل الطباعة خفظ pdf باسم العميل الملف متابعة (1).xlsm
-
وضحت الفكرة استاذنا ايشر خيرا ان شاء الله
-
وعليكم السلام ورحمة اللة وبركاته الملف غير مكتمل واعتقد لن تجد استجابة لطلبك لعمل كود الطباعة يجب تجهيز صفخة نتائج البحث وبها عينة من نتيجة بحث ليتم بناء الكود على اساسها لك وافر التتقدير والاخترام
-
لم انتبه كنت اعتقد ان الغياب خاص بالموظفين وليس للطلبة فعذرا لذلك على كل حال 30 يوم منفصلة موجودة في الكود من ضمن الشروط تحياتي
-
وعليكم السلام ورحمة الله وبركاته جرب هذا التعديل مخزن3 (1).xlsm
-
السلام عليكم ورحمة الله وبركاته الكود Sub CheckAbsence() Dim ws As Worksheet Dim lastRow As Long, i As Long, j As Long Dim countConsecutive As Long, maxConsecutive As Long Dim countTotal As Long Dim msg As String Dim cell As Range Set ws = ThisWorkbook.Sheets("ورقة1") lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row For i = 2 To lastRow countConsecutive = 0 maxConsecutive = 0 countTotal = 0 ' المرور على نطاق الغياب C:AG For Each cell In ws.Range("C" & i & ":AG" & i) If cell.Value = "غ" Then countConsecutive = countConsecutive + 1 countTotal = countTotal + 1 If countConsecutive > maxConsecutive Then maxConsecutive = countConsecutive End If Else countConsecutive = 0 End If Next cell msg = "" If maxConsecutive >= 15 Then msg = "مفصول" ElseIf maxConsecutive >= 5 Then msg = "إنذار أول" End If If countTotal >= 30 Then msg = "مفصول" ElseIf countTotal >= 24 Then msg = "إنذار ثالث" ElseIf countTotal >= 16 Then msg = "إنذار ثاني" ElseIf countTotal >= 8 And msg = "" Then msg = "إنذار أول" End If ws.Cells(i, "AH").Value = msg Next i End Sub الملف سجل غياب الطلاب1.xlsb
-
السلام عليكم كود طباعة وكود تحويل pdf Sub Print_Managers_Deputies() Dim wsData As Worksheet, wsReport As Worksheet Dim lastRow As Long, i As Long Dim idVal As String, roleVal As String Application.ScreenUpdating = False Application.EnableEvents = False Set wsData = ThisWorkbook.Sheets("data") Set wsReport = ThisWorkbook.Sheets("التقرير مدير وكيل") lastRow = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row For i = 3 To lastRow idVal = wsData.Cells(i, "A").Value roleVal = wsData.Cells(i, "E").Value If (InStr(1, roleVal, "مدير", vbTextCompare) > 0) _ Or (InStr(1, roleVal, "وكيل", vbTextCompare) > 0) Then wsReport.Range("L2").Value = idVal wsReport.PrintOut wsReport.Range("L2").Value = 1 End If Next i MsgBox "تمت طباعة جميع المديرين والوكلاء.", vbInformation Application.ScreenUpdating = True Application.EnableEvents = True End Sub Sub sav_PDFall2() Dim wsData As Worksheet, wsReport As Worksheet Dim lastRow As Long, i As Long Dim roleVal As String Dim folderPath As String, pdfPath As String Dim safeName As String Application.ScreenUpdating = False Application.EnableEvents = False Set wsData = ThisWorkbook.Sheets("data") Set wsReport = ThisWorkbook.Sheets("التقرير مدير وكيل") wsReport.Unprotect password:="0" folderPath = ThisWorkbook.Path & "\التقرير مدير وكيل" If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath lastRow = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row For i = 3 To lastRow roleVal = wsData.Cells(i, "E").Value If (InStr(1, roleVal, "مدير", vbTextCompare) > 0) _ Or (InStr(1, roleVal, "وكيل", vbTextCompare) > 0) Then wsReport.Range("C9").Value = wsData.Cells(i, "B").Value safeName = wsReport.Range("C9").Value safeName = Replace(safeName, "/", "-") safeName = Replace(safeName, "\", "-") safeName = Replace(safeName, ":", "-") safeName = Replace(safeName, "*", "-") safeName = Replace(safeName, "?", "-") safeName = Replace(safeName, """", "-") safeName = Replace(safeName, "<", "-") safeName = Replace(safeName, ">", "-") safeName = Replace(safeName, "|", "-") pdfPath = folderPath & "\" & safeName & ".pdf" wsReport.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=pdfPath, _ Quality:=xlQualityMinimum, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=False End If Next i MsgBox "تم حفظ جميع ملفات PDF للمديرين والوكلاء في:" & vbCrLf & folderPath, vbInformation wsReport.Protect password:="0" Application.ScreenUpdating = True Application.EnableEvents = True End Sub الملف طباعة وظائف محددة.xlsm
-
وعليكم السلام ورخمة الله وبركاته ربما تفصد اخفاء الاعمدة وليس الخذف كما ورد في طلبك الكود يخفى العمود كله فارغ أو كله قيمه تساوي (0 أو 0%) → يخفي العمود بالكامل. الكود في البداية يظهر كل الأعمدة ثم يعيد إخفاء المناسب تم ربط الكود مع امر الفلترة اظافة التسطير لناتج الفلترة هذا خسب فهمى لطلبكم الكود Sub فلترة_اخفاء() Dim wsSrc As Worksheet, wsDst As Worksheet Dim lastRow As Long Dim rng As Range, col As Range, c As Range Dim hideCol As Boolean Dim rngOut As Range Application.ScreenUpdating = False Set wsSrc = ThisWorkbook.Sheets("المجمع") Set wsDst = ThisWorkbook.Sheets("1") lastRow = wsDst.Cells(wsDst.Rows.Count, "A").End(xlUp).Row If lastRow >= 5 Then wsDst.Rows("5:" & lastRow).ClearContents wsDst.Rows("5:" & lastRow).ClearFormats End If wsDst.Columns("A:W").Hidden = False lastRow = wsSrc.Cells(wsSrc.Rows.Count, "E").End(xlUp).Row If lastRow < 2 Then Exit Sub wsSrc.Range("E1:W" & lastRow).AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=wsDst.Range("Criteria"), _ CopyToRange:=wsDst.Range("Extract"), _ Unique:=False lastRow = wsDst.Cells(wsDst.Rows.Count, "A").End(xlUp).Row If lastRow < 5 Then GoTo Done Set rngOut = wsDst.Range("A5:W" & lastRow) With rngOut.Borders .LineStyle = xlContinuous .Color = vbBlack .Weight = xlThin End With rngOut.EntireColumn.Hidden = False For Each col In rngOut.Columns hideCol = True For Each c In col.Cells If Not (isEmpty(c.Value) Or c.Value = 0 Or c.Text = "0%") Then hideCol = False Exit For End If Next c If hideCol Then col.EntireColumn.Hidden = True Next col Done: Application.ScreenUpdating = True End Sub الملف W1.xlsm تحياتي
-
وعليكم السلام ورحمة الله وبركاته تم انشاء كود الطباعة والمعاينة اتمنى ان تجد في الحل طلبك لك وافر الاحترام Sub Print_All_Employees() Dim ws As Worksheet Dim cell As Range Dim rng As Range Set ws = ThisWorkbook.Sheets("إداريين") Set rng = ws.Range("C3:C137") Application.ScreenUpdating = False For Each cell In rng If cell.Value <> "" Then ws.Range("CQ6").Value = cell.Value ws.PageSetup.PrintArea = "CP5:CY47" ws.PrintOut End If Next cell ws.Range("CQ6").Value = rng.Cells(1, 1).Value Application.ScreenUpdating = True MsgBox "تمت طباعة جميع الموظفين بنجاح.", vbInformation End Sub طباعة الكل بضغطة.xlsm
-
طلب مساعدة في معادلة if تقبل العدد من الى
عبدالله بشير عبدالله replied to AMIRBM's topic in منتدى الاكسيل Excel
وفيك بارك الله تم التعديل Private Sub ComboBox1_Change() On Error Resume Next Application.EnableEvents = False Sheets("Sheet2").Range("L8").value = ComboBox1.value TextBox12.value = Sheets("Sheet2").Range("L10").value Application.EnableEvents = True On Error GoTo 0 End Sub Private Sub TextBox12_Change() Static lastValue As Variant On Error Resume Next Application.EnableEvents = False If IsNumeric(Me.TextBox12.value) Then Dim value As Integer value = CInt(Me.TextBox12.value) Dim minValue As Integer, maxValue As Integer, newValue As Integer If value >= 8 Then minValue = 0 maxValue = 40 Else minValue = 0 maxValue = 30 End If Randomize Do newValue = Int((maxValue - minValue + 1) * Rnd()) + minValue Loop While newValue = lastValue Me.TextBox3.value = newValue lastValue = newValue ThisWorkbook.Sheets("Sheet2").Range("L13").value = newValue End If Application.EnableEvents = True On Error GoTo 0 End Sub if أوفيسنا 3.xlsb -
طلب مساعدة في معادلة if تقبل العدد من الى
عبدالله بشير عبدالله replied to AMIRBM's topic in منتدى الاكسيل Excel
الاجابة في المشاركة التالية