يحيى حسين قام بنشر فبراير 25, 2009 قام بنشر فبراير 25, 2009 أخي أبو هاجر المصري جهد رائع و بارك الله فيك
roushdy قام بنشر فبراير 25, 2009 قام بنشر فبراير 25, 2009 طال انتظارى اليك والقلب اشتاق ليك ارجو التكرم حين التطرق لموضوع الترحيل مرعاة شرح كيفية ترحيل اخر صف باحد الأعمدة بجدول لاخر صف بعمو اخر بجدول اخر
sara.refaat قام بنشر فبراير 25, 2009 قام بنشر فبراير 25, 2009 جميل جدا ومفيد جدا ونحن بانتظار الدرس الجديد
نزار سليمان عيد قام بنشر فبراير 25, 2009 قام بنشر فبراير 25, 2009 السلام عليكم مجهود رائع ومميز اخي ابو هاجر جزاك الله خيرا وبعد اذنك عندي هذه الاضافة البسيطة وهي عبارة عن شرحك منقول على ملف بور بوينت وذلك لعدم تشتت افكار الاخوة المستفيدين وقمت باضافة الدرس الاول والثاني واذا تم اعتماده ساقوم بتجميع الملف كاملا ووضعه في المنتدى مع الشكر ابو خالد __________________VBA___________________.rar
أبو هاجر المصري قام بنشر فبراير 25, 2009 الكاتب قام بنشر فبراير 25, 2009 أخي العزيز : نزار ماشاء الله عليك اعداد جيد للمذكرة واكيد لما تكمل هتبقى أجمل وأكمل ، والكمال لله وحده شكرا لك وجزاك الله خيرا واللي انت عايزه انا تحت امرك
رفيق محمد قام بنشر فبراير 25, 2009 قام بنشر فبراير 25, 2009 بارك الله فيك ابا هاجر نتابع موضوعك بشغف وان شاء الله سنساعدك (وعد مني) قدر الامكان لنتعلم سويا بارك الله فيك ونفع بك وبعلمك
أبو هاجر المصري قام بنشر فبراير 25, 2009 الكاتب قام بنشر فبراير 25, 2009 الأخ بو عمار مشكور لك جزيلا وأرجو من الله أن يكون هذا الموضوع فاتحة خير على الجميع الموضوع مهم للغاية ولا يكفي المادة العلمية عايزين من الأخوة المشرفين الدعم يعني أمثلة وتطبيقات وحلول وشرح أكواد معينة خبايا وأسرار كل الكلام ده يعتبر مادة دسمة غير محدودة من المعلومات والهدف واحد باعتقادي ، اللي ميعرفش يعرف والثمن دعوة عن ظهر قلب
محمد يحياوي قام بنشر فبراير 26, 2009 قام بنشر فبراير 26, 2009 والله موضوع رائع يستحق التشجيع في انتظار المزيد
ابراهيم سكيك قام بنشر فبراير 26, 2009 قام بنشر فبراير 26, 2009 مشكور وجزاك الله خير وجعلها الله في ميزان حسناتك يوم القيامة ونرجو منك المتابعة
amoudi قام بنشر فبراير 27, 2009 قام بنشر فبراير 27, 2009 السلام عليكم اخي ابو هاجر مشكور على مجهودك الكبير لي ملاحظة على هذا الجزء قد يفهم بشكل خاطي . - السطر الثالث والأخير == يقوم بتحديد شكل الخط إلى أسود من خلال خاصية الخط Font Object وتطبيقها على نطاقين من الخلايا في ورقة العمل النشطة ، والنطاقان هما (B1:C1 ، E1:F1 ) ، ومسموح لك فقط بإرجاع نطاقان اثنين فقط كحد أقصى ، وإضافة نطاق ثالث إلى القوسين يرجع القيمة الخطأ run-time error . للتوضيح ال RANGE (B1:C1 ، E1:F1 ) عبارة عن المدى من الخلابا B1:C1 الى مدى من الخلايا E1:F1 فهو الى وليس و يعن نقدر نقول Range(Start,End) eg وال End اختياري فالموضوع ليس يقبل اثنين او ثلاثة ولكنه من الى فقط فلو وضعت(" Range("A1","Z1 فمعناه من A الى Z وليس AوZ لكن لو كتبت(" Range("A1,Z1 فمعناه A وZ وبهذا ممكن تكتب( "Range("A1,B2,C3:C10,D8,AB5,F3:G8 يعني مدى متقطع ارجو اكون وفقت اوصل معلومة تحياتي
أبو هاجر المصري قام بنشر فبراير 27, 2009 الكاتب قام بنشر فبراير 27, 2009 بسم الله الرحمن الرحيم نستكمل أيها الأخوة الأفاضل الجزء الثالث من الجزء الثالث 3/3 I) استخدام خصائص الخلايا ... Using the Cells Property إن النموذج الخاص بكائنات إكسيل لا يحتوي على كائنات الخلية ، بمعنى أنه للإشارة إلى خلية محددة فإنك تستخدم خصائص الخلايا أو خصائص النطاق ، إن خصائص الخلايا تُرجِع كائنات النطاق المشتملة على كل ( بلا تحديد ) أو واحدة ( بتعيين الصف والعمود ) من خلايا الورقة النشطة ، عندما تشير إلى أو ترجع كل خلايا الورقة فإنه يجب عليك فقط استخدام خصائص الخلايا مع كائنات البرنامج وورقة العمل ... فعلى سبيل المثال : Cells(2,2).Select هنا فقد اخترت الخلية ( B2 ) في ورقة العمل - لاختيار أو إرجاع خلية في ورقة العمل يجب أن تحددها عن طريق فهرسها أو دليلها ، الفهرس يمكن أن يكون قيمة واحدة تبدأ من الخلايا في أعلى يسار ورقة العمل ( أو أعلى اليمين في النسخة العربية ) ، على سبيل المثال لإرجاع القيمة 5 للخلية D5 ، فإننا يمكننا ذلك عن طريق إما إرجاع فهرس الخلية أو بمدلول الصف والعمود ( مستحسن ) كالتالي : Cells(1, 4).Value=5 Cells(1, ”D”).Value =5 وذلك هو التدوين المألوف خلال هذه الدورة ، كلا الكودين السابقين سيقومان بإرجاع القيمة ( 5 ) للخلية ( D1 ) على حد سواء لورقة العمل النشطة ، كذلك يمكنك استخدام الأرقام أو السلاسل المرجعية في الإشارة إلى العمود ، ولاحظ أن الإشارة إلى العمود تأتي بعد الإشارة إلى الصف في المثالين ويفصل بينهما فاصلة ( , ) وأنا أوصي باستخدام الطريقة الثانية بالمثال أعلاه حيث أنها تتجنب الغموض في الإشارة إلى العمود ، وقد تكون الإشارة الرقمية أحسن في بعض الأحوال كما سيتبين فيما بعد ، ومع بعض الأمثلة على استخدام خصائص الخلايا في كائنات النطاق : Range(“C5:E7”).Cells(2, 2).Value = 100 Range(“C5:E7”).Cells(2, “A”).Value = 100 قد تؤدي تلك الأكواد إلى بعض التخبط لديك لأنها تبدو وكأنها ترجع إلى نطاقين مختلفتين ، إلا أن الأمكر ليس كذلك ، ولكن يمكنك استخدام هذه الأمثلة لتوضيح كيف تعمل خصائص الخلايا . - قبل القراءة ، خمن أولا ما هي الخلية في ( ورقة العمل ) التي ستأخذ القيمة ( 100 ) في كلا الكودين ، إذا خمنت أنهما ( B2 ) ، ( A2 ) على التوالي فأنت على خطأ ، فبدلاً من ذلك ، فإن القيمة ( 100 ) ستكون في الخليتين ( D6 ) ، ( A6 ) على التوالي عند استخدام أسطر الأكواد بأعلى ، لماذا ؟؟ لأن خصائص الخلايا استخدمت كائنات نطاق كمرجعية وليس كائنات ورقة العمل ككل (“C5:E7”) ، فأصبح النطاق الحالي كورقة العمل كاملة ، ولذلك فإن الخلية (2, 2) كانت لتشير إلى الخلية B2 لو كان النطاق عبارة عن ورقة العمل ، أما في المثال أعلاه فإنها تشير إلى الصف الثاني والعمود الثاني داخل النطاق ( C5:E7 ) أي الصف السادس والعمود الرابع بورقة العمل ( D6 ) ، وباستخدام السلسلة في خصائص الخلية في الفهرس في المثال الثاني لتقوية اختيار العمود بغض النظر عن النطاق المختار ، يظل الصف كما هو داخل النطاق ، ولكن العمود تم تحديده خارج النطاق ولذلك فإن الفهرس يشير إلى الخلية ( A6 ) . II) طرق ومجموعة خصائص ( الخلايا والصفوف والأعمدة ) ... Method and Properties Range (Cells, Rows and Columns) إليك بعض الأكواد للتجول خلال كائنات النطاق : • Selection , ActiveCell - إن الكائن Selection يشكل ما تم تحديده واختياره ، فيمكن أن يكون خلية مفردة ، أو مجموعة خلايا أو صف أو عمود أو العديد من هذه فعلى سبيل المثال : Range("A1:A50").Select Selection.ClearContents هذا الكود يقوم بإزالة محتويات الخلايا من A1 إلى A50 ( قيم أو صيغ ) . - أما ActiveCell فهو عبارة عن فكرة مهمة جدا سوف تحتاج لتذكرها عندما تبدأ بتطوير إجراءات أكثر تعقيداً . • Range, Select - لتحديد خلية .. Range("B1").Select - لتحديد خلايا متجاورة .. Range("A1:A5").Select - لتحديد خلال غير متجاورة .. Range("C1,E5,F6").Select • Columns, Rows, Select, EntireRow, EntireColumn - لتحديد عمود .. Columns("A").Select - لتحديد مجموعة من الأعمدة المتجاورة ... Columns("A:B").Select - لتحديد أعمدة غير متجاورة ... Range("A:A,C:C,F:F").Select - لتحديد صف ... Rows("1").Select - يمكنك تحديد الأعمدة والصفوف بأحد الطرق التالية : ActiveCell.EntireColumn.Select ActiveCell.EntireRow.Select Range("B1").EntireColumn.Select Range("B1").EntireRow.Select حيث أن ( EntireColumn ) كامل العمود ، و ( EntireRow ) كامل الصف إذا تم تحديد أكثر من خلية فإن الأكواد التالية ستقوم بتحديد كامل الصف أو العمود التي يشملها ذلك التحديد .. Selection.EntireColumn.Select Selection.EntireRow.Select • Cells, CurrentRegion - لتحديد كل الخلايا Cells.Select • Offset الطريقة الأكثر استخداما Offset التي تتيح لك التحرك والتنقل أعلى وأسفل يمينا ويسارا .. - على سبيل المثال لو أردت التحرك خليتين إلى اليمين .. Activecell.Offset(0,2).Select - ولو أردت التحرك خليتين إلى اليسار.. Activecell.Offset(0,-2).Select - إذا أردت التحرك خليتين إلى أسف .. Activecell.Offset(2,0).Select - إذا أردت التحرك خليتين لأعلى .. Activecell.Offset(-2,0).Select - إذا أردت تحديد خلية والتحرك ثلاث خلايا لأسفل .. Range(Activecell,Activecell.Offset(3,0)).Select Range("A1",Range("A1").Offset(3,0)).Select • Column, Row, Columns, Rows, Count - لاحظ أن الأكواد التالية تقوم بإرسال النتيجة إلى متغير .. myvar = Activecell.Column ترجع رقم العمود myvar = Activecell.Row ترجع رقم الصف myvar = Selection.Columns.Count ترجع عدد الأعمدة في التحديد myvar = Selection.Rows.Count ترجع عدد الصفوف في التحديد myvar = Selection.CurrentRegion.Rows.Count ترجع عدد الصفوف في المنطقة الحالية للتحديد • Value - عندما تريد أن تدخل قيمة رقمية في خلية ... Range("C1").Select Selection.Value = 56 - لاحظ أنه لا يتحتم عليك تحديد الخلية لإدخال قيمة لها ، ففي أي مكان يمكنك كتابة التالي .. Range("C1").Value = 56 - حتى أنه يمكنك تغيير قيمة خلية في ورقة أخرى تحددها أنت .. Worksheets("Good").Range("C1").Value = 56 - يمكنك أيضا إدخال قيمة واحدة لعدة خلايا .. Range("A1:B33").Value = 56 - هذا إذا كانت القيمة المدخلة عبارة عن أرقام ، أما إذا كنت تريد إدخال نص في خلية فعليك استخدام الأقواس المزدوجة ( " " ) .. Range("C1").Value = "Nancy" - إذا كنت تريد أن تدخل نصاً داخل أقواس مزدوجة ، فعليك كتابة النص داخل 3 أقواس مزدوجة في الكود .. Range("C1").Value = """Peter""" • Formula - كي تدخل صيغة في خلية فأنت في حاجة إلى الكود التالي .. Range("A1").Select Selection.Formula = "=B8+C8" - لاحظ أن علامتي التساوي في الكود تندرج أحداهما داخل الأقواس المضاعفة وتقوم بكتابة الصيغة تماما كأنك داخل ورقة العمل ، مرة أخرى أنت لست في حاجة لتحديد خلية ثم كتابة صيغة بداخلها .. Range("A1").Formula = "=B8+C8" - أما إذا كتبت الكود التالي .. Range("A1:A8").Formula = "=C8+C9" فإن الصيغة في الخلية ( A1 ) = C8+C9 ، وفي الخلية ( A2 ) = C9+C10 .. وهكذا ، أما إذا كنت تريد تحديد صيغة معينة ثابتة للخلايا فإنه يتحتم عليك استخدام العلامة ( $ ) لإيقاف ديناميكية الصيغ داخل النطاق المحدد .. Range("A1:A8").Formula = "=$C$8+$C$9" 2) تبسيط إرجاع ( الإشارة إلى ) كائن .. Simplifying object references Application.Workbooks(“Book1.xls”).Worksheets(1).Range(“A1”).Value - لست بحاجة إلى وصف الخلية أو المدى الذي تريده وصفا كاملاً كالمثال أعلاه ، فإكسيل يوفر لك بعض الاختصارات التي يمكن أن تفيد وتحسن القراءة وتوفر الوقت والكتابة ، بالنسبة للمبتدئين فإن كائنات التطبيق تفترض دائما إهمال الإشارة إلى كائنات التطبيق لاختصار القسم السابق .. Workbooks(“Book1.xls”).Worksheets(1).Range(“A1”).Value - ولو كان Book1.xls هو المصنف النشط حاليا ، يمكنك اختصار الإشارة إليه أيضا ... Worksheets(1).Range(“A1”).Value - وكذلك لو كانت ورقة العمل الحالية هي الورقة النشطة فإنه يمكن اختصار الإشارة إليها أيضا .. Range(“A1”).Value ** العمل مع الكائنات Working with Objects ** - لقد تعلمت من خلال أمثلة عديدة تعرضت للكائنات وكيفية إعداد خصائصها وأساليب وطرق إجراء أحداثها ، وهناك بعض الأدوات القليلة التي قد تكون هامة للغاية عند التعامل مع الكائنات ، على سبيل المثال (With/End ) - بنية الكود أو هيكله يعمل على تبسيط الكود ونوع بيانات الكائنات ، التي تتيح لك الإشارة إلى كائن موجود أو إنشاء كائن جديد ، ولنلق نظرة على المثال أدناه .. • With/End - أنا دائما أوصي باستخدام هذه التركيبة أو البنية لأنها تجعل برنامج أكثر قابلية للقراءة والفهم ، كما سوف ترى في كثير من الأحيان With/End في هيكل الماكرو المسجل ، أنظر في الكود التالي ... Range(“A1:D1”).Select Range(“A1:D1”).Value = 100 With Selection.Font .Bold = True .Name = “Times New Roman” .Size = 16 End With With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter End With - عند التنفيذ ، يقوم هذا الكود باختيار النطاق A1:D1 من ورقة العمل النشطة باستخدام طريقة أو أسلوب Select() method الخاصة بكائنات النطاق أو المدى ، وفي هذه الحالة فإن خصائص الاختيار الخاصة بكائنات الويندوز قد استخدمت لترجع نطاق من الكائنات ، حيث أن خصائص الخط ترجع كائن الخط المرتبط مع النطاق المختار أو المحدد . - والبيان أو التعبير أو الصيغة يمكن أن تكون بنفس السهولة التي كتبت بدون طريقة Select() وخصائص التحديد ، ويتم الادخال عن طريق خصائص النطاق ليتم إرجاع كائن النطاق المرجو ( على سبيل المثال .. With Range(“A1:D1”).Font ) .. - مرة أخرى داخل البنية ، أي خاصية من خصائص الكائنات يمكن إعدادها ووضعها بدون وصف أو تحديد الكائن في كل سطر من أسطر الكود ، والكائنات التابعة وخصائصها يمكن الوصول إليها أيضا ، كل سطر من أسطر البنية يجب أن يبدأ بنقطة ( . ) متبوعا بخاصية أو اسم كائن ، وبعد ذلك الطريقة Method أو الإحالة . - بعد تعيين الخصائص المرغوبة ، والطرق استخدمت لكائن معين فإننا نختم البنية بـ End With . - ويجب عليك ملاحظة أن With/End With المستخدمة في البناء الثانية استخدمت لتنسيق النطاق المحدد رأسيا وأفقيا ، وبهذه الطريقة يبدو الكود الخاص بك مرتبا مقروءا . - لهذا فإن بنية With/End With تعتبر طريقة واضحة ، ومفيدة بشكل خاص عند استخدام عدد كبير من الخصائص والطرق لمعالجة كائن واحد بالتتابع في البرنامج . 3) نوع بيانات الكائن The Object Data Type . - وأخيرا ، فإن موضوع كائنات إكسيل لن يكتمل بدون مناقشة نوع بيانات الكائنات ، إذا وجدت حالات أو اقتراحات متعددة لنفس الكائن في برنامجك يمكنك استخدام المتغيراتvariables بدلا الإشارة بشكل مستمر عن طريق التحديدات المقيدة ، وأيضا فإن المتغيرات يمكنك أن تسند لها دلالة الأسماء ، مما يجل البرنامج أسهل في تفسيره ، ومتغيرات الكائنات عادة مشابهة لأنواع بيانات كائنات VBA الأخرى وذلك يجب أن يعلن ويوضح في الكود ، على سبيل المثال ... Dim myObject as Object - هنا نعلن عن وجود كائن متغير واسمه (myObject ) ، ومع ذلك فتحديد قيمة لكائن متغير تختلف عن تحديدها لأكثر أنواع البيانات شيوعا ، الكلمة الدليلية Set يجب أن تستخدم لتحديد مهام الكائن المتغير .. Set myObject = Range(“B1:C15”) - هنا تم تحديد النطاق (B1:C15 ) على أنه ما يمثله المتغير (myObject ) تحديدا ، ويمكن بعد ذلك استخدام خصائص الكائن بالطريقة المعتادة .. myObject.Font.Bold = True - وهذا يجعل القيمة في النطاق (B1:C15 ) تعرض بخط أسود غامق ، والأكواد أعلاه يمكن كتابتها بشكل أكثر كفاءة كما يلي .. Dim myRange as Excel.Range Set myRange=Range(“B1:C15”) myRange.Font.Bold = True - ولتكون أكثر كفاءة يمكنك أن تستخدم مكتبة إكسيل ( Excel ) في إعلان المتغير الخاص بك ، فبهذه الطريقة ستضمن سرعة الإشارة إلى بيانات المدى أو النطاق ، وكذلك ضمان عدم حدوث صعوبة في التوصل إلى الإشارات المرجعية في VBA أو أحد الطرق والأساليب Methods الخاصة بالكائن ، وسوف ترى الكثير من الأمثلة عن المتغيرات والكائن والعلاقات بينهم خلال هذه الدورة بإذن الله . ** ألتمس منكم العذر فلم أراجع هذا الجزء جيدا لأنني كنت أود أن أدرج هذا الموضوع اليوم لأهمية وحرصا على الاخوة المتابعين أن يسترسلوا في الربط ، عموما أي أخطاء إن شاء الله أستدركها في النسخة الأخيرة .. إلى اللقاء مع الجزء القادم ( المتغيرات – أنواع البيانات – الثوابت ... )
dayslife قام بنشر فبراير 27, 2009 قام بنشر فبراير 27, 2009 السلام عليكم ورحمة الله وبركاته اخي العزيز ......ابو هاجر المصري .... الف الف شكر على هذا المجهود المتميز والمعلومات القيمة بارك اله فيك وزادك من فضله وقرب اليك كل بعيد تتمناه ونحن في انتظار المزيدمن هذا العطاء الرائع
dayslife قام بنشر فبراير 27, 2009 قام بنشر فبراير 27, 2009 السلام عليكم ورحمة الله وبركاته اخي العزيز ......ابو هاجر المصري .... الف الف شكر على هذا المجهود المتميز والمعلومات القيمة بارك اله فيك وزادك من فضله وقرب اليك كل بعيد تتمناه ونحن في انتظار المزيدمن هذا العطاء الرائع
dayslife قام بنشر فبراير 27, 2009 قام بنشر فبراير 27, 2009 السلام عليكم ورحمة الله وبركاته اخي العزيز ......ابو هاجر المصري .... الف الف شكر على هذا المجهود المتميز والمعلومات القيمة بارك اله فيك وزادك من فضله وقرب اليك كل بعيد تتمناه ونحن في انتظار المزيدمن هذا العطاء الرائع
abed_tdc قام بنشر فبراير 27, 2009 قام بنشر فبراير 27, 2009 السلام عليكم ورحمة الله وبركاته اخي العزيز بارك الله فيك ، وجزاك الله عنا كل خير ونحن ننتظر الكثير منك فى هذا الموضوع الممتاز
أيسم إبراهيم قام بنشر فبراير 28, 2009 قام بنشر فبراير 28, 2009 السلام عليكم أخي أبو هاجر جزاك الله كل خير و جعله في ميزان حسناتك لكن لنا طلب و هو تجميع كل درس تشرحه فى ملف وورد أو اكسيل في نهاية الدرس حتى يكون مرجعا لنا لأني حاولت طباعة الشرح فوجدت اني سأقوم بطباعة الككثير مما لا فائدة منه من ردود و شكر وخلافه. ضع طلبي في عين الاعتبار جزاك الله كل خير
أبو هاجر المصري قام بنشر فبراير 28, 2009 الكاتب قام بنشر فبراير 28, 2009 (معدل) من غير تجميع دروس ولا شئ انا يا جماعة برفع على الموقع الدروس المنتهية عندي بالفعل وكنت هخلي الملفات في آخر درس على أساس أنسقها تمام وأصحح الأخطاء وبعدين أرفعها على الموقع، على العموم هي دي الملفات المرفوعة حاليا نفس اللي على الموقع تماما ، وكل ما انتهي من جزء هرفع ملفه على الموضوع وفي الآخر هراجعهم كلهم واصحح أخطائهم وارفعهم مجموعين باذن الله تعالى ، ودعواتكم اليكم الجزء الاول ___________.rar تم تعديل فبراير 28, 2009 بواسطه أبو هاجر المصري
أبو هاجر المصري قام بنشر فبراير 28, 2009 الكاتب قام بنشر فبراير 28, 2009 الجزء الثاني ____________.rar
أبو هاجر المصري قام بنشر فبراير 28, 2009 الكاتب قام بنشر فبراير 28, 2009 (معدل) سوف ارفع الجزء الثالث ( 3 دروس لاحقا ) تم تعديل فبراير 28, 2009 بواسطه أبو هاجر المصري
أبو هاجر المصري قام بنشر فبراير 28, 2009 الكاتب قام بنشر فبراير 28, 2009 (معدل) السلام عليكم اخي ابو هاجر مشكور على مجهودك الكبير لي ملاحظة على هذا الجزء قد يفهم بشكل خاطي . - السطر الثالث والأخير == يقوم بتحديد شكل الخط إلى أسود من خلال خاصية الخط Font Object وتطبيقها على نطاقين من الخلايا في ورقة العمل النشطة ، والنطاقان هما (B1:C1 ، E1:F1 ) ، ومسموح لك فقط بإرجاع نطاقان اثنين فقط كحد أقصى ، وإضافة نطاق ثالث إلى القوسين يرجع القيمة الخطأ run-time error . للتوضيح ال RANGE (B1:C1 ، E1:F1 ) عبارة عن المدى من الخلابا B1:C1 الى مدى من الخلايا E1:F1 فهو الى وليس و يعن نقدر نقول Range(Start,End) eg وال End اختياري فالموضوع ليس يقبل اثنين او ثلاثة ولكنه من الى فقط فلو وضعت(" Range("A1","Z1 فمعناه من A الى Z وليس AوZ لكن لو كتبت(" Range("A1,Z1 فمعناه A وZ وبهذا ممكن تكتب( "Range("A1,B2,C3:C10,D8,AB5,F3:G8 يعني مدى متقطع ارجو اكون وفقت اوصل معلومة تحياتي هو كلامك مظبوط بس هو كان المقصود ان اي نطاق بين علامتين تنصيص اكثر من مرتين غير مقبول وجرب انت بنفسك ** يعني تحدد أكثر من خلية بالنطاق كالتالي : Range("A13,A18,D14:D18,E21,F14,F9,C11:F11").Select يمشي تمام اخترت اكثر من خلية ونطاقة من الخلايا ضمن التحديد ** وكمان ينفع كده : Range("A1:E9").Select طبعا ده عادي نطاق عبارة عن من الى ** لكن اللي كان مقصود التالي : Range("G20", "G19").Select اختيار مفيهوش مشاكل Range("G20", "G19", "F8").Select هو دة اللي كان القصد انه ميصلحش لانه محدد 3 نطاقات بين 3 اقواس مضاعفة ارجو ان يكون التوضيح وصل ، ولو فيه اي غلط ياريت توضحه لينا تم تعديل فبراير 28, 2009 بواسطه أبو هاجر المصري 1
أيسم إبراهيم قام بنشر فبراير 28, 2009 قام بنشر فبراير 28, 2009 السلام عليكم أخي أبو هاجر جزاك الله كل خير و جعله في ميزان حسناتك شكرا لاستجابتك السريعة نحن منتظرين شروحاتك المنظمة و السهلة و السلسة
mbaha قام بنشر فبراير 28, 2009 قام بنشر فبراير 28, 2009 موضوع شيق ورائع واتمنى ان تستمر فمنذ فتره أبحث على النت لمثل هذا الشرج ولم أجده فى أى منتدى عربى أو أجنبى
أبو هاجر المصري قام بنشر فبراير 28, 2009 الكاتب قام بنشر فبراير 28, 2009 الجزء الثالث كاملا درس 1 + 2 + 3 ____________.rar
الجزيرة قام بنشر مارس 2, 2009 قام بنشر مارس 2, 2009 موضوع أكثر من رائع ومفيد جداً : ) بارك الله فيك أخي أبو هاجر وجعله في ميزان حسناتك آمين
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.