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

أرجو تصحيح الكود


2saad
إذهب إلى أفضل إجابة Solved by ابراهيم الحداد,

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

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

عايز أعرف أين الخطأ في هذا الكود

هو يجلب بيانات ( الاسم ورقم الجلوس والفصل ورقم اللجنة من (شيت صف رابع ) بناء علي القائمة المنسدلة ( N17  )

ولكم جزيل الشكرنهال.xlsmنهال.xlsm

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

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

تم تصحيح الكود ليعمل بشكل صحيح

و لكن يتوجب عليك تسطير الكثير من الجداول التى سوف يتم تفريغ البيانات بها

و ليس 4 فقط كما هو موضح فى الملف المرفق مع مشاركتك الاولى

اليك الكود

Sub StudId()
Dim ws As Worksheet, sh As Worksheet
Dim Arr As Variant, Tmp As Variant
Set ws = Sheets("جدول الامتحان مع رقم الجلوس 1")
Set sh = Sheets("شيت صف رابع")
lr = sh.Range("B" & Rows.Count).End(3).Row
fsl = ws.Range("N17").Text
For i = 14 To sh.Range("D" & Rows.Count).End(3).Row
If sh.Cells(i, 4) = fsl Then
p = p + 1
x = (p - 1) * 13 + 7
ws.Cells(x, 2) = sh.Cells(i, 3)
ws.Cells(x + 1, 2) = sh.Cells(i, 2)
ws.Cells(x + 2, 2) = sh.Cells(i, 5)
ws.Cells(x + 1, 5) = sh.Cells(i, 4)
End If
Next
End Sub

 

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

شكرا جزيلا وربنا يجعله في ميزان حسناتك

معلش أنا طمعان في كرمك

هل ينفع نعمل عداد بحيث يجلب بيانات باقي بيانات الفصل متتالية بحيث كل 3 اسماء يتم طباعتها في صفحة واحدة أو اعملها ( print preview ) ثم طباعتها

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

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

فى البداية يجب انشاء قائمة منسدلة فى الخلية N7 تبدأ برقم 1 حتى يعمل معك الكود بشكل صحيح

ثم استخدم الكود التالى

Sub StudId()
Dim ws As Worksheet, Sh As Worksheet
Dim Arr As Variant
Dim i As Integer, j As Integer, p As Integer
Dim x As Integer, y As Integer, m As Integer
Dim Fsl As String, n As Integer
Set ws = Sheets("جدول الامتحان مع رقم الجلوس 1")
Set Sh = Sheets("شيت صف رابع")
   '---------------------
Arr = Array("B7", "B8", "B9", "E8", "B20", "B21", "B22", "E21", _
"B33", "B34", "B35", "E34", "B46", "B47", "B48", "E47")
For m = 0 To UBound(Arr)
ws.Range(Arr(m)).ClearContents
Next
   '----------------------
LR = Sh.Range("B" & Rows.Count).End(3).Row
Fsl = ws.Range("N17").Text
n = ws.Range("N2").Value
x = (n - 1) * 4 + 1
y = n * 4
For i = 14 To LR
If Sh.Cells(i, 4).Text = Fsl Then
p = p + 1
If p >= x And p <= y Then
j = (p - x) * 13 + 7
ws.Cells(j, 2) = Sh.Cells(i, 3)
ws.Cells(j + 1, 2) = Sh.Cells(i, 2)
ws.Cells(j + 2, 2) = Sh.Cells(i, 5)
ws.Cells(j + 1, 5) = Sh.Cells(i, 4)
End If
End If
Next

End Sub

 

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

  • أفضل إجابة

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

انا طلبت منك عمل قائمة منسدلة لتسهيل الامر عليك فى التنفيذ

و لكن حقيقة الامر  ما تم تنفيذه عندى باستخدام زر سبينر "Spinner 2"

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

نهال.xlsm

 

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

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

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

Important Information