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

أ / محمد صالح

أوفيسنا
  • Posts

    4,444
  • تاريخ الانضمام

  • Days Won

    192

كل منشورات العضو أ / محمد صالح

  1. يمكنك استعمال هذا الكود في حدث الضغط على زر إدخال Private Sub CommandButton1_Click() Sheets(1).Activate lrow = Range("e" & Rows.Count).End(xlUp).Row + 1 If WorksheetFunction.CountIfs(Range("D2:D" & lrow), ComboBox1.Value, Range("E2:E" & lrow), ComboBox2.Value) = 0 Then Range("d" & lrow).Value = ComboBox1.Value Range("E" & lrow).Value = ComboBox2.Value ComboBox1.Value = "" ComboBox2.Value = "" Else MsgBox "إدخال مكرر" End If End Sub بالتوفيق
  2. عليكم السلام إذا قمت بتسجيل ماكرو ستحصل على الكود وبقليل من التعديلات تجعل الكود متغيرا في صف الننهاية الذي رمزه LR هذا هو الكود Sub girlsfirst() Dim sh As Worksheet, lr As Long Set sh = ActiveWorkbook.Worksheets("sheet") lr = sh.Cells(Rows.Count, 3).End(3).Row With sh.Sort .SortFields.Clear .SortFields.Add2 Key:=Range("L10"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SortFields.Add2 Key:=Range("C10"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Range("B7:X" & lr) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub Sub boysfirst() Dim sh As Worksheet, lr As Long Set sh = ActiveWorkbook.Worksheets("sheet") lr = sh.Cells(Rows.Count, 3).End(3).Row With sh.Sort .SortFields.Clear .SortFields.Add2 Key:=Range("L10"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal .SortFields.Add2 Key:=Range("C10"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Range("B7:X" & lr) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub بالتوفيق
  3. إحدى الفوائد اختصار المعادلات وسهولة تسمية النطاق باسم يعبر عن مضمونها مثلا قائمة الأصناف موجودة في sheet1!a5:a40 فيمكن تسمية هذا النطاق products وبدلا من كتابتة هذا النطاق في المعادلة نكتب كلمة products بالتوفيق
  4. كما أخبرتك سابقا نطاقات مسماة
  5. ربما تكون نطاقات مسماة named ranges الموجودة في تبويب الصيغ formulas ضمن إدارة الأسماء name manager لو أرفقت الملف الذي به هذه المعادلة ربما نصل لليقين بالتوفيق
  6. جميعا بإذن الله
  7. المتاح أن تضيف النص الذي في textbox قبل التصدير pdf لكن العكس يلزمك برامج تحرير بي دي اف وتدعم العمل عليها من خلال vba أو من خلال سطر الأوامر cmd بالتوفيق
  8. آمين ولك بمثل ما دعوت وزيادة
  9. أخي الكريم يفضل ذكر كل التفاصيل المتاحة لديك حتي يتم الوصول للحل المطلوب بمنتهى السهولة وعلى مرة واحدة لكن تجزئة المعطيات تؤدي إلى حلول غير مطلوبة حسب فهمي للمطلوب أنك تريد * وضع تسلسل يبدأ من الصف الثاني * إلى آخر صف مكتوب فيه في العمود b وليس إلى 10 * والكود يتم تطبيقه من الأكسس على كائن الشيت النشط يمكنك استعمال هذا الكود Dim I As Integer For I = 2 To .range("b" & .rows.count).end(3).row .Range("A" & I).Value = I-1 Next I بالتوفيق
  10. يمكنك استعمال هذا التعديل Dim I As Integer For I = 2 To 11 Range("A" & I).Value = I-1 Next I بالتوفيق
  11. يمكنك استعمال هذا الكود في حدث عند تغيير التحديد Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 5 Or Target.Column = 7 Then Range("ad2").Value = Target.Value End If End Sub وهذا ملفك بعد إضافة الكود وتغيير الامتداد بالتوفيق Select.xlsb
  12. عليكم السلام ورحمة الله وبركاته * بالنسبة للمطلوب الأول لا يمكن استخدام كالندر داخل الخلايا ممكن في يوزرفورم ولكن يمكنك جعل تنسيق خلية التاريخ dddd dd mmmm yyyy سيظهر اسم اليوم واسم الشهر مع التاريخ ويمكنك الاستغناء عن عمود اليوم * وبالنسبة لكتابة جميع تواريخ الشهر يمكنك في الخلية B5 كتابة المعادلة التالية =B4+1 مع نسخ المعادلة لأسفل * وبالنسبة لموضوع منع التكرار يمكن استعمال التنسيق الشرطي وتلوين الصفين المكررين وهذا ملفك بعد تنفيذ مقترحاتي بالتوفيق برنامج حجز قاعات 2021.xlsx
  13. الشكر لله الذي هدانا لهذا
  14. للأسف أخي الكريم طريقتك تقارن بين قيمة الخلية والخلية b4 فقط ولا تقارن بين الخلية في العمود A وخلية العمود b التي تجاورها
  15. بالنسبة لكود معاينة الطباعة ActiveSheet.PrintPreview وبالنسبة لكود طباعة الشهادات دفعة واحدة فهذا يتوقف على طريقة جلبك للبيانات من شيت البيانات الأساسية وبعد فحص ملفك لم أجد أي طريقة محددة لجلب بيانات الشهادات لذا ربما تفيدك هذه الموضوعات في معرفة طرق جلب البيانات حسب المسلسل أو رقم الجلوس أو الاسم https://www.officena.net/ib/search/?q=طباعة الشهادات&quick=1&type=forums_topic&nodes=135&search_and_or=and بالتوفيق
  16. يمكنك استعمال هذه المعادلة في الخلية D6 مع نسخ المعادلة يمينا لنهاية الشهر =IFERROR(IF(OR(COUNT($C5:C5)<1,D5-MAX($C5:C5)<0),"",D5-MAX($C5:C5)),"") ويمكن نسخ الخلية D6 إلى D8 لنسخ المعادلة وهذا ملفك بعد التعديل بالتوفيق كشف الفواتير للمركبات - بوقصي 9-2021 تجارب.xlsm
  17. هذا المطلوب لا يتم بالمعادلات لابد من تدخل جراحي (vba) يمكنك استعمال هذا الكود في حدث عند التغيير Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 3 And Target.Column >= 1 And Target.Column <= 3 And Evaluate("=counta(a3:d3)") = 4 Then lr1 = Cells(Rows.Count, 1).End(3).Row + 1 lr1 = IIf(lr1 < 4, 4, lr1) lr2 = Cells(Rows.Count, 12).End(3).Row + 1 Range("a" & lr1 & ":d" & lr1).Value = Range("a3:d3").Value Range("l" & lr2 & ":o" & lr2).Value = Range("a3:d3").Value Range("a3:c3").ClearContents End If End Sub وهذا ملفك بعد إضافة الكود وتغيير الامتداد 555.xlsb
  18. عليكم السلام و رحمة الله وبركاته الجزء الثاني من المطلوب غير منطقي حيث سيظل الكود في حلقة من الأحداث لا تنتهي فمثلا تم تغيير الدور الاول إلى الثالث فيفترض من الكود أن يبحث عن موظف الدور الثالث ويضعه في الدور الأول وحينها يتم استدعاء كود حدث التغيير لأن خلية الدور الثالث تغيرت في العمود E وساعتها يبدأ في البحث وهكدا والحل في هذه المشكلة كتابة التغيير المطلوب في العمود G مثلا بالكود ويتم كتابته مرة أخرى يدويا في العمود E مع تعديل حدث التغيير إلى هذا الكود Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("e8:e100")) Is Nothing Then Exit Sub lr = Range("h" & Rows.Count).End(xlUp).Row + 1 Cells(lr, "h") = Target.Offset(0, -2) Cells(lr, "i") = [k1] Cells(lr, "j") = Target.Value lr1 = Range("e" & Rows.Count).End(xlUp).Row If Target.Offset(0, 2) = "" Then For n = 8 To lr1 If n <> Target.Row And Cells(n, 5) = Target.Value And Cells(n, 4) = Target.Offset(0, -1) And Cells(n, 6) <> "راحة" Then Cells(n, 7) = [k1] Next n Else Target.Offset(0, 2) = "" End If End Sub بالتوفيق
  19. يمكنك استعمال هذه المعادلة في التنسيق الشرطي =AND(A4<>"",A4<B4) وتقوم باختيار التعبئة أو اللون المرغوب ويتم تطبيقها على. العمود A مثلا أو أي خلايا منه وإذا أردت تمييز الخلايا التي تساوي المتوقع أو أكبر يمكن استعمال هذه المعادلة =AND(A4<>"",A4>=B4) بالتوفيق
  20. لإضافة دالة معرفة udf نفتح نافذة محرر vba بالضغط alt+f11 من قائمة insert نختار module نلصق هذا الكود واستخدامها في اكسل مثل استخدام ifs ولكن نكتب masifs بالتوفيق
  21. الأسهل تصدير الملف بصيغة xlsx أو csv من خادم قاعدة البيانات ويمكن استعمال هذه الصفحة لتحويل الملف إلى اكسل https://www.convertcsv.com/sql-to-csv.htm بالتوفيق
  22. يمكنك استعمال هذه الدالة المعرفة Public Function MasIfs(ParamArray args() As Variant) As Variant Dim i As Integer Do Until CBool(args(i)) Or (i >= UBound(args)) i = i + 2 Loop If i < UBound(args) Then MasIfs = args(i + 1) End Function بالتوفيق
  23. الأفضل من وجهة النظر البرمجية أن تبقى هذه صفحة بيانات وتنشئ صفحة جديدة يتم عرض نتائج أول 26 صفا ثم ثاني 26 صفا بكتابة رقم الصفحة في خلية ومعادلات البحث تجلب لك النتائج مثل هذا الموضوع بالتوفيق
×
×
  • اضف...

Important Information