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

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

قام بنشر (معدل)

لسلام عليكم

الرجاء كود لعد الحروف المتكررة فى الخلية الواحدة او الارقام او حتى العلامات الحسابية  على ان يعد كل حرف ورقم حتى ولو كان غير متكرر مثلا لو وجد حرف a مرة واحدة  يكتب رقم 1 وهكذا

ارجو ان اكون وضحت فكرتى

 

كما فى المثال المرفق

 

عدد الكلمات والحروف والارقام فى الخلية.rar

تم تعديل بواسطه MR.EXCEL
قام بنشر

السلام عليكم

أخي العزيز

إستخدم الكود التالي

 
Function cntt(myRng As String, x As String) As Integer
    y = 0
    For i = 1 To Len(myRng)
        If Mid(myRng, i, 1) = x Then y = y + 1
    Next
    cntt = y
End Function

لإنشاء دالة معرفة جديدة cntt

 

شاهد المرفق

 

عدد الكلمات والحروف والارقام فى الخلية.rar

قام بنشر

استاذ طارق لو امكن ان يكون العمل بالاكواد فقط بدون كتابة معادلات على اساس البيانات فى عمود A  والاحرف والارقام فى راس الصف الاول  وهم اجمالى 50 حرف ورقم وعلامة

 

لانى جربت المعادلة فاصبح الفايل ثقيل جدا

 

بارك الله فيك

قام بنشر

السلام عليكم

أخي العزيز

أنا فرضت 60 عمود (من 2 إلي 61)

يلزمك كودين

الكود الأول في حدث فتح الملف

ليحسب عند فتح الملف (وهذه قد تستغرق بعض الوقت) كافة الموجود في العمود A من الشييت 1 مرة واحدة 

Private Sub Workbook_Open()
Application.ScreenUpdating = False
Sheet1.Activate
For r = 2 To [A65536].End(xlUp).Row
     aa = Cells(r, 1).Value
     If IsEmpty(aa) Then GoTo 20
     
    For c = 2 To 61 ' columns
          x = Cells(1, c).Value
          If IsEmpty(x) Then GoTo 10
          y = 0
          
        For i = 1 To Len(aa)
                If Mid(aa, i, 1) = x Then y = y + 1
        Next
        Cells(r, c) = y
10      Next c
20  Next r
Application.ScreenUpdating = True
End Sub
والكود الثاني في حدث التغيير في العمود A

ليتحسس بعد تنفيذ الكود الأول أي تغير في العمود A ويعيد حساب هذا الصف فقط الذي حدث فيه تغيير في العمود A

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Or Target.Row = 1 Then Exit Sub


For c = 2 To 61 ' columns
      x = Cells(1, c).Value
      If IsEmpty(x) Then GoTo 10
      y = 0
      
    For i = 1 To Len(Target)
            If Mid(Target, i, 1) = x Then y = y + 1
    Next
    Cells(Target.Row, c) = y
10  Next c
    
End Sub

ولو أردت تغيير عدد الأعمدة من 60 إلي 50 مثلا فلتغير الرقم 61 إلي 51 في الكودين

For c = 2 To 61 ' columns

 

تفضل المرفق

عدد الكلمات والحروف والارقام فى الخلية2.rar

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information