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

ارجو توضيح الخطأ فى هذا الكود


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

ارجو توضيح الخطأ فى الكود على العلم ان الفورم يحتوى على 20 صف و11 عمود قمت بوضعهم داخل اطار frame 
 
 
On Error Resume Next
Dim sh As Worksheet
Set sh = Sheets("purchases")
Dim KH As Integer
Dim s As Long, r As Long
lr1 = sh.Range("e10000").End(xlUp).Row + 1
sh.Range("p" & lr1).Value = TextBox74.Value
sh.Range("q" & lr1).Value = TextBox75.Value
sh.Range("r" & lr1).Value = TextBox76.Value
sh.Range("s" & lr1).Value = TextBox77.Value
sh.Range("t" & lr1).Value = TextBox78.Value
sh.Range("u" & lr1).Value = TextBox79.Value
sh.Range("v" & lr1).Value = TextBox80.Value
sh.Range("w" & lr1).Value = TextBox81.Value
sh.Range("x" & lr1).Value = TextBox82.Value
sh.Range("y" & lr1).Value = TextBox83.Value
lr = sh.Cells(Rows.Count, "e").End(xlUp).Row
KH = 0
For s = 1 To 20 ' عدد الصفوف
For r = 1 To 11  ' عدد الاعمده
sh.Cells(lr + s, r + 4) = Me.Controls.Item(KH + r - 1).Value
Next
KH = KH + 10
With sh
.Range("e" & Rows.Count).End(xlUp).Offset(0, -4).Value = TextBox71.Value
.Range("e" & Rows.Count).End(xlUp).Offset(0, -3).Value = TextBox72.Value
.Range("e" & Rows.Count).End(xlUp).Offset(0, -2).Value = TextBox73.Value
.Range("e" & Rows.Count).End(xlUp).Offset(0, -1).Value = ComboBox31.Value
End With

form.rar

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

الأخ الكريم/ محمد توبه

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

المرفق صورة وليس ملف - ولم تبين بها رسالة الخطأ أو نوعه

فقط لاحظت بالنظر الكود غير مكتمل - ومبدئيا هناك أمر Next ناقص

حيث لديك أمرين For - وNext واحدة - لابد من الإضافة

لا أعرف مسار الكود جرب إضافتها قبل سطر With sh - علي النحو التالي

Next r
KH = KH + 10
Next s
With sh

تقبل تحياتي

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

جزاك الله خيرا أ/ حماده 

 

الخطأ الذى اقصده يحدث عند ترحيل البيانات حيث البيانات لا ترحل فى اماكنها 

وكل ما كنت اقصده كان الكود يعمل معى بشكل جيد ولكن عند تغيير عدد الصفوف والاعمده فى الفورم لم يعد يعمل معى 

فما الذى احتاج الى تغييرة فى الكود عند اضافه اعمده اخرى او صفوف اخرى

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

الأخ الكريم/ محمد توبه

فهمتك - من المنطقي حدوث ذلك - لأنك غيرت أماكن الهدف للكود

دالة Offset تضع البيانات في خلايا متجاورة في أول سطر فارغ بنهاية الجدول

حاول التغيير في قيم Offset حتي يتم ترحيل كل بيان في مكانه الصحيح

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

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

استاذى / حماده

 

 الكود يعمل معى بشكل جيد فيما عدا هذه الجزئيه 

               

KH = 0

For s = 1 To 15 ' عدد الصفوف
For r = 1 To 11  ' عدد الاعمده
sh.Cells(lr + s, r + 4) = Me.Controls.Item(KH + r - 1).Value
Next
KH = KH + 11
 
وجزاك الله خيرا على تعبك معى وجعله فى ميزان حسناتك
رابط هذا التعليق
شارك

السلام عليكم

حسب ماشاهدة في اكوادك فأن الخطاء هو خطاء منطقي 

حيث انك قبل بداية الحلاقات التكرارية صرحت بأن KH=0

ثم في حدث التنفيذ امرته بالكود Me.Controls.Item(KH + r - 1).Value 

في هذه الحالة ستكون نتيجة  0 عندما يكون r =1 

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

الأخ الكريم/ محمد توبه

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

إضافة إلي ما قاله أخي وأستاذنا العزيز/ شوقي ربيع

والتأكد من أن قيمة KH لا ترجع الصفر في جميع الأحوال

أقترح إستبدال قيم الأعمدة والسطور الثابتة بقيم دينامية تتغير بتغير عدد الأعمدة والصفوف - مثال

iLastRow = Cells(Rows.Count, "a").End(xlUp).Row
iLastCol = Cells(1, Columns.Count).End(xlToLeft).Column

تقبل تحياتي

 

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

السلام عليكم

 

حسب ماشاهدة في اكوادك فأن الخطاء هو خطاء منطقي 

حيث انك قبل بداية الحلاقات التكرارية صرحت بأن KH=0

ثم في حدث التنفيذ امرته بالكود Me.Controls.Item(KH + r - 1).Value 

في هذه الحالة ستكون نتيجة  0 عندما يكون r =1

 

 

ليس هناك خطا في ان تكون النتيجة صفر

يعني هذا التعبير صحيح  Me.Controls.Item(0).Value
لان الخاصية  TabIndex  تبدا بالقيمة صفر

 

وليس هناك خطا في الكود من ناحية ترتيب الكنترولات

               
KH = 0
For s = 1 To 15 ' عدد الصفوف
For r = 1 To 11  ' عدد الاعمده
sh.Cells(lr + s, r + 4) = Me.Controls.Item(KH + r - 1).Value
Next
KH = KH + 11

 

ولكن الخطا في ترتيب الخاصية TabIndex  لكل كنترول المعني بالترحيل

بحيث يتم ترتيبه ابتداءا من القيمة صفر حسب الاعمدة ثم بالتوالي حسب الصفوف

 

وحقيقة استغرب كيف نناقش كود بدون وجود مرفق من صاحب المسالة

 

تقبلوا تحياتي وشكري

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

 

وحقيقة استغرب كيف نناقش كود بدون وجود مرفق من صاحب المسالة

 

 

أستاذنا الكبير/ عبدالله باقشير

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

جزاكم الله خير علي الطرح - غرضي أن يقوم الأخ السائل بتجربة الأمر والإطلاع علي الكود

مع محاولة إصلاح الخطأ بنفسه - وبحسب إعتقادي - التجربة والخطأ هي أفضل معلم .

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

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

 

 

وحقيقة استغرب كيف نناقش كود بدون وجود مرفق من صاحب المسالة

 

 

أستاذنا الكبير/ عبدالله باقشير

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

جزاكم الله خير علي الطرح - غرضي أن يقوم الأخ السائل بتجربة الأمر والإطلاع علي الكود

مع محاولة إصلاح الخطأ بنفسه - وبحسب إعتقادي - التجربة والخطأ هي أفضل معلم .

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

 

 

كلامك صحيح ......ولكن بالمرفق سيكون اكثر ايضاحا للسائل والمجيب وللحضور اجمع

وخاصة بمثل هذا الكود..........تفبلوا تحياتي وشكري

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

استاذى ومعلمى أ/ عبد الله باقشير 

استاذى  / حماده 

استاذى /شوقى ربيع 

 

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

 

فقد تعلمت هذا الكود من اعمال الاستاذ الكبير / عبد الله باقشير ولكن بعد وضع التكست بوكس والكومبو بوكس المراد ترحيل البيانات منها داخل اطار frame لاستغل المساحه فى بيانات اخرى حدث خطأ فى الكود 

 

واسف ان كنت لم ارفق ملف لانه ملف كبير كنت اود ارفاقه كموضوع جديد فى المنتدى بعد ان انتهى منه 

 

لابرهن لاساتذتى ان مجهودكم لا يضيع هباء انما استطعتم ان تعلمو الكثير من العرب الكثير والكثير من العلم 

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information