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

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

قام بنشر

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

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

هو يجلب بيانات ( الاسم ورقم الجلوس والفصل ورقم اللجنة من (شيت صف رابع ) بناء علي القائمة المنسدلة ( 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

 

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

الف شكر علي رد حضرتك

معلش أنا آسف أنا لما عملت قائمة منسدلة في ( n7 ) مفيش حاجة جديدة هو نفس الكود الأول

ايه فائدة ( n7 ) ؟؟

وأرفقت الملفنهال1.xlsm

  • أفضل إجابة
قام بنشر

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

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

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

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

نهال.xlsm

 

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

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

Important Information