-
Posts
96 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
3
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
مشاركات المكتوبه بواسطه Saleh Ahmed Rabie
-
-
**السلام عليكم ورحمة الله وبركاته**
**إليك معادلة لإظهار الوقت والتاريخ بمجرد كتابة رقم المرسى مع شرط كتابة الاسم في خانة الملاحظات قبل الانتقال إلى الصف التالي:**
```
=IF(NOT(ISBLANK(A2)),IF(A2="","",NOW()),"")
```**حيث:**
* A2: خلية رقم المرسى
* NOW(): دالة لإرجاع الوقت والتاريخ الحاليين**طريقة الاستخدام:**
1. انسخ المعادلة والصقها في خلية الملاحظات (أو أي خلية أخرى تريد عرض الوقت والتاريخ فيها).
2. تأكد من كتابة رقم المرسى في خلية A2.
3. تأكد من كتابة الاسم في خانة الملاحظات قبل الانتقال إلى الصف التالي.**مثال:**
| رقم المرسى | الاسم | الملاحظات |
|---|---|---|
| 12345 | أحمد | |
| 67890 | محمد | |
| | علي | 12:00 PM |**ملاحظة:**
سيظهر الوقت والتاريخ في خلية الملاحظات بمجرد كتابة رقم المرسى في خلية A2. إذا تم ترك خلية رقم المرسى فارغة، فلن يتم عرض الوقت والتاريخ.
-
وعليكم السلام ورحمة الله وبركاته
**لتعديل الماكرو الموجود بالملف:**
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"، فسيتم عرض رسالة خطأ. -
**كود 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 لتناسب احتياجاتك الخاصة. -
**الإجابة:**
يمكنك تعديل الكود الخاص بك كما يلي:
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 بالكامل. -
**وعليكم السلام ورحمة الله وبركاته**
**إليك المعادلة المطلوبة للتنسيق الشرطي:**
```
=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` بالنطاق الفعلي الذي يحتوي على قيم المجموع.
* يمكنك تخصيص قاعدة التنسيق الشرطي لتلوين الخلية بأي لون تريده. -
**إليك كود 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وفقًا لذلك.
-
تم تحديث البرنامج
- 1
-
**وعليكم السلام ورحمة الله وبركاته**
**إليك كيفية طباعة الصفحات التي تحتوي على بيانات فقط في 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" فقط.
* يمكنك تعديل نطاق البيانات في الكود وفقًا لاحتياجاتك.- 1
تعديل علي فاتورة أتوماتيك
في منتدى الاكسيل Excel
قام بنشر
```vba
Private Sub PrintInvoiceAndClearData()
' طباعة الفاتورة
ActiveSheet.PrintOut
' مسح البيانات
Range("A1:Z100").ClearContents
End Sub
```
سيقوم هذا الكود بطباعة الورقة النشطة ثم مسح محتويات الخلايا من A1:Z100.
لاستخدام هذا الكود، يمكنك إنشاء زر على ورقة العمل وتعيين الكود أعلاه لحدث `OnClick` للزر. عند النقر فوق الزر، سيتم طباعة الفاتورة ومسح البيانات.
فيما يلي مثال على كيفية تعيين الكود لزر:
1. انقر بزر الماوس الأيمن على ورقة العمل وحدد "إدراج" > "زر".
2. سيتم إدراج زر على ورقة العمل.
3. انقر بزر الماوس الأيمن فوق الزر وحدد "تعيين ماكرو".
4. في مربع الحوار "تعيين ماكرو"، حدد ماكرو `PrintInvoiceAndClearData` وانقر فوق "موافق".
الآن، عند النقر فوق الزر، سيتم طباعة الفاتورة ومسح البيانات.
أتمنى أن يساعدك هذا! 😊