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

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

قام بنشر

السلام على جميع الاساتذة الافاضل ...عندي طلب يتمثل في الاتي

1- عندي ملف به فورم يتم من خلالها ترحيل بيانات من صفحة الى صفحة محددة اود عند الترحيل ان يقوم بعمل ترقيم تسلسلي في الخانة a اي كلما رحلت سطر ياخذ رقما تسلسليا و في حالة حذف سطر كذلك يعاد الترقيم تسلسليا و اليا

لمعرفة المطلوب بدقة ارجو الاطلاع على الملف المرفق و لكم مني جزيل الشكر و التقدير   

ترقيم تسلسلي عن طريق الفورم.rar

قام بنشر
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lr As Long: Lr = Cells(Rows.Count, "B").End(xlUp).Row
Dim myRange As Range
Dim cell As Range
Set myRange = Range("B21:B" & Lr)
    If Not Intersect(myRange, Target) Is Nothing Then
        For Each cell In myRange
        Range("a" & cell.Row) = cell.Row - 20
        Next cell
    End If
End Sub

لقد وضعت هذا الكود في حدث الورقة و يعمل بشكل جيد و لكن الاشكال هو ضرورة عدم كتابة اي شئ في العمود b من b33:b34  ارجو التعديل في هذا الكود و جعله يرقم من a21:a30 ونفس الشء بالنسبة للجدول ادناه من  a34:a40

قام بنشر

صراحة لم أفهم المطلوب بشكل واضح ..عموماًُ إذا كنت تريد تغيير النطاق فقم بتغيير السطر التالي
 

Set myRange = Range("B21:B" & Lr)

استبدل حرف الـ B بحرف الـ A ، للتعامل مع العمود الأول وليس الثاني

قام بنشر

استاذ ياسر شكرا على مرورك الطيب ...انا اود عند ترحيل البيانات الى الجدول حسب الملف المرفق يقوم يترقيم المرحلين تسلسليا من 1 الى غاية اخر مرحل وليكن 5 كاخر مرحل ولكن عند حذف سطر مثلا و ليكن السطر الذي يحمل رقم 3 اود ان يعاد الترتيب تسلسليا من 1الى 4 وليس 1.2.4.5.

الكود الموضوع في حدث الورقة يعمل بشكل جيد ولكن عند الترحيل الى الجدول الثاني يجب عدم كتابة اي شئ في الخانات من b34:b40 واذا رحلنا الى هذه الخلايا هنا الترقيم سيتسلسل ابتداء من الخلية a21الى غاية اخر خلية بها قيمة في العمود b .

المطلوب ان امكن تعديل هذا الكود و حصره في التعامل مع النطاق من  a21:a30 و النطاق   a34:a40 او تقديم كود جديد يغنينا عن هذا الكود .

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lr As Long: Lr = Cells(Rows.Count, "B").End(xlUp).Row
Dim myRange As Range
Dim cell As Range
Set myRange = Range("b21:b" & Lr)
    If Not Intersect(myRange, Target) Is Nothing Then
        For Each cell In myRange
        Range("a" & cell.Row) = cell.Row - 20
        Next cell
    End If
   Set myRange = Range("B34:B" & Lr)
    If Not Intersect(myRange, Target) Is Nothing Then
        For Each cell In myRange
        Range("a" & cell.Row) = cell.Row - 33
        Next cell
    End If
End Sub

وعند وضع الكود بهذا الشكل عن مسح خلايا بها قيم يرقم من الخلية a1 بهذا الشكل -1.-2.-3.-4.....ارجو وضع هذا الكود في الملف المرفق للاطلاع على المشكلة بدقة 

ولكم مني جزيل الشكر ...وانا على علم بان هناك من الاخوة الافاضل من لديه الحل سواء لهذا الكود او لكودجديد ان شاء الله...استودعكم الله الذي لا تضيع ودائعه ولكم مني جزيل الشكر و العرفان

قام بنشر

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

With Feuil19
Last = wr.Range("b31").End(xlUp).Row + 1
.Cells(Last, 1) = Last - 20
End With

ولكن يبقى الاشكال عند الحذف 

 

على العموم اعلم ان الطلب شبه مستحيل و صعب اشكر كل من اطلع على الموضوع و حاول تقديم المساعدة ...واخص بالذكر الاستاذ ياسرالذي شرفني بمروره الطيب على الموضوع

بارك الله في الجميع

  • Like 1

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.

×
×
  • اضف...

Important Information