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

مشكله فى كومند فى مايكرو الاكسل


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

Sub InternalSwitch()
Dim lr As Integer
Sheets(1).Activate
ir = [A100000].End(xlUp).Row
Range("a2:h" & lr).Copy
Sheets(5).Activate
Range("a" & [A100000].End(xlUp).Row + 1).Select
Selection.PasteSpecial xlPasteValues
Sheets(1).Activate
Range("a2").Select
Range("a2:h10000000").ClearContents
End Sub

ده الكوماند كلو

كل اللى عايزه انقل من شيت 1 لشيت 5 البيانات 

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

الامر بسيط جدا

خطأ الكود هو حرف

i

ir = [A100000].End(xlUp).Row
المفروض احنا عرفناه علي اساس انه 
l
وليس i

الصح نخليه كدا

lr = [A100000].End(xlUp).Row

 

تفضل

يوميه مخازن.rar

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

والحق واقولك غير كودك بالكود دا

عشان في مشرفين هنا  بيقفشوا علي الواحدة ويقولك بلاش  
Select  or  Activate

:biggrin:

 

Application.ScreenUpdating = False
Dim mohamed As Integer
mohamed = [A100000].End(xlUp).Row
Range("a2:h" & mohamed).Copy
aseel = WorksheetFunction.CountA(Sheets("تحويل داخلي).Range("a5:a9999")) + 4
    Sheets("تحويل داخلي").Range("A" & aseel).PasteSpecial Paste:=xlPasteValues
    aseel = aseel + 1
Range("a2:h100000").ClearContents

كود الغاليين:wink2:

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

أخي الكريم أيمن

هل اشتغل معك الكود بشكل جيد ؟؟؟ أشك في النتائج ... راجع الملف مرة أخرى ...

أخي الغالي ياسر العربي .. ركز معايا في اللي جاااااي

إنت بتقول المشرفين بيقفشوا على Activate أو Select ..

اتفضل القفش في الكود

:rol:  القفشة الأولى  زي ما أبطلت تحديث الشاشة كان عليك ترجع الإعدادات مرة تانية وتشغل الخاصية في النهاية

 Application.ScreenUpdating = True

:wink2:القفشة التانية عند نسخ الكود .. هناك خطأ في هذا السطر لديك

aseel = WorksheetFunction.CountA(Sheets("تحويل داخلي).Range("a5:a9999")) + 4

حضرتك نسيت أقواس التنصيص عشان تقفل اسم ورقة العمل

:wallbash:القفشة التالتة في نفس السطر الل فوق ..دا كدا بيجيب آخر صف به بيانات ..يعني لما تيجي تلصق البيانات فيه آخر سطر سيتم اللصق عليه (قفشة في الجون)

وليه اللفة الطويلة دي واستخدام دالة Counta وتزود عليها 4 كان ممكن يكون السطر بهذا الشكل أفضل

aseel = Sheets("تحويل داخلي").Cells(Rows.Count, "B").End(xlUp).Row + 1

:angry: القفشة الرابعة بدلاً من أن تكتب وتشير إلى ورقة العمل

Sheets("تحويل داخلي")

الأفضل الإعلان عن متغير باسم ورقة العمل مرة في أول الكود لسهولة استخدام المتغير بمعنى أن تضع في أول الكود هذين السطرين

    Dim SH As Worksheet
    Set SH = Sheets("تحويل داخلي")

وبعد ذلك يمكنك استخدام المتغير SH

:Rules:القفشة الخامسة حضرتك بتتسخدم أسماء أشخاص في المتغيرات ودا شيء مش مستحب لأن اسم المتغير بيعبر عن وظيفته في الغالب (دا أفضل) ..صحيح مش قفشة صحيحة بنسبة 100% ، ولكن أنا بكلم واحد محترف ، يعني لازم تستخدم اسماء في المتغيرات تعبر عن المتغير وعن نوعه كمان

يعني مثلاً المتغير mohamed المفروض إنه بيجيب رقم آخر صف في ورقة العمل اللي فيها الكود ... كان ممكن نسميه lRow (حرف الـ l  اختصار للنوع Long .. أو لو حبيت تستخدم Integer يبقا iRow) .. والمتغير المسمى aseel المفروض بيعبر عن آخر صف في ورقة العمل "تحويل الداخلي" أو على الأدق أول صف فارغ بعد آخر صف به بيانات ... ممكن تسميه iRowTar أي آخر صف في الورقة الهدف (الورقة الهدف : الورقة المراد الترحيل إليها)

 

:blink:القفشة السادسة يفضل أيضاً الإشارة إلى ورقة العمل الحالية .. عشان تقدر تنفذ الكود من أي مكان تاني (لأن الكود بهذا الشكل مينفعش يتنفذ غير وإنت واقف في ورقة العمل Sheet1

فالأفضل تعيين متغير تاني لورقة العمل الأولى عشان تقدر تنفذ الكود من أي مكان زي ما قلت

فيكون بهذا الشكل أيضاً ..

    Dim WS As Worksheet
    Set WS = Sheets("Sheet1")

والأفضل كمان إنك تستخدم الاسم البرمجي بدلاً من اسم ورقة العمل ، نظراً لأن المستخدم قد يرغب في كثير من الأحيان إلى تغيير اسم ورقة العمل ، بالتالي راعي هذه النقطة أيضاً

:jump:القفشة السابعة السطر التالي ايه لازمته ...عايز أعرف ايه الفايدة منه بعد انتهاء أسطر الكود

aseel = aseel + 1

ملوش لازمة إلا لو كنت داخل حلقة تكرارية مثلاً وتريد زياد رقم الصف بمقدار واحد

 

شفت إزاي ممكن كود صغير نقفش منه سبع قفشات ...

 

قول ورايا : خشب السقف سبع خشبات واتمسكت بسبع قفشات (قولها 10 مرات)

تقبل تحياتي

أخوك وحبيبك أبو البراء :fff:

 

الكود بالشكل النهائي يمكن أن يكون بهذا الشكل ...

Sub Rectangle1_Click()
    Dim WS As Worksheet, SH As Worksheet
    Dim lRow As Long, lRowTar As Long
    
    Set WS = Sheet1: Set SH = Sheet5
    lRow = WS.Cells(Rows.Count, "A").End(xlUp).Row
    lRowTar = SH.Cells(Rows.Count, "A").End(xlUp).Row + 1
    
    Application.ScreenUpdating = False
        WS.Range("A2:H" & lRow).Copy
        SH.Range("A" & lRowTar).PasteSpecial Paste:=xlPasteValues
        
        Range("A1").CurrentRegion.Offset(1).ClearContents
    Application.ScreenUpdating = True
End Sub

 

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

ههههههههههههههههههههههه

اينعم انا عدلت بس مجربتش

ماشي ياعم

انت زي ما انا شاكك فيك من الاول

منفسن من ناحيتي مش عارف ليه

انا مبحبش النقد الهدام داااا  هههههههه

:wallbash:

:angry:

انت ياخي كودك الاولاني زي الفل اشتغل علي

Select  or  Activate

محطتشي تاتش في حته وسلكت لازم  يتعلم عليا كدا

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

 

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

أخي الحبيب ياسر العربي

أنا مجرد متعلم مثلك تماماً والله .. وكلنا بنستفيد من بعض

ومفيش نفسنة ولا حاجة من الكلام ده ..إنت حبيبي وحبايبي بس اللي بعمل معاهم كدا
(رخامة بقا .. أصلها في الطبع )
:rol:

تقبل وافر تقديري واحترامي

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

أخي الحبيب ياسر العربي

أنا مجرد متعلم مثلك تماماً والله .. وكلنا بنستفيد من بعض

ومفيش نفسنة ولا حاجة من الكلام ده ..إنت حبيبي وحبايبي بس اللي بعمل معاهم كدا
(رخامة بقا .. أصلها في الطبع )
:rol:

تقبل وافر تقديري واحترامي

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

وبعدين  انا هشتغل بكودي بقي ايه رايك رخامة

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

Sub Rectangle1_Click()
Dim mohamed As Integer
Application.ScreenUpdating = False
mohamed = [A100000].End(xlUp).Row
Sheet1.Range("a2:h" & mohamed).Copy
aseel = WorksheetFunction.CountA(Sheet5.Range("a5:a9999")) + 4
Sheet5.Range("A" & aseel + 1).PasteSpecial Paste:=xlPasteValues
Sheet1.Range("a2:h100000").ClearContents
Application.ScreenUpdating = True
End Sub

 

ومحمد واسيل متغيرات عشان هما كل يوم بحال

أخي الحبيب ياسر العربي

أنا مجرد متعلم مثلك تماماً والله .. وكلنا بنستفيد من بعض

ومفيش نفسنة ولا حاجة من الكلام ده ..إنت حبيبي وحبايبي بس اللي بعمل معاهم كدا
(رخامة بقا .. أصلها في الطبع )
:rol:

تقبل وافر تقديري واحترامي

وعشان نبقي خالصين

خشب السقف سبع خشبات واتمسكت بسبع قفشات

خشب السقف سبع خشبات واتمسكت بسبع قفشات

خشب السقف سبع خشبات واتمسكت بسبع قفشات

خشب السقف سبع خشبات واتمسكت بسبع قفشات

خشب السقف سبع خشبات واتمسكت بسبع قفشات

خشب السقف سبع خشبات واتمسكت بسبع قفشات

خشب السقف سبع خشبات واتمسكت بسبع قفشات

خشب السقف سبع خشبات واتمسكت بسبع قفشات

خشب السقف سبع خشبات واتمسكت بسبع قفشات

خشب السقف سبع خشبات واتمسكت بسبع قفشات

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

ههههههههههههههههههههه والله انتو ناس زي العسل و بصراحه انا لسه متعلم الماكرو النهرده و ما اخدتش فيه الا نص ساعه كده قرايه و عملت الكومند ده و عايز احترف الماكرو هل في اسلوب اتعلم منه الماكرو و بجد استفدت من مناقشتكو و خصوصا ال 10 اخطاء ;) ربنا يباركلكو والله انتو ناس ميه الميه الميه الميه 

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

بص يا أخ أيمن

أولاً لازم تقرا التوجيهات في المنتدى وتغير اسم الظهور للغة العربية

وبعد كدا هتلاقي باب مفتوح .. تدخل الباب (من ورا عبد التواب) وتشوف كدا الموضوع هيسلك معاك ولا لا ..

خد الرابطين دول ابدأ بيهم لعلهم يفيدوك

من هنا دورة افتح الباب وادخل

ومن هنا موضوع البدايات

بداية الطريق لإنقاذ الغريق

 

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

ههههههههههههههههههههه والله انتو ناس زي العسل و بصراحه انا لسه متعلم الماكرو النهرده و ما اخدتش فيه الا نص ساعه كده قرايه و عملت الكومند ده و عايز احترف الماكرو هل في اسلوب اتعلم منه الماكرو و بجد استفدت من مناقشتكو و خصوصا ال 10 اخطاء ;) ربنا يباركلكو والله انتو ناس ميه الميه الميه الميه 

ايه ياعم ايمن   وحد الله قول لا اله الا الله

عشر اخطاء كمان 

طيب سبعة وكنا مستكترينها  جبت عشرة دي منين 

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

 :wallbash:واحد يخش كمان يقول  مشكورين انا استفدت فعلا من العشرين الخطأ اللي تفضل  ياسر وغلطهم

ماشي الايام بيننا:angry:

وهعلم عليكم:Rules:

وهفرح فيكم:jump:

 

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

موضوع بصراحه رائع التعلم من الاخطاء يجعل المعلومه تلزق فى الجمجمه ... بصراحه السيد ياسر خليل والسيد ياسر العربى صرح من اكواد  VBA ... بارك الله فيكما وجعله بميزان الحسنات

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

هو مافيش موضوع لامم اغلب الاكواد و استخدام كل كود ايه؟ 

دا بحر ومهما تحصل فيه يبقي الكثير والكثير لتعلمه 

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

ووحدة وحدة احنا نخرج اكواد 

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

بس نركز ونتفنن

وربنا يزيدك ويزدنا 

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

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

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



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

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

Important Information