تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال عن كود يقوم بعدد عنصر معين فى ملف اكسيل
#1
السلام عليكم

اريد كود برنامج يقوم بعد عنصر معين فى ملف اكسيل ويقوم بعرض العدد فى تيكست بوكس
بمعنى لو لدى شيت اكسيل به عمود يحتوى على اسماء دول مصر و فرنسا والمغرب الخ اكثر من مره فتكون وظيفة البرنامج عدد كم مرة احتوى العمود مصر وكم مره فرنسا وهكذا
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام ورحمة الله وبركاته
أخي الكريم قم بإضافة كائن أوفيس إلى المشروع وذلك بالطريقة التالية:
من القائمة Project --> Add Reference
ثم من التبويب COM
نختار Microsoft Office 11.0 Object Library بحسب الإصدار (هنا الإصدار 11)

ثم قم بوضع مربعي نص TextBox1 و TextBox2 وButton1
حيث أن الأول تكتب الكلمة المراد حساب عدد التكرار لها والثاني عدد التكرار
وبعد ذلك ضع الكود التالي
كود :
Imports Microsoft.Office.Interop
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim exl_app As New Excel.Application
        Dim exl_wrk As Excel.Workbook
        Dim exl_wst As Excel.Worksheet
        exl_app = CreateObject("Excel.Application")
        exl_wrk = exl_app.Workbooks.Open("c:\Book1.xls")
        exl_wst = exl_wrk.Worksheets(1)
        Dim Counter As Integer = 0
        Dim Index As Integer = 1
        With exl_wst
            Dim Value As String
            For I = 1 To .UsedRange.Rows.Count
                Value = .Range("D" & I).Value
                Application.DoEvents()
                If Value = TextBox1.Text Then
                    Counter += 1
                End If
            Next
        End With
        TextBox2.Text = Counter
    End Sub
End Class

الآن شغل البرنامج مع وضع المسار الصحيح لملف الإكسل
ثم اكتب الكلمة ولتكن (فرنسا) ثم قم بالضغط على الزر
أخيرا ستظهر لك النتيجة في TextBox2
مع الملاحظة أنني اخترت هنا العمود D وتستطيع أنت تغييره إلى العمود الذي تريد مثلا A أو B

بالتوفيق
الرد }}}
تم الشكر بواسطة:
#3
الكود يعمل شكرا لك اخى العزيز
الرد }}}
تم الشكر بواسطة:
#4
لدى سؤال اخر
لو عندى ف نفس الشيت اللى فات عمود فيه تواريخ بالفورمات دا 1-1-2013 12.0.0
الساعه والتاريخ اقصد
ف كنت عاوز كود يخلينى اعرف كم مره اتكرر التاريخ دا ومايحسبش الساعات يعنى تواريخ بس اقصد
الرد }}}
تم الشكر بواسطة:
#5
تفضل يا غالي
هذا تعديل على الكود السابق

كود :
Imports Microsoft.Office.Interop
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim exl_app As New Excel.Application
        Dim exl_wrk As Excel.Workbook
        Dim exl_wst As Excel.Worksheet
        exl_app = CreateObject("Excel.Application")
        exl_wrk = exl_app.Workbooks.Open("c:\Book1.xls")
        exl_wst = exl_wrk.Worksheets(1)
        Dim Counter As Integer = 0
        With exl_wst
            Dim Value As String
            For I = 1 To .UsedRange.Rows.Count
                If Not String.IsNullOrEmpty(.Range("D" & I).Value) Then
                    Value = .Range("D" & I).Value.ToString.Split(" ")(0)
                    Application.DoEvents()
                    If Value = TextBox1.Text Then
                        Counter += 1
                    End If
                End If
            Next
        End With
        TextBox2.Text = Counter
    End Sub
End Class

بالتوفيق
الرد }}}
تم الشكر بواسطة:
#6
مبدع يا اخي .

استفسار متعلق بالموضوع .

عندي جدول في اكسل يحتوي مثلا بيانات لاسم والعنوان ورقم التليفون

كيف اضيف بيانات من الفيجوال بالترتيب ؟

يعني عند وضع الاسم يتم اضافته فى اكسل بالترتيب ثم العنوان ثم الرقم

كأني اضيفه يدوي في اكسل
الرد }}}
تم الشكر بواسطة:
#7
sooriaty03 كتب :تفضل يا غالي
هذا تعديل على الكود السابق

كود :
Imports Microsoft.Office.Interop
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim exl_app As New Excel.Application
        Dim exl_wrk As Excel.Workbook
        Dim exl_wst As Excel.Worksheet
        exl_app = CreateObject("Excel.Application")
        exl_wrk = exl_app.Workbooks.Open("c:\Book1.xls")
        exl_wst = exl_wrk.Worksheets(1)
        Dim Counter As Integer = 0
        With exl_wst
            Dim Value As String
            For I = 1 To .UsedRange.Rows.Count
                If Not String.IsNullOrEmpty(.Range("D" & I).Value) Then
                    Value = .Range("D" & I).Value.ToString.Split(" ")(0)
                    Application.DoEvents()
                    If Value = TextBox1.Text Then
                        Counter += 1
                    End If
                End If
            Next
        End With
        TextBox2.Text = Counter
    End Sub
End Class

بالتوفيق

شكرا على ردك ومساعدتك لى
كنت عاوز تعديل بسيط اخير
لو عاوز مااكتبش التاريخ فى تيكست بوكس 1 عاوز البرنامج هو يكتب التاريخ ف التكست بوكس لوحده ويقولى ف تيكست بوكس 2 كم مره اتكرر
يعنى على فرض ان فيه تاريخين بس ف الشيت ف انا هعمل 4 تيكست بوكس
فوظيفة البرنامج انه يكتب ف التيكست بوكس 1 و 2 التاريخين اللى ف الشيت
والتيكست بوكس 3 و 4 اتكررو كام مره
الرد }}}
تم الشكر بواسطة:
#8
السلام عليكم
تفضل أخي الكريم
هذا الكود لا يعتمد على عدد معين من التواريخ فمهما بلغ العدد سيذكر لك جميع قيم التاريخ وكل قيمة كم مرة تكررت
كود :
Imports Microsoft.Office.Interop
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim exl_app As New Excel.Application
        Dim exl_wrk As Excel.Workbook
        Dim exl_wst As Excel.Worksheet
        exl_app = CreateObject("Excel.Application")
        exl_wrk = exl_app.Workbooks.Open("c:\Book1.xlsx")
        exl_wst = exl_wrk.Worksheets(1)
        Dim Counter As New List(Of String)
        Dim Values As New List(Of String)
        With exl_wst
            Dim Value As String
            Dim Index As Integer
            For I = 1 To .UsedRange.Rows.Count
                If Not String.IsNullOrEmpty(.Range("D" & I).Value) Then
                    Value = .Range("D" & I).Value.ToString.Split(" ")(0)
                    Index = Values.IndexOf(Value)
                    Application.DoEvents()
                    If Index = -1 Then
                        Values.Add(Value)
                        Counter.Add("1")
                    Else
                        Counter.Item(Index) = Val(Counter.Item(Index)) + 1
                    End If
                End If
            Next
        End With
        'إذا أردت إضافتهم إلى أداة نص
        'تستطيع استخدامها في حال كان عندك تاريخين فقط
        TextBox1.Text = Values.Item(0)
        TextBox2.Text = Values.Item(1)
        TextBox3.Text = Counter.Item(0)
        TextBox4.Text = Counter.Item(1)
        'إذا أردت إضافتهم إلى قائمة
        'تستطيع استخدامها مهما كان عدد التواريخ
        ListBox1.Items.AddRange(Values.ToArray)
        ListBox2.Items.AddRange(Counter.ToArray)
    End Sub
End Class


بالتوفيق
الرد }}}
تم الشكر بواسطة:
#9
خادم الدين كتب :مبدع يا اخي .

استفسار متعلق بالموضوع .

عندي جدول في اكسل يحتوي مثلا بيانات لاسم والعنوان ورقم التليفون

كيف اضيف بيانات من الفيجوال بالترتيب ؟

يعني عند وضع الاسم يتم اضافته فى اكسل بالترتيب ثم العنوان ثم الرقم

كأني اضيفه يدوي في اكسل

هل تقصد بالترتيب أي أنك تدخل الاسم ثم العنوان ثم الرقم
أم أنك تقصد بالترتيب الأبجدي؟
الرد }}}
تم الشكر بواسطة:
#10
الاسم ثم العنوان ثم الرقم . ثم يحفظ وينتقل للسطر الذي بعده يسجل الاسم والعنوان والرقم
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مساعدة في حل سؤال بخصةص عرض الوقت عبدالكريم برشدان 2 100 12-04-24, 03:05 PM
آخر رد: عبدالكريم برشدان
  [VB.NET] جملة اتصال بملف اكسيل ٢٠٠٣ بكلمة مرور Mr.H 6 198 30-03-24, 05:52 AM
آخر رد: justforit
  تعديل طول حقل معين في جميع جداول القاعدة atefkhalf2004 1 108 09-03-24, 03:17 AM
آخر رد: atefkhalf2004
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 264 11-02-24, 08:43 PM
آخر رد: assuhimi
Big Grin [سؤال] سؤال على السريع أبو خالد الشكري 0 188 29-01-24, 08:58 AM
آخر رد: أبو خالد الشكري
  سؤال بسيط يا احبتى فى الله خالد كامل1 4 318 07-01-24, 12:55 AM
آخر رد: Mujahef
  سؤال فى برمجة جهاز الباركود خالد كامل1 6 483 05-01-24, 12:25 AM
آخر رد: HALIM ELEULMA
  الفرق بين تاريخين على أن يظهر الناتج بعدد الاشهر boofa2022 4 274 03-01-24, 11:21 AM
آخر رد: boofa2022
  سؤال فى عمل تقرير مفصل خالد كامل1 1 283 26-12-23, 04:30 PM
آخر رد: تركي الحلواني
Lightbulb [VB.NET] إطهار الصورة بمقاس معين في DataGridView أبو خالد الشكري 2 332 14-12-23, 03:01 PM
آخر رد: أبو خالد الشكري

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم