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

محمد طاهر عرفه

إدارة الموقع
  • Posts

    8,726
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    37

كل منشورات العضو محمد طاهر عرفه

  1. السلام عليكم أولا أشكرك على اقتراحك و تفاعلك و احب ان اوضح ان النسخة الحالية من المنتدى متوافقة تماما م الهاتف اي يمكن التفاعل والرد ، بل و الادارة من خلال الهاتف يمكن فتح الموقع من اي متصفح على الهاتف و حفظ الصفحة كايقونة مستقلة من جوجل اضغط على الثلاث نقاط اعلي يمين الصفحة فى الاندرويد ثم Add to homescreem و من الفايرفوكس Page Add Page Shorcut فتظهر الايفونة كانها تطبيق فى الموبايل و تفتح المنتدى مباشرة
  2. السلام عليكم يرجى مراجعة هذه المواضيع خفيض-مستوى-أمان-الماكرو-معدل حل-مشكلة-تفعيل-الماكرو-عند-فتح-برنامج-الاكسيل مستوى-أمان-الماكرو و هناك العديد غيرها ، و اذكر اني قد اعددت مثالا مع بداية المنتدي فى عام 2003 و سابحث عنه ..باذن الله و هذا هو ( تم تعديل المشاركة لاضافته) التحكم-فى-مستوي-أمان-الماكروهات و هذا الموضوع به طريقتان للتعامل مع الامر لا ادري ان كان مازال ما به ساريا الي الان فانه فقط من 15 سنة للرد الاول و ثماني سنوات للطريفة الثانية المطروحة فى نفس الموضوع و هناك ايضا تعقيب على الموضوع هنا
  3. صراحة ليس لدي سجل بالتوافق للنسخ المختلفة و لكن مع نسخ الاوفيس القديمة يمكن استخدام الاصدرات الاقدم من الملف عند التجميل يوجد فى المكتبة 5 اصدارات من البرنامج مرفق اولها لانه اقدم الاصدارات ليعمل مع النسخ المختلفة و لكنه قبل اضافة النموذج و المزيد من الخيارات و هو يفي بالمطلوب اذا عمل معك DataCollectorWithSheet.xlsm قم بكتابة المسار فى الخلية J7 و قم بكتابة المجال المطلوب استخراجه فى الخلية J11 ثم اضغط على زر استخراج البيانات و يتم الاستخارج من ورقة العمل الاولي من كل ملف اما اذا اردت تحديد ورقة عمل بعينها فاكتب اسمها فى الخلية J18 مع ملاجظة انه مع تقدم الاصدارات تم اضافة خصائص مختلفة جديدة كما هو فى وصف الملف بالمكتبة
  4. و لتسجيل القيم فى خلايا مستقلة نستبدل الجزء الاخير من الكود بالتالي For i = 1 To 3 For j = 1 To 3 For k = 1 To 3 ActiveCell.Value = mymatrix(1, i) ActiveCell.Offset(0, 1).Value = mymatrix(2, j) ActiveCell.Offset(0, 2).Value = mymatrix(3, k) ActiveCell.Offset(1, 0).Activate Next k Next j Next i مرفق الملف به الكودان Conmbinations.xlsm
  5. شغل الكود التالي للحصول على كافة الاحتمالات الممكنة للدمج بين القيم Sub GetCombinations() Dim i As Long, j As Long, k As Long Dim mymatrix(3, 3) As String mymatrix(1, 1) = "A" mymatrix(1, 2) = "B" mymatrix(1, 3) = "C" mymatrix(2, 1) = "1" mymatrix(2, 2) = "2" mymatrix(2, 3) = "3" mymatrix(3, 1) = "ZZ" mymatrix(3, 2) = "XX" mymatrix(3, 3) = "VV" For i = 1 To 3 For j = 1 To 3 For k = 1 To 3 ActiveCell.Value = mymatrix(1, i) & mymatrix(2, j) & mymatrix(3, k) ActiveCell.Offset(1, 0).Select Next k Next j Next i End Sub
  6. السلام عليكم عذا لم انتبه لردك مبدأيا لتصدير كافة اوراق العمل و ليس الاولي فقط الكود بالفعل يحتاج سطر اضافي و هو السطر الثاني التالي هنا ، و اضفه بعد السطر الاول الموضح و باذن الله يتم حفظ كافة اوراق العمل دون تكرار For Each wsh In wbk.Worksheets wsh.Activate بالنسبة لاختيار تصدير ال pdf ام لا يمكن عمل ذلك عن طريق نموذج او رسالة تجيب عليها بنعم او لا و يمكنك عمل نسخة من الكود للاستبدال فقط دون تصدير الpdf وذلك بحذف الحزء التالي ShFile = strPath & Left(wbk.Name, Len(wbk.Name) - 4) & Sheetcounter & "-" & wsh.Name ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ShFile _ , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=False او تفعيل رسالة للسؤال هل تريد الطباعة ام لا كما يلي كابسط الطرق اولا عرف المتغير PrintOrnot مع تعريفات المتغيرات فى بداية الكود ثم السؤال هل تريد الطباعة ام لا Dim PrintOrnot As String ' to choose print pdf or not PrintOrnot = UCase(InputBox("Print PDFs ??? ", "Do you want to print ?", "yes")) ثم اضف شرط قبل الطباعة بناء على قيمة المتغير السابق و ستم الطباعة فقط فى حال الاجابة على السؤال السابق ب yes If PrintOrnot = "YES" Then ShFile = strPath & Left(wbk.Name, Len(wbk.Name) - 4) & Sheetcounter & "-" & wsh.Name ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ShFile _ , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=False End If مرفق الملف بعد التعديل Replacer -5.xlsm
  7. السلام عليكم الملف لدي يعمل بطريقة مختلفة و لا يتم الانتقال راسيا و انما يتنقل للخلية المجاورة و يفتحها للاختيار ربما الفرق فى هذا الخيار من خيارات الاكسيل المتقدمة After Pressing Enter Move Selection و الحل البديل غير قيمة ال offset في الكود ActiveCell.Offset(-1, 1).Activate علي سبيل المثال تعني الانتقال خلية واحدة للاعلي ثم خلية لليمين حيث ان الاعدادات لدي عند ضعط ادخال يتم الانتقال الي خلية واحدة الي الاسفل لذا اعود خطوة واحدة للاعلى (-1) ثم اخري لليمين (1) و يمكنك تعديل الارقام بحسب الاعدادت لديك
  8. السلام عليكم الترقبات نوعان نوع آلي يتم دون تدخل بحسب عدد المشاركات ايا كان محتواها ، اي انه يعبر عن التواجد و درجة التفاعل ، و الترقية التالي فى هذا المسار عند 100 مشاركة الي عضو فضي ثم ذهبي ثم ماسي و النوع الاخر بالترشيح بناء على فعالية التفاعل مع أسئلة الاخرين بتقديم حلول او شرح و هذا المسار و الترقية فيه الي عضو متميز ثم خبير معتمد
  9. لا ادري ان ناسبك هذا الحل ام لا مع ملاحظة أنك ستحتاج لتحديث معادلة الصفيف لتحديث البيانات قبل الحصول على النتائج المحدثة Boo22222222k1.xls
  10. اعتقد أن فهم الكود باتحاه عكسي دون معرفة اصل العمل سيكون أمرا صعبا و يستغرق جهد كبير ( على الاقل بالنسبة لي) أتمني ان يستطيع احد الاخوة ممن لديه خلفية عن موضوع الملف مساعدتك او اذا مطلوب تعديل معين سيكون الامر اسهل على الجميع مثلا عند الغط على زر --- اريد اضافة الكود الخاص ب ---- و الذي يعمل من زر -----
  11. هذا هو الكود Private Sub UserForm_Initialize() Me.ListBox1.List = Range("A2", Cells(Rows.Count, 1).End(xlUp)).Value End Sub Private Sub FilterBasedonText_Click() Call TextBox1_AfterUpdate End Sub Private Sub TextBox1_AfterUpdate() Dim StrSearch As String Dim MyRowNo As Long StrSearch = "*" & UCase(Me.TextBox1.Text) & "*" With Me.ListBox1 For MyRowNo = .ListCount - 1 To 0 Step -1 If Not UCase(.List(MyRowNo)) Like StrSearch Then .RemoveItem (MyRowNo) End If Next End With End Sub Private Sub ShowAll_Click() Call UserForm_Initialize End Sub Private Sub RemoveSelected_Click() Me.ListBox1.RemoveItem (Me.ListBox1.Selected = True) End Sub و قد واجهتنى فيه مشكلة لفترة حيث كنت اسخدم فى البداية الكود التالي لتعبئة القائمة Private Sub UserForm_Initialize() Me.ListBox1.RowSource = "sheet1!a1:a" & Sheets("sheet1").Range("a" & Rows.Count).End(xlUp).Row End Sub ثم تبين أن أمر RemoveItem لا يعمل عند وجود بيانات فى Rowsource الخاص يالقائمة فتم الاستبدال بالكود الاول مرفق الملف اكتب النص المطلوب التصفية على أساسه فى المربع الأصفر ثم اضغط Enter او اضغط على زر Filter و لاظهار كافة البيانات اضغط Show All FilterListbox.xlsm
  12. راجع هذا الموضوع
  13. السلام عليكم تم تغيير مسمى عضو فعال الي عضو متميز و سيتم ترقية عدد من الأخوة الي هذه الدرجة قريبا باذن الله و يليها مباشرة بالترشيح و الاختيار يناء على المشاركة خبير معتمد و هما درجتي المسار الاحترافي فقط اما المسار الاداري فلا يوجد به حاليا الا مجموعة فريق الموقع ، و من يعتذر او يغيب من أعضاؤها كما هو معلن فى قواعد الترقبات ينقل مؤقتا الي مجموعة لوحة الشرف لاتاحة الفرصة لاسناد المهام الادارية لبديل لحين عودته و المسار الثالث و هو مسار عدد المشاركات فهو مسار ترقية آلي بناء على عدد المشاركات فقط و لا ترشيح فيه ، و فيه عضويات فضية و ذهبية و بلاتينية بناء على معيار واحد و هو عدد المشاركات و المعبر عن الاستمرارية و التفاعل
  14. راجع هذه المواضيع نفس الفكرة مع قائمة منسدلة و يمكن الوضول للمزيد من خلال خاصية البحث
  15. هل تريد الحفظ و التخلص من المرسالة ام عدم الحفظ و التخلص من الرسالة من الافضل ارفاق الملف للتجرية
  16. و ان كنت لا افهم السبب جرب الكود التالي Private Sub Worksheet_Change(ByVal Target As Range) If ActiveCell.Column = 1 Then If ActiveCell.Value < 20 Then MsgBox "you must choose an item" ActiveCell.Offset(-1, 1).Activate SendKeys "%{DOWN}", True End If End If If ActiveCell.Column = 2 Then If ActiveCell.Offset(0, -1).Value < 20 Then If ActiveCell.Value = "" Then MsgBox "you must choose an item" SendKeys "%{DOWN}", True End If End If End If End Sub مرفق الملف test sheet (2).xlsm
  17. يمكن استخدام معادلة IF لتحقيق المطلوب اذا فهمت ما تريد اذا اكبر أو يساوي من 20 لا ينتج شيء و اذا اكبر من 15 Large اكثر من 10 Medium اكثر من 5 small و طبعا يمكنك تعديل القيم كما تشاء =IF(D13>=20,"",IF(D13>=15,"Large",IF(D13>=10,"Medium",IF(D13>=5,"Small",)))) مرفق الملف test sheet.xlsx
  18. من مجرر الأكواد Tools Options Editor Format و اختار اي خط عربي
  19. و طبعا True للحفط عند الاغلاق False لعدم الحفظ
  20. لتشغيل الكود المسمي pdf فى ملفك ( اسم الاجراء) اكتب السطر التالي فى الاجراء الاخر المطلوب ضمه اليه Call pdf
  21. أجب ان اضيف انه في حالة الرغبة في غلق الملف دون غلق تطبيق الاكسيل نفسه ، في حال اذا كان اكثر من الملف مفتوح مثلا فيكتفي بالسطر الثاني فقط دون الأول Private Sub closeme() ActiveWorkbook.Close True End Sub
  22. يمكن استخدام الدالة countif هكذا =COUNTIF(E8:M8,"غ") كما فى المثال المرفق غياب.xlsx سيتم الفصل فى موضوع مستقل
  23. يرجي اضافة وسيلة الاتصال بك بحسب قواعد المشاركة في هذا القسم
  24. السلام عليكم الخاصية تضاف تلقائيا بعد الترقية للدرجة التالية و ذلك حتى يكون العضو قد الم بنظام المنتدى ، و منه ان التفاعل و المتابعة غير محبذ على الخاص و انما يجب التفاعل على العام لتعم الفائدة
  25. السلام عليكم اذا كان الهدف هو التبليغ عن مخالقة فهناك زر تقرير اما اذا كان الغرض التنبيه للرد فى موضوع معين او الاستفسار على الخاص فهذا غير متاح و مع زيادة نشاط الهضو تتم الترقية و تتاح خاصية المراسلة على الخاص
×
×
  • اضف...

Important Information