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

Saleh Ahmed Rabie

02 الأعضاء
  • Posts

    96
  • تاريخ الانضمام

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

  • Days Won

    3

كل منشورات العضو Saleh Ahmed Rabie

  1. **كود نسخ تلقائي بيانات المجموع وتقدير الالوان لكل مادة من ورقة شيت الى ورقة نتيجة** **الخطوة 1: إنشاء ورقة شيت** * قم بإنشاء ورقة شيت تحتوي على بيانات المجموع لكل مادة. * تأكد من تضمين عمود "المادة" وعمود "المجموع". **الخطوة 2: إنشاء ورقة نتيجة** * قم بإنشاء ورقة نتيجة تحتوي على عمود "المادة" وعمود "التقدير". **الخطوة 3: كتابة الكود** * انتقل إلى ورقة الشيت. * في شريط القوائم، انتقل إلى "إضافات" > "محررات نصية" > "إنشاء". * الصق الكود التالي في محرر النصوص: function copyData() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ورقة شيت'); var data = sheet.getDataRange().getValues(); var resultSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('ورقة نتيجة'); for (var i = 1; i < data.length; i++) { var grade = data[1]; if (grade >= 90) { resultSheet.getRange(i + 1, 2).setValue('ممتاز'); } else if (grade >= 80) { resultSheet.getRange(i + 1, 2).setValue('جيد جدا'); } else if (grade >= 70) { resultSheet.getRange(i + 1, 2).setValue('جيد'); } else if (grade >= 60) { resultSheet.getRange(i + 1, 2).setValue('مقبول'); } else { resultSheet.getRange(i + 1, 2).setValue('راسب'); } } } * احفظ محرر النصوص. **الخطوة 4: تشغيل الكود** * انتقل إلى "إضافات" > "محررات نصية" > "تشغيل" من شريط القوائم. **النتيجة:** * سيتم نسخ بيانات المجموع من ورقة الشيت إلى ورقة النتيجة. * سيتم تقدير الألوان لكل مادة بناءً على المجموع. **ملاحظة:** * يمكنك تعديل الكود لتغيير نطاقات الدرجات والتقديرات حسب الحاجة. * يمكنك أيضًا إضافة المزيد من الأعمدة إلى ورقة النتيجة لعرض معلومات إضافية، مثل التعليقات أو التوصيات.
  2. **خطوات استخراج بيانات الشيكات من شيتات منفصلة إلى شيت مجمع:** **1. إنشاء شيت مجمع:** - افتح ملف Excel الخاص بك. - أنشئ شيتًا جديدًا وأطلق عليه اسم "الشيكات المجمعة". **2. استيراد البيانات من الشيتات المنفصلة:** - انتقل إلى الشيت المجمع. - في الخلية A1، أدخل الصيغة التالية: =IMPORTRANGE("رابط الشيت المنفصل 1", "اسم الشيت المنفصل 1!A1:G1") - حيث: - رابط الشيت المنفصل 1: هو رابط الشيت المنفصل الذي يحتوي على بيانات الشيك الأول. - اسم الشيت المنفصل 1: هو اسم الشيت المنفصل الذي يحتوي على بيانات الشيك الأول. - A1:G1: هو نطاق البيانات الذي تريد استيراده من الشيت المنفصل. - كرر هذه الخطوة لكل شيت منفصل يحتوي على بيانات الشيكات. **3. تعديل الصيغ لاستخراج البيانات المطلوبة:** - بعد استيراد البيانات، تحتاج إلى تعديل الصيغ لاستخراج البيانات المطلوبة من كل شيك. - على سبيل المثال، لاستخراج رقم الشيك، استخدم الصيغة التالية في الخلية B1 من الشيت المجمع: =MID(A1, FIND("رقم الشيك:", A1) + 10, 10) - كرر هذه الخطوة لاستخراج البيانات الأخرى مثل تاريخ الشيك والمبلغ والاسم وما إلى ذلك. **4. استخدام الدوال المساعدة (اختياري):** - يمكنك استخدام الدوال المساعدة مثل TRIM و CLEAN لإزالة المسافات الزائدة والرموز غير المرغوب فيها من البيانات المستوردة. - على سبيل المثال، لاستخراج تاريخ الشيك بدون مسافات زائدة، استخدم الصيغة التالية في الخلية C1 من الشيت المجمع: =TRIM(MID(A1, FIND("تاريخ الشيك:", A1) + 13, 10)) **5. تنسيق البيانات (اختياري):** - يمكنك تنسيق البيانات في الشيت المجمع لجعلها أكثر قابلية للقراءة. - على سبيل المثال، يمكنك تنسيق تاريخ الشيك بتنسيق التاريخ المطلوب. **ملاحظة:** - إذا كنت ترغب في استخدام المعدلات بدلاً من الأكواد، فيمكنك إنشاء جدول بحث في شيت منفصل يربط الأكواد بالمعدلات. ثم يمكنك استخدام الدالة VLOOKUP لاستبدال الأكواد بالمعدلات في الشيت المجمع.
  3. ```vba Private Sub PrintInvoiceAndClearData() ' طباعة الفاتورة ActiveSheet.PrintOut ' مسح البيانات Range("A1:Z100").ClearContents End Sub ``` سيقوم هذا الكود بطباعة الورقة النشطة ثم مسح محتويات الخلايا من A1:Z100. لاستخدام هذا الكود، يمكنك إنشاء زر على ورقة العمل وتعيين الكود أعلاه لحدث `OnClick` للزر. عند النقر فوق الزر، سيتم طباعة الفاتورة ومسح البيانات. فيما يلي مثال على كيفية تعيين الكود لزر: 1. انقر بزر الماوس الأيمن على ورقة العمل وحدد "إدراج" > "زر". 2. سيتم إدراج زر على ورقة العمل. 3. انقر بزر الماوس الأيمن فوق الزر وحدد "تعيين ماكرو". 4. في مربع الحوار "تعيين ماكرو"، حدد ماكرو `PrintInvoiceAndClearData` وانقر فوق "موافق". الآن، عند النقر فوق الزر، سيتم طباعة الفاتورة ومسح البيانات. أتمنى أن يساعدك هذا! 😊
  4. **السلام عليكم ورحمة الله وبركاته** **إليك معادلة لإظهار الوقت والتاريخ بمجرد كتابة رقم المرسى مع شرط كتابة الاسم في خانة الملاحظات قبل الانتقال إلى الصف التالي:** ``` =IF(NOT(ISBLANK(A2)),IF(A2="","",NOW()),"") ``` **حيث:** * A2: خلية رقم المرسى * NOW(): دالة لإرجاع الوقت والتاريخ الحاليين **طريقة الاستخدام:** 1. انسخ المعادلة والصقها في خلية الملاحظات (أو أي خلية أخرى تريد عرض الوقت والتاريخ فيها). 2. تأكد من كتابة رقم المرسى في خلية A2. 3. تأكد من كتابة الاسم في خانة الملاحظات قبل الانتقال إلى الصف التالي. **مثال:** | رقم المرسى | الاسم | الملاحظات | |---|---|---| | 12345 | أحمد | | | 67890 | محمد | | | | علي | 12:00 PM | **ملاحظة:** سيظهر الوقت والتاريخ في خلية الملاحظات بمجرد كتابة رقم المرسى في خلية A2. إذا تم ترك خلية رقم المرسى فارغة، فلن يتم عرض الوقت والتاريخ.
  5. وعليكم السلام ورحمة الله وبركاته **لتعديل الماكرو الموجود بالملف:** 1. افتح ملف الإكسيل الذي يحتوي على الماكرو. 2. انتقل إلى علامة التبويب "المطور" (Developer). 3. انقر على زر "Visual Basic" (أو اضغط على Alt + F11). 4. في نافذة محرر Visual Basic، انقر على الماكرو "استدعاء بيانات المادة" في الجزء الأيسر. 5. قم بتعديل السطر التالي في كود الماكرو: Range("G2").Value = "17" إلى: Range("G2").Value = InputBox("أدخل رقم المادة:") 6. قم بتعديل السطر التالي في كود الماكرو: Sheets("data").Range("A2:B" & LastRow).Find(What:=Range("G2").Value, LookIn:=xlValues, LookAt:=xlPart).Offset(0, 1).Value إلى: Sheets("data").Range("A2:B" & LastRow).Find(What:=Range("G2").Value, LookIn:=xlValues, LookAt:=xlPart).Offset(0, 2).Value 7. احفظ التغييرات وأغلق نافذة محرر Visual Basic. **لاستخدام الماكرو المعدل:** 1. حدد الخلية G2 في ورقة العمل التي تحتوي على الماكرو. 2. أدخل رقم المادة التي تريد استدعاء بياناتها. 3. اضغط على مفتاح "Enter". 4. سيتم جلب اسم المادة ورصيدها من ورقة العمل "data" وعرضها في الخلايا المقابلة في ورقة العمل الحالية. 5. سيتم أيضًا نقل جميع الغرف التي تحتوي على أرقام من السطر 4 في ورقة العمل الحالية إلى الأعمدة C11 وE11 في ورقة العمل "form3". **ملاحظة:** * يمكنك تعديل السطر LastRow = Sheets("data").Cells(Rows.Count, 1).End(xlUp).Row ` في كود الماكرو لتحديد نطاق البحث في ورقة العمل "data". * إذا لم يتم العثور على المادة المحددة في ورقة العمل "data"، فسيتم عرض رسالة خطأ.
  6. **كود VBA لترحيل البيانات من ليست بوكس في اليوزر فورم إلى شيت إكسيل:**````` Private Sub CommandButton1_Click() Dim ws As Worksheet Dim i As Long Set ws = ThisWorkbook.Worksheets("Sheet1") For i = 0 To Me.ListBox1.ListCount - 1 ws.Cells(i + 1, 1).Value = Me.ListBox1.List(i, 0) ws.Cells(i + 1, 2).Value = Me.ListBox1.List(i, 1) Next i End Sub **كود VBA لترحيل البيانات من ليست بوكس في اليوزر فورم إلى ملف PDF:**``` Private Sub CommandButton2_Click() Dim pdf As Object Dim i As Long Set pdf = CreateObject("AcroExch.PDDoc") pdf.Open "C:\Path\To\Your.pdf" For i = 0 To Me.ListBox1.ListCount - 1 pdf.Page(1).CreateTextField(i + 1, 100, 100, 100, 100) pdf.Page(1).Fields(i + 1).Value = Me.ListBox1.List(i, 0) Next i pdf.Save pdf.Close End Sub **كود VBA لإنشاء ملف جديد في مجلد العمل:** Private Sub CommandButton3_Click() Dim wb As Workbook Set wb = Workbooks.Add wb.SaveAs "C:\Path\To\NewWorkbook.xlsx" End Sub **ملاحظة:** * تأكد من استبدال المسارات في أكواد VBA بالمسارات الصحيحة للملفات الخاصة بك. * يمكنك أيضًا تخصيص أكواد VBA لتناسب احتياجاتك الخاصة.
  7. **الإجابة:** يمكنك تعديل الكود الخاص بك كما يلي: Dim dat, dat_bon As Date Dim X As Integer Dim v As Integer Dim Uf As Integer Dim i As Long Dim J As Long Set fa = Sheets("Stock") With Feuil1 Uf = fa.Range("A" & Rows.Count).End(xlUp).Row For i = 0 To ListBox1.ListCount - 1 For J = 2 To Uf If .Cells(J, 1) = Val(ListBox1.List(i, 0)) And .Cells(J, 5) = ComboBox1 Then If Me.OptionButton1 = True Or Me.OptionButton2 = True Then dat_bon = .Cells(J, 9) If dat_bon < dat Then dat_bon = dat End If End If End If Next J Next i For i = 0 To ListBox1.ListCount - 1 For J = 2 To Uf If .Cells(J, 1) = Val(ListBox1.List(i, 0)) And .Cells(J, 5) = ComboBox1 And .Cells(J, 9) = dat_bon Then If Me.OptionButton1 = True Then .Cells(J, 4) = .Cells(J, 4) + Val(ListBox1.List(i, 3)) .Cells(J, 6) = .Cells(J, 6) - Val(ListBox1.List(i, 3)) If (Cells(J, 4).value) = 0 Then Cells(J, 4).EntireRow.Delete End If ElseIf Me.OptionButton2 = True Then .Cells(J, 4) = .Cells(J, 4) - Val(ListBox1.List(i, 3)) .Cells(J, 7) = .Cells(J, 7) + Val(ListBox1.List(i, 3)) If (Cells(J, 4).value) = 0 Then Cells(J, 4).EntireRow.Delete End If End If End If Next J Next i End With **ملاحظة:** * هذا التعديل سيقوم بدمج الخلية 4 مع الخلية 5 إذا كان اسم المخزن غير مكرر في ورقة العمل "Stock". * إذا كان اسم المخزن مكررًا، فسيتم حذف الخلية 4 بالكامل.
  8. **وعليكم السلام ورحمة الله وبركاته** **إليك المعادلة المطلوبة للتنسيق الشرطي:** ``` =COUNTIF($B$1:$B$5,A1)>0 ``` **كيفية عمل المعادلة:** * تقوم دالة `COUNTIF` بحساب عدد المرات التي تظهر فيها قيمة الخلية `A1` في النطاق `$B$1:$B$5`. * إذا كانت النتيجة أكبر من 0، فهذا يعني أن قيمة الخلية `A1` موجودة في النطاق `$B$1:$B$5`. * في هذه الحالة، سيتم تنسيق الخلية `A1` وفقًا لقاعدة التنسيق الشرطي التي تم تعيينها. **مثال على الاستخدام:** في المثال الذي قدمته، يمكنك استخدام المعادلة التالية في التنسيق الشرطي للخلية `A1`: ``` =COUNTIF($B$1:$B$5,A1)>0 ``` إذا تم تلوين الخلية `A1` باللون الأحمر عند تلبية هذا الشرط، فستتمكن من معرفة الخلايا التي لم يتم جمعها بعد بنظرة واحدة على الألوان. **ملاحظة:** * تأكد من استبدال النطاق `$B$1:$B$5` بالنطاق الفعلي الذي يحتوي على قيم المجموع. * يمكنك تخصيص قاعدة التنسيق الشرطي لتلوين الخلية بأي لون تريده.
  9. **إليك كود VBA لإكمال المهمة المطلوبة:** Sub CopyColumnToAnotherSheet() Dim wsSource As Worksheet, wsDestination As Worksheet Dim rngSource As Range, rngDestination As Range Dim i As Integer, j As Integer ' تعيين أوراق العمل المصدر والوجهة Set wsSource = ThisWorkbook.Worksheets("الحجم الساعي اليومي") Set wsDestination = ThisWorkbook.Worksheets("نسبة الغياب") ' تحديد نطاق العمود في ورقة العمل المصدر Set rngSource = wsSource.Range("A:A") ' تحديد نطاق العمود في ورقة العمل الوجهة Set rngDestination = wsDestination.Range("A:A") ' نسخ البيانات من ورقة العمل المصدر إلى ورقة العمل الوجهة For i = 1 To rngSource.Rows.Count For j = 1 To rngSource.Columns.Count If rngSource.Cells(i, j).Interior.Color <> RGB(255, 255, 0) Then rngDestination.Cells(i, j).Value = rngSource.Cells(i, j).Value End If Next j Next i ' إظهار رسالة تأكيد MsgBox "تم نسخ البيانات بنجاح." End Sub **شرح الكود:** * يحدد الكود ورقتي العمل المصدر والوجهة. * يحدد نطاق العمود في ورقة العمل المصدر. * يحدد نطاق العمود في ورقة العمل الوجهة. * ينسخ الكود البيانات من ورقة العمل المصدر إلى ورقة العمل الوجهة، مع تخطي الخلايا الملونة باللون الأصفر (RGB(255, 255, 0)). * يعرض الكود رسالة تأكيد عند اكتمال النسخ. **ملاحظة:** * يجب أن تكون ورقتا العمل "الحجم الساعي اليومي" و"نسبة الغياب" في نفس المصنف. * إذا كنت تريد نسخ البيانات إلى أعمدة مختلفة في ورقة العمل الوجهة، فقم بتعديل نطاق rngDestination وفقًا لذلك.
  10. **وعليكم السلام ورحمة الله وبركاته** **إليك كيفية طباعة الصفحات التي تحتوي على بيانات فقط في Excel:** **الخطوات:** 1. **حدد نطاق البيانات:** حدد جميع الخلايا التي تحتوي على البيانات التي تريد طباعتها. 2. **انتقل إلى "ملف":** انقر فوق علامة التبويب "ملف" في الزاوية العلوية اليسرى. 3. **اختر "طباعة":** انقر فوق خيار "طباعة" في القائمة الموجودة على الجانب الأيسر. 4. **حدد "إعدادات":** انقر فوق الزر "إعدادات" الموجود في الجزء العلوي الأيمن من نافذة الطباعة. 5. **تبويب "الصفحة":** انقر فوق علامة التبويب "الصفحة" في نافذة "إعدادات الطباعة". 6. **إلغاء تحديد "طباعة الصفحات الفارغة":** قم بإلغاء تحديد مربع الاختيار "طباعة الصفحات الفارغة". 7. **انقر فوق "موافق":** انقر فوق الزر "موافق" لحفظ الإعدادات. 8. **طباعة:** انقر فوق الزر "طباعة" لطباعة النطاق المحدد من البيانات فقط. **الكود:** يمكنك أيضًا استخدام الكود التالي لطباعة الصفحات التي تحتوي على بيانات فقط: Sub PrintDataOnly() 'حدد نطاق البيانات Range("A1:D10").Select 'إعدادات الطباعة With ActiveSheet.PageSetup .PrintArea = Range("A1:D10").Address .PrintComments = False .PrintEmptyRows = False .PrintEmptyColumns = False End With 'طباعة النطاق المحدد ActiveSheet.PrintOut End Sub **ملاحظة:** * سيؤدي هذا الكود إلى طباعة نطاق البيانات المحدد "A1:D10" فقط. * يمكنك تعديل نطاق البيانات في الكود وفقًا لاحتياجاتك.
×
×
  • اضف...

Important Information