بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
-
Posts
4,357 -
تاريخ الانضمام
-
Days Won
185
Community Answers
-
أ / محمد صالح's post in حساب مدة الخدمة was marked as the answer
جرب استعمال هذه المعادلة في الخلية G6
=IF(B6="","",IF(DATEDIF(D6,E6,"md")>=30,IF(DATEDIF(D6,E6,"ym")+1=12,0,DATEDIF(D6,E6,"ym")+1),DATEDIF(D6,E6,"ym"))) وهذه في الخلية F6
=IF(B6="","",IF(DATEDIF(D6,E6,"ym")+1=12,1,0))+DATEDIF(D6,E6,"y") بالتوفيق
-
أ / محمد صالح's post in تعبئة الخلايا الفارغة في الإكسيل was marked as the answer
الكود السابق يملأ الخلايا الفارغة كلها بدون شروط
لذا يلزم إضافة شرط
يمكنك استعمال هذا الاجراء
تم إضافة شرط أن تكون خلية العمود B في نفس الصف غير فارغة
Sub masFillBlanks() Dim rng As Range For Each rng In Range("H11:AT75") If Range("b" & rng.Row) <> "" And IsEmpty(rng) Then rng.Value = "-" Next MsgBox "Done by mr-mas.com" End Sub وهذا نفس الاجراء بطريقة أخرى
Sub masFillBlanks2() Dim arr, r As Long, c As Long arr = Range("H11:AT75").Value For r = LBound(arr, 1) To UBound(arr, 1) If Range("b" & r + 10) <> "" Then For c = LBound(arr, 2) To UBound(arr, 2) If IsEmpty(arr(r, c)) Then Cells(r + 10, c + 7) = "-" Next c End If Next r MsgBox "Done by mr-mas.com" End Sub وأنصح بعدم وجود صفوف أو أعمدة زيادة مثل ما بعد الصف 47 وlما بعد العمود AN
بالتوفيق
-
أ / محمد صالح's post in إدراج صورة عن طريق كتابة رقمها was marked as the answer
المنتدى به كنوز رائعة
تحتاج فقط من يبحث عنها
https://www.officena.net/ib/search/?q=صورة الموظف&quick=1&type=forums_topic&nodes=135&search_and_or=and
بالتوفيق
-
أ / محمد صالح's post in ترحيل ارقام من شيت الى شيت على اساس رقم المستند was marked as the answer
أخي الكريم صاحب الموضوع
اول خطوة لتعديل الكود فهمه وفهم متغيراته
والكود القديم يقوم بنقل قيمة العمود J إلى العمود 19 بعد العمود الأول في شيت البيانات
والمطلوب إضافة نفس الكود عند تعديل العمود G ويتم نقله إلى العمود 16 بعد العمود الأول في شيت البيانات
لذلك يصبح الكود بعد التعديل
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Dim ws As Worksheet Set ws = Sheets("البيانات") Dim c, x Application.ScreenUpdating = False If Not Intersect(Target, Range("g8:g1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 16) = Target Ebd If If Not Intersect(Target, Range("j8:j1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 19) = Target End If Application.ScreenUpdating = True End Sub لاحظ تم تكرار سطور الشرط للعمودين g و j مع تغيير رقم العمود المرحل إليه مرة 19 ومرة 16
بالتوفيق
-
أ / محمد صالح's post in ترحيل ارقام من شيت الى شيت على اساس رقم المستند was marked as the answer
أخي الكريم صاحب الموضوع
اول خطوة لتعديل الكود فهمه وفهم متغيراته
والكود القديم يقوم بنقل قيمة العمود J إلى العمود 19 بعد العمود الأول في شيت البيانات
والمطلوب إضافة نفس الكود عند تعديل العمود G ويتم نقله إلى العمود 16 بعد العمود الأول في شيت البيانات
لذلك يصبح الكود بعد التعديل
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next Dim ws As Worksheet Set ws = Sheets("البيانات") Dim c, x Application.ScreenUpdating = False If Not Intersect(Target, Range("g8:g1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 16) = Target Ebd If If Not Intersect(Target, Range("j8:j1000")) Is Nothing Then c = Target.Offset(, -9) x = Application.Match(c, ws.Columns(1), 0) ws.Cells(x, 1).Offset(, 19) = Target End If Application.ScreenUpdating = True End Sub لاحظ تم تكرار سطور الشرط للعمودين g و j مع تغيير رقم العمود المرحل إليه مرة 19 ومرة 16
بالتوفيق
-
أ / محمد صالح's post in نقل القيمة الموجودة فى خلية بمجرد تحديدها فى نطاق معين was marked as the answer
يفترض أنه تم حل شيء شبيه بهذا لك قبل ذلك
فأين محاولتك والتي تدل على الاستفادة مما سبق تعلمه؟
-
أ / محمد صالح's post in ملف اكسل كلمة المرور was marked as the answer
يمكنك استخدام برنامج aopr
بالبحث عن هذه الحروف في جوجل
بالتوفيق
-
أ / محمد صالح's post in ملف اكسل كلمة المرور was marked as the answer
يمكنك استخدام برنامج aopr
بالبحث عن هذه الحروف في جوجل
بالتوفيق
-
أ / محمد صالح's post in ملف اكسل كلمة المرور was marked as the answer
يمكنك استخدام برنامج aopr
بالبحث عن هذه الحروف في جوجل
بالتوفيق
-
أ / محمد صالح's post in مساعدة فى الترحيل was marked as the answer
بعد إذن أخي محي الدين
جرب تغيير الاجراء إلى هذا الكود
هذا باستعمال الاسم البرمجي للشيت ودالة cells
Sub test() Dim a, col As Long a = Range(Worksheet____37.Cells(10, 8), Worksheet____37.Cells(39, 8)).Value col = Application.Match(Worksheet____37.Cells(9, 8), Worksheet____60.Range("a9:m9"), 0) Worksheet____60.Cells(10, col).Resize(30) = a MsgBox "Done by mr-mas.com" End Sub وهذا نفس الاجراء باسم الشيت والنطاق
Sub mrmas() Dim a, col As Long a = Sheets("طباعة حافظة التقارير").Range("h10:h39").Value col = Application.Match(Sheets("طباعة حافظة التقارير").Range("h9"), Sheets("ارشيف التقارير").Range("a9:m9"), 0) Sheets("ارشيف التقارير").Cells(10, col).Resize(30) = a MsgBox "Done by mr-mas.com" End Sub بالتوفيق
-
أ / محمد صالح's post in جمع القروش والجنيهات was marked as the answer
وهذا رابط للبحث
Showing results for 'القروش الجنيهات' in content posted in منتدى الاكسيل Excel . - أوفيسنا (officena.net)
بالتوفيق
-
أ / محمد صالح's post in تعبئة تلقائية من ملف اكسل الى موقع was marked as the answer
الكود لا يضر الموقع ولا يظهر عندهم
الكود يقوم بما يقوم به المستخدم ولكن بصورة آلية
تحتاج قبل البدء معرفة ID حقل اسم المستخدم وكذلك كلمة المرور وكذلك زر الدخول
وبعدها ID لكل حقل سيتم تعبئته من الشيت وكل زر سيتم الضغط عليه
لمعرفة ID لعنصر نضغط بزر الفارة الأيمن على العنصر في المتصفح ونختار inspect element
وبعدها نستخدم كود انشاء نسخة من كائن متصفح انترنت اكسبلورر بمثل هذا الكود
Dim IE As Object, site as String Set IE = CreateObject("InternetExplorer.Application") site = "https://www.example.com/" With IE .Visible = True .navigate site Do Until Not IE.Busy And IE.readyState = 4 DoEvents Loop End With IE.Document.getElementById("username").Value = range("aa1").value IE.Document.getElementById("password").Value = range("ab1").value IE.Document.getElementById("login_go").Click Do Until Not IE.Busy And IE.readyState = 4 DoEvents Loop وهكذا في كتابة قيم الحقول من الشيت نستعمل حلقة تكرارية مثل for - next
وهكذا الضغط على اي زر لحفظ البيانات مثلا
بالتوفيق
-
أ / محمد صالح's post in مطلوب سحب الاجازات وتجميها طبقا للشهر was marked as the answer
كل عام وأنتم جميعا بكل خير
يمكنك استعمال هذه المعادلة في الخلية C2 مع سحب المعادلة يسارا ثم أسفل
=SUMIFS('Data '!$E:$E,'Data '!$A:$A,$A2,'Data '!$C:$C,">="&C$1,'Data '!$C:$C,"<="&EOMONTH(C$1,0)) مع ضرورة حذف المسافة في نهاية اسم الشيت data حتى لا تتسبب في مشكلات بعد ذلك
بالتوفيق
-
أ / محمد صالح's post in حساب عدد ايام الحضور والغياب فى شيت was marked as the answer
عليكم اسلام ورحمة الله وبركاته
يمكنك استعمال دالة العد بشروط countifs
هذه المعادلة في Y2 لعد ايام الحضور
=COUNTIFS(B:B,AA3,C:C,Z3,F:F,"حضور") وهذه في X2 لعد ايام الغياب
=COUNTIFS(B:B,AA3,C:C,Z3,F:F,"غياب") مع سحب المعادلة لأسفل
بالتوفيق
-
أ / محمد صالح's post in برجاء التعديل على كود البحث التالي was marked as the answer
تفضل
تمت اعادة هيكلة جزء البحث في النموذج
بالتوفيق
التعديل على كود البحث.xlsm
-
أ / محمد صالح's post in جدول بيانات غوغل درايف was marked as the answer
يمكن رفع الملف على OneDrive
ومشاركة الرابط مع الجميع
مع فتح الملف بأوفيس 2016 وما بعده
بالتوفيق
-
أ / محمد صالح's post in مشكلة فى محرر الأكواد was marked as the answer
ربما يكون أحد غير إعدادات خطوط محرر الأكواد
من قائمة tools اختر options ثم في تبويب editor format
الخط الافتراضي courier new وحجم الخط 12 واختر اللون ولون الخلفية المفضل لديك
بالتوفيق
-
أ / محمد صالح's post in جمع الصفوف ما عدا الخلايا المظللة بالدائرة الحمراء was marked as the answer
أعتقد أنه لا يوجد في اكسل جمع للخلايا التي ليس عليها دائرة
وإنما يوجد جمع بشرط / بشروط
وهي عكس شروط وضع الدوائر مثلا جمع الخلايا التي تساوي أو تزيد عن النهاية الصغرى للمادة
فمثلا إذا وضعت في الصف 3 النهاية الكبرى لكل مادة سواء كانت 100 أو 150 ثم كتبت هذه المعادلة في الخلية AA9
=SUM(IF(E9:Z9>$E$3:$Z$3/2,E9:Z9,0)) ستحصل على مجموع الخلايا الأكبر من نصف النهاية الكبرى
ويمكن نسخ الخلية بعد وضع المعادلة إلى جميع خلايا المجموع الكلي
بالتوفيق
-
أ / محمد صالح's post in ترحيل الاسماء والتواريخ المكررة الى شيت اخر بدون تكرار was marked as the answer
يمكنك حذف الخلية الصفراء المدمجة أولا
ثم استعمال هذا الكود وربطه بزر أمر أو شكل
Sub tar7eel() Dim r As Long, f As Long Hoja2.Range("a2:b" & Hoja2.Cells(Rows.Count, 1).End(3).Row).ClearContents Hoja2.Range("d2:d" & Hoja2.Cells(Rows.Count, 1).End(3).Row).ClearContents f = 2 For r = 2 To Hoja1.Cells(Rows.Count, 1).End(3).Row myParent = Hoja1.Range("j" & r): newparent = Hoja1.Range("j" & r + 1) If myParent <> newparent Then Hoja2.Range("a" & f) = f - 1 Hoja2.Range("b" & f) = Hoja1.Range("j" & r) Hoja2.Range("d" & f) = Hoja1.Range("d" & r) f = f + 1 End If Next r MsgBox "Done by mr-mas.com" End Sub ملحوظة: تم استعمال الاسم البرمجي للشيتات وهو Hoja1 و Hoja2 وهو الاسم الموجود في محرر vba وليس الاسم الذي يظهر في تبويب الشيتات
بالتوفيق
-
أ / محمد صالح's post in ضبط وربط جميع صفحات الملف ببعضها was marked as the answer
المطلوب غير واضح لي بصورة كافية
لكني أتوقع أن المطلوب في الشيت الرابع عمل بحث عن رقم العضو وجلب بياناته
أفضل من تكرار نفس التصميم بعدد الأعضاء
راجع هذا الملف ربما يكون المطلوب
فقط يلزمك كتابة رقم العضو في الخلية J2
ولا أدري ما المطلوب من الشيت الثالث
بالتوفيق
2023.xlsx
-
أ / محمد صالح's post in فتح ملف اكسل محمي was marked as the answer
المطلوب غير واضح لي بصورة كافية
ربما لو ارفقت الملف
مع توضيح المطلوب بمنتهى التفصيل
تنتهي المشكلة بإذن الله
-
أ / محمد صالح's post in المساعده في تلوين بالتنسيق الشرطي was marked as the answer
لعمل ذلك يمكنك:
تحديد الخلايا B14:D14
من تبويب home نضغط على conditional formatting ثم new role
ثم نختار الاختيار الثاني Format only cells that contain
ثم Equal to ثم نكتب أو نختار B13
ثم نضغط على format لضبط لون الخلفية والنص المطلوب للخلية المميزة
ثم OK
مع مراعاة تطابق الأسماء في الخلايا مع الأسماء في القائمة
بالتوفيق
تلوين.xlsx
-
أ / محمد صالح's post in كود Vba (Conditional Formatting) احتاج لاختصاره والتعديل عليه was marked as the answer
كل عام وأنتم بخير
التنسيق الشرطي يتم إنشاؤه مرة واخدة فقط ويستمر عمله إلى أن يحذف
ولتطبيق هذا الكود على أي شيت يمكنك تحديده ثم تنفيذ هذا الكود عليه مرة واحدة فقط
سواء يدويا أو بكود في إجراء آخر مثل
sub mrmas sheets("sheetname").select call CFext() sheets("sheetname2").select call CFext() sheets("sheetname3").select call CFext() end sub بالتوفيق
-
أ / محمد صالح's post in تنسيق اتجاه التاريخ مع النص بنفس الخلية بالاكسل was marked as the answer
أبسط حل
أن تعكس التاريخ بكتابة العام ثم الشهر ثم اليوم
وإذا كنت تأخذ التاريخ من خلية أخرى
فيمكن استعمال هذه المعادلة
="كتابنا ذي الرقم (1254) في "&TEXT(C4,"yyyy/mm/dd") على اعتبار أن خلية التاريخ هي C4
بالتوفيق
-
أ / محمد صالح'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
بالتوفيق