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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    151

Community Answers

  1. أ / محمد صالح's post in تنسيق اتجاه التاريخ مع النص بنفس الخلية بالاكسل was marked as the answer   
    أبسط حل
    أن تعكس التاريخ بكتابة العام ثم الشهر ثم اليوم
    وإذا كنت تأخذ التاريخ من خلية أخرى
    فيمكن استعمال هذه المعادلة
    ="كتابنا ذي الرقم (1254) في "&TEXT(C4,"yyyy/mm/dd") على اعتبار أن خلية التاريخ هي C4
    بالتوفيق
  2. أ / محمد صالح's post in ماذا بعد تغيير جوجل الكودات was marked as the answer   
    أخي الكريم
    الحمد لله لي السبق في هذا المجال الترجمة بالكود في vba
    وغيرت الكود مرة في 2017 ومرة في 2019 ولم أهتم بعدها بهذه الطريقة
    وبالنسبة لملفكم
    بالنسبة للرابط المستععمل قي الكود فهو خاص بنسخة الموبايل
    https://translate.google.com/m?sl=auto&tl=ar&hl=en-US&q=Good+morning
    ولا يوجد به زر للنطق والكود يستعمل زر له كلاس
    .Document.QuerySelector(".VfPpkd-Bz112c-kBDsod-OWXEXe-IT5dJd").Click وهو غير موجود
    وبالنسبة لطلب صفحة الترجمة الكاملة
    فالنطق يكون غير مدعوم في متصفح انترنت اكسبلورر المستخدم في الكود
    Voice output isn't supported on this browser
    خلاصة الكلام: أن هذه الطريقة لنطق النص أصبحت غير متاحة
    وكنت قد أوضحت أنه يوجد طريقة أخرى أستعملها في موقعي الشخصي mr-mas.com
    ولكن لم أحولها إلى vba لانشغالي هذه الفترة ولاني مستاء جدا من نشر أكوادي باسم غيري فلا يوجد في مصر والعالم العربي ما يسمى بالأمانة العلمية
    ربما لاحقا أحول هذه الطريقة إلى vba
    بالتوفيق
  3. أ / محمد صالح's post in ماذا بعد تغيير جوجل الكودات was marked as the answer   
    أخي الكريم
    الحمد لله لي السبق في هذا المجال الترجمة بالكود في vba
    وغيرت الكود مرة في 2017 ومرة في 2019 ولم أهتم بعدها بهذه الطريقة
    وبالنسبة لملفكم
    بالنسبة للرابط المستععمل قي الكود فهو خاص بنسخة الموبايل
    https://translate.google.com/m?sl=auto&tl=ar&hl=en-US&q=Good+morning
    ولا يوجد به زر للنطق والكود يستعمل زر له كلاس
    .Document.QuerySelector(".VfPpkd-Bz112c-kBDsod-OWXEXe-IT5dJd").Click وهو غير موجود
    وبالنسبة لطلب صفحة الترجمة الكاملة
    فالنطق يكون غير مدعوم في متصفح انترنت اكسبلورر المستخدم في الكود
    Voice output isn't supported on this browser
    خلاصة الكلام: أن هذه الطريقة لنطق النص أصبحت غير متاحة
    وكنت قد أوضحت أنه يوجد طريقة أخرى أستعملها في موقعي الشخصي mr-mas.com
    ولكن لم أحولها إلى vba لانشغالي هذه الفترة ولاني مستاء جدا من نشر أكوادي باسم غيري فلا يوجد في مصر والعالم العربي ما يسمى بالأمانة العلمية
    ربما لاحقا أحول هذه الطريقة إلى vba
    بالتوفيق
  4. أ / محمد صالح's post in ماذا بعد تغيير جوجل الكودات was marked as the answer   
    أخي الكريم
    الحمد لله لي السبق في هذا المجال الترجمة بالكود في vba
    وغيرت الكود مرة في 2017 ومرة في 2019 ولم أهتم بعدها بهذه الطريقة
    وبالنسبة لملفكم
    بالنسبة للرابط المستععمل قي الكود فهو خاص بنسخة الموبايل
    https://translate.google.com/m?sl=auto&tl=ar&hl=en-US&q=Good+morning
    ولا يوجد به زر للنطق والكود يستعمل زر له كلاس
    .Document.QuerySelector(".VfPpkd-Bz112c-kBDsod-OWXEXe-IT5dJd").Click وهو غير موجود
    وبالنسبة لطلب صفحة الترجمة الكاملة
    فالنطق يكون غير مدعوم في متصفح انترنت اكسبلورر المستخدم في الكود
    Voice output isn't supported on this browser
    خلاصة الكلام: أن هذه الطريقة لنطق النص أصبحت غير متاحة
    وكنت قد أوضحت أنه يوجد طريقة أخرى أستعملها في موقعي الشخصي mr-mas.com
    ولكن لم أحولها إلى vba لانشغالي هذه الفترة ولاني مستاء جدا من نشر أكوادي باسم غيري فلا يوجد في مصر والعالم العربي ما يسمى بالأمانة العلمية
    ربما لاحقا أحول هذه الطريقة إلى vba
    بالتوفيق
  5. أ / محمد صالح's post in مشكلة اللغه العربية فى ملف الاكسيل الذي تم تصديره من جهاز البصمه was marked as the answer   
    يمكنك استعمال هذه الدالة لتحويل النص العربي من رموز غريبة إلى utf8
    وذلك بإضافة هذا الكود في موديول جديد في شاشة الفيجوال بيسك للتطبيقات vba
    بالضغط على alt+f11 ثم من قائمة insert نختار module ثم نلصق هذا الكود
    Function masAr2Utf(inputStr As String) As String Dim n As Integer, i As Integer, inBytes() As Byte, sUnicode As String n = Len(inputStr) ReDim inBytes(n + 1) For i = 1 To n inBytes(i) = AscB(Mid(inputStr, i, 1)) Next sUnicode = StrConv(inBytes, vbUnicode, &H401) iPos = InStr(sUnicode, Chr(0)) If iPos > 0 Then sUnicode = Mid(sUnicode, iPos + 1) masAr2Utf = sUnicode End Function وطريقة استدعائها في الشيت
    نكتب في الخلية المراد ظهور النص العربي بها
    =masAr2Utf(B2) بالتوفيق
  6. أ / محمد صالح's post in الاستغناء عن زر بقائمة منسدلة was marked as the answer   
    عليكم السلام ورحمة الله وبركاته
    يمكنك استعمال هذا الكود في حدث عند التغيير
    Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$G$2" Then Call ter End If End Sub كلك يمين على اسم الشيت ثم view code ثم لصق في الناحية اليمنى
    بالتوفيق
  7. أ / محمد صالح's post in طلب كود عند تشغيله على اى خلية يكتب قيمة الخلية السابقة لها مضروبة فى عدد محدد was marked as the answer   
    يمكنك استعمال دالة offset
    Sub offsetplus() ActiveCell.Value = ActiveCell.Offset(0, -3).Value + 3 End Sub مع ملاحظة 0 تعني في نفس الصف
    رقم -3 تعني الخلية الثالثة السابقة
    رقم +3 تعني الرقم الذي يتم إضافته
    بالتوفيق
  8. أ / محمد صالح's post in كود لفتح صفحة جديدة بإسم الفندق تلقائياً كلما تم ادخال اسم فندق جديد was marked as the answer   
    بعد إذن حبيبنا @omar elhosseini
    يمكنك استعمال هذه الأكواد في صفحة Rooming list
    كلك يمين ثم view code ثم تلصق هذا الكود
    Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Or Target.Row <= 2 Then Exit Sub If Target.Column = 3 And Target.Value <> "" And Not (sheetExists(Target.Value)) Then Call newsh(Target.Value) End If End Sub Function sheetExists(sheetToFind As String) As Boolean sheetExists = False For Each Sheet In Worksheets If sheetToFind = Sheet.Name Then sheetExists = True Exit Function End If Next Sheet End Function Sub newsh(newname As String) OptimizeVBA 1 Sheets("Aqua Park HRG").Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = newname ActiveSheet.Range("K2") = newname OptimizeVBA 0 End Sub Sub OptimizeVBA(isOn As Boolean) Application.Calculation = IIf(isOn, xlCalculationManual, xlCalculationAutomatic) Application.EnableEvents = Not (isOn) Application.ScreenUpdating = Not (isOn) ActiveSheet.DisplayPageBreaks = Not (isOn) End Sub وبه من كنوز مكتبتي الخاصة الكثير من التحف
    التأكد من وجود اسم الشيت
    تحسين سرعة الأكواد في vba
    بالتوفيق
  9. أ / محمد صالح's post in مشكلة فى زر الاستدعاء بعد استعمال زر الحذف was marked as the answer   
    عليكم السلام ورحمة الله وبركاته
    تفضل أخي الكريم
    تم الاستغناء عن زر استعلام حيث يتم الاستعلام بمجرد الاختيار من القائمة
    وتم اختصار كود زر الحذف بعد تصويبه حيث كان يعتمد على الخلية H5 والصواب J5
    بالتوفيق
    نموذج شئون عاملين أزهر.xlsm
  10. أ / محمد صالح's post in مساعدة محتاج وضع التاريخ اذا تغير قيمة الخلية was marked as the answer   
    لا أعتقد أن هذا يتم بمعادلة
    يمكنك استعمال هذا الكود في حدث تغيير الشيت
    Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column > 1 And Target.Column < 6 Then Range("f" & Target.Row) = Date End Sub كلك يمين على اسم الشيت ثم view code
    ثم لصق هذا الكود في الناحية اليمنى
    مع حفظ الملف بامتداد يدعم الأكواد مثل xls أو xlsb أو xlsm
    بالتوفيق
  11. أ / محمد صالح's post in مساعدة محتاج وضع التاريخ اذا تغير قيمة الخلية was marked as the answer   
    لا أعتقد أن هذا يتم بمعادلة
    يمكنك استعمال هذا الكود في حدث تغيير الشيت
    Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column > 1 And Target.Column < 6 Then Range("f" & Target.Row) = Date End Sub كلك يمين على اسم الشيت ثم view code
    ثم لصق هذا الكود في الناحية اليمنى
    مع حفظ الملف بامتداد يدعم الأكواد مثل xls أو xlsb أو xlsm
    بالتوفيق
  12. أ / محمد صالح's post in مشكلة عند حذف صف تختفي نتيجة البحث في صفحات البحث was marked as the answer   
    مشكلة عدم ظهور أحد في صفحة كل معلم على حدى
    يرجع إلى عدم دقة معادلة الفلتر
    جرب استعمال هذه المعادلة في الخلية D9
    =IFERROR(INDEX(sheet2!B$4:B$300,SMALL(IF(sheet2!$AK$4:$AK$300=$J$1,ROW(sheet2!B$4:B$300)),ROW($D1))),"") ويمكنك سحبها يسارا ولأسفل
    مع مراعاة بداية ونهاية النطاقات في مثل هذه المعادلات
    ويمكن تحويلها إلى كود بأكثر من طريقة
    أسهلها أن تضع المعادلة في النطاق بالكود
    مثلا
    range("d9:d28").formulaarray = "=IFERROR(INDEX(sheet2!B$4:B$300,SMALL(IF(sheet2!$AK$4:$AK$300=$J$1,ROW(sheet2!B$4:B$300)),ROW()-8)),"""")" ثم تحول ناتج المعادلة إلى قيم بهذا الكود
    range("d9:d28").value = range("d9:d28").value وهكذا مع كل نطاق له معادلة مختلفة
     
    وأقترح أن تربط ذلك بتغيير الخلية J1
    Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$J$1" Then Range("d9:d28").FormulaArray = "=IFERROR(INDEX(sheet2!B$4:B$300,SMALL(IF(sheet2!$AK$4:$AK$300=$J$1,ROW(sheet2!B$4:B$300)),ROW()-8)),"""")" Range("d9:d28").Value = Range("d9:d28").Value MsgBox "Done by mr-mas.com" End If End Sub مع تكرار السطرين الثالث والرابع مع كل نطاق له معادلة محتلفة
    رغم أني لا أميل أبدا إلى موضوع تحويل المعادلات إلى أكواد فهذا يستهلك موارد الجهاز  فيما لا يفيد المستخدم
    ولا يحمي المعادلات
    بالتوفيق
  13. أ / محمد صالح's post in اريد كود بحيث لو تم النسخ واللصق لا يمسح تنسيق الملف was marked as the answer   
    أقترح تنفيذ ذلك يدويا وليس بالكود
    عن طريق عمل لصق كقيم paste as values بدلا من لصق paste 
    ورمزها (123) في القائمة المختصرة للخلية والتي تظهر بعد عمل كلك يمين عليها

    وإذا كنت حريصا على استخدام الكود فيمكنك وضع هذا الاجراء في موديول جديد وربطه بزر وليكن اسمه لصق
    Sub pst Selection.PasteSpecial Paste:=xlPasteValues End Sub وهو للصق ما تم نسخه في الخلية المحددة
    ولاستخدام هذا الاجراء عند الضغط على CTRL+V يمكن وضع هذا الكود في حدث المصنف ThisWorkbook
    Private Sub Workbook_Activate() Application.OnKey "^v", "pst" End Sub Private Sub Workbook_Deactivate() Application.OnKey "^v" End Sub بهذه الطريقة تحافظ على تنسيق الملف الذي يتم اللصق فيه 
    عند استخدام الزر المرتبط بالكود أو اللصق باستخدام ctrl+v
    بالتوفيق
  14. أ / محمد صالح's post in كود تحويل درجات طلاب الى تقادير وطبع النتائج was marked as the answer   
    هذا ملف يحتوي على تصميم شكل النتيجة فقط
    أين محاولاتك للوصول للمطلوب؟ وما المشكلة التب واجهتك في تنفيذ مطلوبك؟
    أم أنك تريد الحصول على برنامج جاهز لهذا الغرض؟؟؟
     
  15. أ / محمد صالح's post in عدم ظهور بيانات الوزن وبيانات متوسط من الليست بوكس الى التكست بوكس الخاص بهم was marked as the answer   
    حسب فهمي للمطلوب يمكن تغيير إجراء تحميل القائمة إلى
    Sub loadlistbox() Set ws = ThisWorkbook.Sheets("SoldFeedbags") Set rData = ws.Range("A1").CurrentRegion irow = Application.WorksheetFunction.CountA(ws.Range("A:A")) If irow = 1 Then irow = 2 Me.TextBox8.Value = Evaluate("sum(SoldFeedbags!e2:e" & irow & ")") Me.TextBox9.Value = Evaluate("sum(SoldFeedbags!f2:f" & irow & ")") Me.TextBox10.Value = Evaluate("sum(SoldFeedbags!g2:g" & irow & ")") With Me.ListBox1 .RowSource = "SoldFeedbags!A2:I2" .RowSource = "SoldFeedbags!A2:I" & irow .ColumnCount = rData.Columns.Count .ColumnHeads = True .ColumnWidths = "60,70,70,70,70,60,70,60,70" End With End Sub بالتوفيق
  16. أ / محمد صالح's post in منع التكرار was marked as the answer   
    ممكن التنسيق الشرطي
    يلون الخلايا المكررة
    وبعدها يحذف المستخدم هذا التكرار
  17. أ / محمد صالح's post in محتاج دالة تبحث عن نص معين (موجود أو غير موجود ) في جدول ( يحتوي علي خلايا فيها جمل شرطية ) was marked as the answer   
    يمكنك استعمال خاصية البحث المضمنة داخل الاكسل
    بالضغط على CTRL+F
  18. أ / محمد صالح's post in طلب نصيحة بخصوص ملف لحساب تسديد الديون was marked as the answer   
    أقترح عليك عمل شيتين للبيانات وشيت للتقرير
    الأول للدائنين وبه:
    الرقم والاسم المبلغ وتاريخ الاقتراض وأي ملاحظات
    والثاني للتسديدات وبه:
    رقم الدائن المبلغ المسدد تاريخ التسديد المستلم وأي ملاحظات أخرى
    والثالث لعرض التقرير الخاص بأحد الدائنين بدلالة رقم الدائن
    وتستعمل به معادلات البحث
    بالتوفيق
  19. أ / محمد صالح's post in الفصل بين التاريخ والنص الغير منظم was marked as the answer   
    جرب استعمال هذا الكود 
    كمحاولة لضبط المدخلات في الخلايا عن طريق الاستبدال
    ثم بعدها يتم تقسيم النص إلى أعمدة عن طريق الشرطة يدويا
    ويمكنك إضافة أي عدد من العناصر التي يمكن استبدالها في المصفوفتين
    Sub mrmas() OldArr = Array("مهندس", "معاون", "درجة", "سادسة", "خامسة", "رابعة", "ثالثة", "ثانية", "اولى", "كبير", "استثنائى", "كبير-ثان", "كبير -ثان", " ", "--") newarr = Array("-مهندس", "-معاون", "-درجة", "سادسة-", "خامسة-", "رابعة-", "ثالثة-", "ثانية-", "اولى-", "كبير-", "-استثنائى-", "كبير ثان", "كبير ثان", " ", "-") For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row For i = 0 To UBound(OldArr) Range("a" & r).Value = Trim(Replace(Range("a" & r).Value, OldArr(i), newarr(i))) Next i Next r MsgBox "Done by mr-mas.com" End Sub وهذا الملف وبه الكود لأنه في بعض الحالات لا يعرف صاحب الاستفسار طريقة إضافة الكود ..بالتوفيق
    تقسيم النص إلى معلومات.xlsb
  20. أ / محمد صالح's post in مشكلة بسيطة عند تغير اسم الشيت was marked as the answer   
    حسب فهمي للمطلوب
    حضرتك تريد طريقة لتخطي رسائل الأمان
    1- الخاصة بتمكين التعديل وهذه حلها ألا يتم تحميل ملف اكسل من الانترنت مباشرة بل يتم تحميل ملف مضغوط RAR مثلا ثم يفك الضغط عنه ليحصل على ملف الاكسل
    2- أما الرسالة الخاصة بتمكين المحتوى فلا يمكن تخطيها ويجب موافقة المستخدم على تشغيل الأكواد الموجودة في الملف وهذا آخر ما توصلت إليه ميكروسوفت في تأمين مستخدميها
    وتذكر دائما أنه لا يوجد حماية مطلقة بل يوجد حماية لا يعرف التعامل معها أحد المستخدمين
    أتمنى أن يكون الأمر اتضح
    بالتوفيق
  21. أ / محمد صالح's post in احتاج لكود طباعة was marked as the answer   
    هذا الأمر تكرر كثيرا
    يمكنك الاستفادة من هذه المواضيع
    بالتوفيق
     
  22. أ / محمد صالح's post in احتاج لكود طباعة was marked as the answer   
    هذا الأمر تكرر كثيرا
    يمكنك الاستفادة من هذه المواضيع
    بالتوفيق
     
  23. أ / محمد صالح's post in احتاج لكود طباعة was marked as the answer   
    هذا الأمر تكرر كثيرا
    يمكنك الاستفادة من هذه المواضيع
    بالتوفيق
     
  24. أ / محمد صالح's post in تعديل على الماكرو الاسم was marked as the answer   
    عليكم السلام ورحمة الله وبركاته
    للحصول على الاسم الأول يمكنك استعمال هذه المعادلة
    =LEFT(N14,FIND(" ",N14)-1) وللحصول على الاسم الأخير يمكنك استعمال هذه المعادلة
    =RIGHT(N14,LEN(N14)-FIND("*",SUBSTITUTE(N14," ","*",LEN(N14)-LEN(SUBSTITUTE(N14," ",""))))) تم تدمج الحلايا الثلاث في خلية واحدة
    التي بها الرقم والاسم الأول والاسم الأخير
    =aj1&" "&aj2&" "&aj3 وتكون هذه هي خلية اسم الشيت
    بالتوفيق
  25. أ / محمد صالح's post in مساعدة في إنجاز معادلة شرطية was marked as the answer   
    يمكنك استعمال هذه المعادلة في الخلية D3
    =IF(OR(A3=0,A3=""),"",C3-22) بالتوفيق
×
×
  • اضف...

Important Information