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

تنسيق البيانات داخل listbox


إذهب إلى أفضل إجابة Solved by abouelhassan,

الردود الموصى بها

السلام عليكم اخوني 

بعد اذنكم عندي نلف اكسل بداخله userform بضهار بيانات من صفحة اكسل 

تنسيق البيانات في صفحة اكسل على سبيال المثال المبيعات 50.000

لكن فب listbox بتضهر 50

المطلوب : بدي كود يعمل تنسيق للبيانات داخل listbox 

المبيعات و العمولة و صافي المبيعات يكون تنسيقها 0.000 

سوال اخر هل ممكن اعمل زر ينقلني للخلية في الصفحة الاصلية عندما احددها من listbox 

 

مع كل الاحترام و التقدير للجميع 

Book1.xls

تم تعديل بواسطه abed14092017
رابط هذا التعليق
شارك

  • أفضل إجابة
6 ساعات مضت, abed14092017 said:

السلام عليكم اخوني 

بعد اذنكم عندي نلف اكسل بداخله userform بضهار بيانات من صفحة اكسل 

تنسيق البيانات في صفحة اكسل على سبيال المثال المبيعات 50.000

لكن فب listbox بتضهر 50

المطلوب : بدي كود يعمل تنسيق للبيانات داخل listbox 

المبيعات و العمولة و صافي المبيعات يكون تنسيقها 0.000 

سوال اخر هل ممكن اعمل زر ينقلني للخلية في الصفحة الاصلية عندما احددها من listbox 

 

مع كل الاحترام و التقدير للجميع 

Book1.xls 70.5 kB · 3 downloads

جرب

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    
    ' تحديد ورقة العمل التي تحتوي على البيانات
    Set ws = ThisWorkbook.Sheets("Sheet1") ' قم بتغيير اسم الورقة حسب اسم ورقتك
    
    ' احتساب عدد الصفوف الممتلئة في العمود A
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' تحميل البيانات إلى ListBox وتنسيقها
    For i = 2 To lastRow ' افترضنا هنا أن البيانات تبدأ من الصف 2، يمكنك تغيير الرقم إذا لزم الأمر
        ListBox1.AddItem Format(ws.Cells(i, 1).Value, "0.000") ' المبيعات
        ListBox1.List(ListBox1.ListCount - 1, 1) = Format(ws.Cells(i, 2).Value, "0.000") ' العمولة
        ListBox1.List(ListBox1.ListCount - 1, 2) = Format(ws.Cells(i, 3).Value, "0.000") ' صافي المبيعات
    Next i
End Sub

Private Sub ListBox1_Click()
    Dim selectedRow As Long
    
    ' الحصول على الصف المحدد في ListBox
    selectedRow = ListBox1.ListIndex
    
    ' التحرك إلى الخلية المقابلة في ورقة العمل
    If selectedRow >= 0 Then
        ThisWorkbook.Sheets("Sheet1").Cells(selectedRow + 2, 1).Select ' نفترض أن البيانات تبدأ من الصف 2
    End If
End Sub

 

  • Like 2
رابط هذا التعليق
شارك

جرب

Private Sub UserForm_Initialize()
    Dim salesRange As Range
    Dim cell As Range
    
    ' تعيين مجال البيانات
    Set salesRange = Worksheets("Sheet1").Range("A1:A50") ' قم بتغيير "Sheet1" و "A1:A50" حسب احتياجاتك
    
    ' تنسيق البيانات وإضافتها إلى ListBox
    For Each cell In salesRange
        ListBox1.AddItem Format(cell.Value, "0.000")
    Next cell
End Sub

السؤال الثاني

Private Sub ListBox1_Click()
    Dim selectedCell As Range
    
    ' العثور على الخلية المحددة في الصفحة الأصلية
    Set selectedCell = Worksheets("Sheet1").Range("A1:A50").Find(ListBox1.Value) ' قم بتغيير "Sheet1" و "A1:A50" حسب احتياجاتك
    
    ' التأكد من أن الخلية تم العثور عليها
    If Not selectedCell Is Nothing Then
        ' التحرك إلى الخلية المحددة
        selectedCell.Select
    End If
End Sub

 

يمكنك إضافة هذين الكودين إلى مستند Excel باتباع الخطوات التالية:
1. افتح ملف Excel.
2. اذهب إلى "مطور" > "محرر Visual Basic".
3. انقر فوق "إدراج" > "وحدة".
4. قم بلصق الكود في وحدة جديدة.
5. احفظ الملف بامتداد .xlsm.
6. قم بتعيين الوحدة الأولى كـ "UserForm" والوحدة الثانية كـ "ListBox1".
7. أغلق المحرر واستخدم ملف Excel بشكل عادي.

لكى تتعلم اخى اتبع ما سبق 

  • Like 1
رابط هذا التعليق
شارك

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information