اذهب الي المحتوي
أوفيسنا

معادلة للتكويد ( عمل باركود )


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

السلام عليكم ورحمة الله وبركاته

مرفق ملف تم العمل عليه

ولكن أريد خبرة أهل المعادلات

يتم التكويد بناءا علي أساسيات موجودة في الصف الأول

وتم عمل كود في العمود A:A

ولكن توجد معادلة أفضل من المستخدمة

وشكرا

التكويد.rar

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

السلام عليكم

أخي العزيز

إقترحت لك دالتين تم استحداثهما خصيصا لهذا الغرض

وهما SNF ، TAK وكودهما

 

Function TAK(a As Range) As String


    If a.Count > 1 Then TAK = "N/A": GoTo 10
    TAK = ""
    r = a.Row
    
    For c = 3 To 15 Step 2
       If IsEmpty(Cells(r, c)) Then
        nr = Cells(r, c).End(xlUp).Row
        TAK = TAK & Cells(nr, c): GoTo 5
       End If
       TAK = TAK & Cells(r, c)
5    Next c
10
End Function

=================================================================

Function SNF(a As Range) As String


    If a.Count > 1 Then SNF = "N/A": GoTo 10
    SNF = ""
    r = a.Row
    
    For c = 6 To 14 Step 2
       If IsEmpty(Cells(r, c)) Then
        nr = Cells(r, c).End(xlUp).Row
        SNF = SNF & " " & Cells(nr, c): GoTo 5
       End If
       SNF = SNF & " " & Cells(r, c)
5    Next c
10
SNF = Trim(SNF)
End Function

التكويد2.rar

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

السلام عليكم ورحمة الله وبركاته

أستاذي القدير / طارق محمود

كم أنا أقدرك وأحترمك كثيراً ( أحبك في الله )

والله مش عارف أرد علي هذا الإبداع - بارك الله فيك

لي طلب صغير لو في مقدرتك

لو سمحت ممكن تشرح لي الدالتين أو تعطيني فكرة بسيطة عن تكوين الكود لأن معرفتي بالأكواد بسيطة 

جزاك الله خيراً

شكراً لك مرة أخرى

تلميذك / أحمد فؤاد

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

السلام عليكم ورحمة الله وبركاته

بارك الله فيك أستاذي طارق محمود

شرح أكثر من رائع

أستاذ طارق لماذا عند تغيير قيمة معينة في أحد الخلايا لماذا لا يتغير معي الكود 

لابد من إعادة المعادلة أو إعادة تنشيطها في الخلية 

جزاك الله خيرا علي المجهود - آسف علي إزعاجك 

شكراً

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

السلام عليكم

عندك حق أخي الكريم

أضف السطر التالي في أعلي كل دالة من الإثنتين

 

 Application.Volatile

 

ليكون الكودين كالتالي

 

Function TAK(a As Range) As String
 Application.Volatile
    If a.Count > 1 Then TAK = "N/A": GoTo 10
    TAK = ""
    r = a.Row
    
    For c = 3 To 15 Step 2
       If IsEmpty(Cells(r, c)) Then
        nr = Cells(r, c).End(xlUp).Row
        TAK = TAK & Cells(nr, c): GoTo 5
       End If
       TAK = TAK & Cells(r, c)
5    Next c
10
End Function


=====================================================



Function SNF(a As Range) As String
 Application.Volatile
    If a.Count > 1 Then SNF = "N/A": GoTo 10
    SNF = ""
    r = a.Row
    
    For c = 6 To 14 Step 2
       If IsEmpty(Cells(r, c)) Then
        nr = Cells(r, c).End(xlUp).Row
        SNF = SNF & " " & Cells(nr, c): GoTo 5
       End If
       SNF = SNF & " " & Cells(r, c)
5    Next c
10
SNF = Trim(SNF)
End Function
رابط هذا التعليق
شارك

  • 2 years later...

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