بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 10/25/15 in مشاركات
-
4 points
-
اكتب هذه المعادلة في الخلية AF5 واسحب نزولاً (اذا لم تعكل معك استبدل الفاصلة ب فاصلة منقوطة في المعادلة) =IF(Z5<>0,MAX($Af$4:Af4)+1,"")4 points
-
3 points
-
بارك الله فيك أخي الحبيب سليم وإثراءً للموضوع هذا حل آخر باستخدام معادلة صفيف ، توضع في الخلية I5 معادلة صفيف أي بعد الإدخال يتم الضغط على Ctrl + Shift + Enter معاً =IFERROR(INDEX($D$5:$D$40,MATCH(0,IF(ISBLANK($D$5:$D$40),1,COUNTIF($I$4:I4,$D$5:$D$40)),0)),"") Unique List.rar3 points
-
السلام عليكم أخي عبدالرحمن بدوي اسمح لي أن اطرح سؤال وأجيب عليه السؤال لنفرض أن الجامبو به ثلاث مشاكل ( وليس مشكلة واحدة) المشكلة الأولى على بعد 16 سم من اليمين المشكلة الثانية على بعد 50 سم من اليمين المشكلة الثالثة على بعد 70 سم من اليمين (لاحظ هنا أن بداية الحساب تكون من اليمين ) فما هي أرقام الرولات التي سيكون بها خلل ؟ الجواب بما أنك اخترت الطريقة الأولى سنضع عدد الرولات وطول الحافتين وطول الرول الواحد ثم في الخلية c7 نكتب أول مشكلة وهي 16 ونلاحظ الجواب في الخلية C8 أو C9 لنفترض أن الجواب هو 3 تغير الرقم في الخلية C7 إلى المشكلة الثانية وهي 50 ولنفترض أن الجواب هو 7:8 نغير الرقم في الخلية C7 إلى المشكلة الثالثة 70 ولنفترض أن الجواب هو 11 ( لاحظ أننا غيرنا الرقم في الخلية C7 فقط ولم نغير أي رقم في الخلايا الأخرى لأن الحساب يجري على نفس الجامبو ) إذن سيكون الخلل هو في الرول رقم 3 وبين الرولين 7 و 8 وفي الرول رقم 11 تحياتي3 points
-
الطريقه الثامنه :- تعبئه الكمبوبوكس بدون تكرار باستخدام الحلقه التكراريه For Each و المتغير Collection (طريقه احترافيه) هذه الطريقه طريقه احترافيه من حيث فكرة الكود وكتابته ولكنها غير عملية ومفيده فى البيانات ذات النطاق الكبير نظرا لاعتمادها على عدد 2 حلقه تكراريه مما يسبب البطئ فى ادخال البيانات لو كان نطاق العمل كبير لو عندى شيت زى كدا وفيه بيانات وعايز اقوم بتعبئة الكمبوبوكس بالبيانات المظلله باللون الاخضر ولكن دون تكرارشاهد الصوره انا كل مره بالشرح بكتب الكود وبعدين اشرحه بالتفصيل المره دى انا هشرحه قبل ما اكتبه تعالو نشوف ايه اللى بيحصل ببساطه ايه المطلوب ؟ المطلوب هو ادخال البيانات اللى بالشيت المظلله باللون الاخضر ( A2:B7) اذن لازم اعمل متغير يعبر عن كل خلية بالنطاق فنعمل ايه ؟ Dim data As Range انا دلوقتى عايز العمودين دول يدخلوا فى الكمبوبوكس برضوا فى عمودين انا هعمل ان كل بيانات عمود عباره عن مجموعه بمعنى ايه الخلايا من A2 الى اخر خلية بها بيانات فى العمود A ( دى تكون مجموعه اولى ) والخلايا من B2 الى اخر خلية بالعمود A ( دى تكون مجموعه تانية ) طيب علشان اعلن عن مجموعه يبقى لازم اعمل كدا Dim data As Range Dim group1 As Collection Dim group2 As Collection عرفت متغير وسميته group1 وقلت ان المتغير ده من النوع Collection ( وCollection تعنى مجموعه ) طبعا زى ما اتفقنا انى عايز اعرض عمودين يبقى لازم اعرف كل عمود فى مجموعه فأنا محتاج اعرف متغير لكل مجموعه لذالك عملت group1 و group2 طيب group1 و group2 عباره عن ايه ؟ عباره عن مجموعات جديده اذن لازم استخدم set لتحويل قيمة المتغير الى كائن طيب أزاى ؟ بالشكل ده شوف الكود Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection حولت قيمة المتغير group1 الى كائن يساوى مجموعه جديده وايضا حولت قيمة المتغير group2 الى كائن يساوى مجموعه جديده ********************************************************************************************* محلوظه مهمه جدا انا عملت مجموعتين لاننا عايزين نقوم بتعبئة الكمبوبوكس ببيانات العمودين A و B لكن لو حضرتك عايز عمود A فقط اذن تعرف مجموعه وحده فقط يعنى على حسب عدد الاعمده هتعرف مجموعات *********************************************************************************************** طيب دلوقتى عملنا بالكود مجموعتين عايزين ندخل فيهم البيانات بقى اللى بالشيت فنعمل ايه ؟ هنستخدم الحلقه التكراريه For Each ونسمى الحلقه باسم Data ونقول ان الحلقه تبدأ من A2: الى اخر خليه بها بيانات وطبعا اتكلمنا بالتفصيل قبل كدا عن الحلقه For Each راجع الدرس السابق تعالو نشوف الكود وصل لوين ؟ Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) Next data كدا عملنا الحلقه والحلقه هتلف من خلال Next بس كدا هتلف على الفاضى مجرد بس هتمر على الخلايا اللى بالنطاق وتقولها السلام عليكم ان مش عايز سلامات وطيبون دلوقتى انا عايز استفيد من لفتها ومن عملها عايز اقولها ان group1 المجموعه الاولى تساوى العمود A اللى هو Data وعايز ان group2 المجموعه الثانيه تساوى العمود B اللى هو بجوار الـ Data ( من خلال offset) فالكود هنضيف فيه ايه ؟ شوف الكود Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data group2.Add data.Offset(0, 1).Value Next data قلنا ان group1 قم بأضافه data ( اللى هى خلايا العمود A) من خلال Add وكذالك group2 قم بأضافه خلايا العمود B واحد هيقولى بس كدا هياخد كل البيانات اللى بالنطاق حتى وان كانت مكرره وانت قلتلى ان الطريقه دى مش هيكرر البيانات فى الكمبوبوكس هو انت بتضحك عليا هقوله يا عم اصبر شوية انا عايز اديك الطريقتين لو عايز البيانات زى ما هى حتى وان كانت مكررة يبقى الكود السابق كدا تمام ولكن لو مش عايز تكرار بسيطه جدا هنعمل اضافه صغيره جدا جدا جدا شوف الكود On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data اللى مركز معايا وصاحى هيعرف ايه اللى تم اضافته تم اضافه السطر الاول وهو عباره On Error Resume Next وتعنى عند حدوث اى خطا انتقل الى السطر التالى واحد هيقولى طيب وهو هيحصل خطأ ليه هو مش الكود مكتوب صح هقوله لان انت طلبت عدم تكرار الاسماء فالكود عندما يصادف اسم مكرر هيتوقف ليتم تبليغ حضرتك فعلشان كدا كتبتله هذه العباره انه مش عايزه يبلغنى وينتقل الى السطر التالى ويكمل الحلقه بتاعته دون توقف وتم اضافه هذا الجزء البسيط فى السطر group1.Add data, data.Text الجزء المظلل باللون الاحمر هى الاضافه البسيطه اللى تمنع التكرار طيب كدا حلو قوى لحد دلوقتى تم تعبئة كل مجموعه المجموعه الاولى بالعمود A والمجموعه الثانيه بالعمود B ازاى بقى ندخل بيانات كل مجموعه فى اعمدة الكمبوبوكس اذن هستخدم الخاصيه With واقفالها بــ End with للاشاره الى الكمبوبوكس المراد تعبئته With Me.ComboBox1 End With هنا ياتى دور الحلقه التكراريه التانيه اللى مهمتها تلف على كل محتويات المجموعه ودخلها فى اعمدة الكمبوبوكس الحلقه هى For Next للمرور على كل عناصر المجموعه من رقم 1 اللى هو اول عنصر بالمجموعه الاولى الى اخر عنصر بالمجموعه الاولى On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With AddItem. يشير الى العمود الاولى للكمبوبوكس وقمنا بتعبئة عناصر المجموعه group1 (List(.ListCount - 1, 1. يشير الى العمود الثانى للكمبوبوكس وقمنا بتعبئة عناصر المجموعه group2 يبقى تحديد وقت تنفيذ الكود وزى ما اتفقنا قبل كدا ان وقت تنفيذ الكود انت اللى بتحدده ولكن على سبيل المثال فى حدث فتح الفورم Private Sub UserForm_Initialize() On Error Resume Next Dim data As Range Dim group1 As Collection Dim group2 As Collection Set group1 = New Collection Set group2 = New Collection For Each data In Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row) group1.Add data, data.Text group2.Add data.Offset(0, 1).Value Next data With Me.ComboBox1 For i = 1 To group1.Count .AddItem group1(i) .List(.ListCount - 1, 1) = group2(i) Next i End With End Sub والى لقاء اخر من حلقات سلسلة علمنى كيف اصطاد وطريقه اخرى من طرق تعبئة الكمبوبوكس انتظرونا تقبلوا تحياتى3 points
-
السلام عليكم اخى الكريم يمكنك استخدام المعادلة التالية =IFERROR(INDEX(الاساسية!A:A;SMALL(IF(الاساسية!$B$2:$B$16=LOOKUP(2;1/($B$7:$B7<>"");$B$7:$B7);ROW(الاساسية!$B$2:$B$16));C7));"") فقط ضعها فى الخلية D7 ولا تنسى CTRL+SHIFT+ENTER ثم قم بسحبها لاسفل اليك المرفق جدول المراقبة اليومي++_2.rar2 points
-
أخى العزيز / سليم تحية طيبة وبعد ،،،،،، سامحنى على ذلك. فذلك أول موضوع لى بعد تعديل الموقع. خالص شكرى وتقديرى أخوك عيد مصطفى2 points
-
2 points
-
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله .....أعزائي أعضاء المنتدى ؛ أضع بين أيديكم الإصدار الثالث من ( برنامج متابعة الدخل و المصروفات ) في هذا الإصدار قمت بتحديث وتطوير صفحات التقرير لسجلات الوارد والصادر وهيكلتها من الأساس مع إضافة الألوان المتدرجة ضمن التنسيق الشرطي وفي البنية البرمجية للعناوين المتغيرة حيث إعتمدت الدوال الشرطية ( if ) بدلا من التنسيقات الشرطية والكثير من الأفكار التي لم تكن في الإصدارات السابقة؛ ولعل أبرز مايتميز بههذا الإصدارهو خدمة التعرف على السجلات التي تتجاوز مبلغ الحد الأقصى للمصروفات؛ الذي يكتب في صفحة التقرير التفصيلي، كما أصبحت إمكانية إستخدام أكثر من عملة أفضل من حيث كثرة الخيارات وشمولية التحكم في صفحة التقرير التفصيلي مع حرية الفرز والتفكيك بين مختلف الحسابات الأخرى - و في هذه النسخة أيضا حاولت وبقدر الإمكان أن أقدم شرح وافي لجميع مكونات البرنامج - وفي العادة هذا الأمر لايتم إلا عن طريق الشرح المصور وهذا طبعاً يجعل حجم البرنامج كبير جدا نظراً لإرفاق الصور، لذلك نرى الكثير من المصممين والمبرمجين أحيانا يكتفون بوضع شروحاتهم المصورة بشكل منفصل عن البرنامج في المنتديات أوفي المواقع وهذا أمر جيد لكن يصعب على المستخدم الرجوع إليه بشكل سريع، لذلك قررت أن أشرح البرنامج و لو بشرح نصي بحيث يكون هذا الشرح وافي وشامل وفي نفس الوقت مرفق مع البرنامج بشكل دائم وهذا لايتطلب حجم كبير رغم أن هذا الشرح أخذ مني الكثير من الوقت مضافا إلى وقت تصميم البرنامج في حد ذاته ؛.... أخي الكريم … صحيح البرنامج بسيط من حيث واجهته وبقية شاشاته لكنه مزود ومعد للقيام بكثير من الأفكار الخدمية والمحاسبية الهائلة والتي يمكن للمستخدم أن يطلع عليها ويعرف تفاصيلها من خلال قرائة الشروح المرفقة في (صفحة التعليمات - حول About ) والتي يمكنك الإنتقال إليها من خلال ضغط زرالتعليمات الموجود في جميع أقسام البرنامج ؛.... مرة أخرى أأكد تميز هذه النسخة عن سابقتها، وإذا كنت من مستخدمي الإصدارات السابقة؛ فحتماً سوف تشعر بتلك الفروقات. وفي حال رغبتك إغتناء الإصدار الثاني يمكنك الرجوع إليه على هذا الرابط إضغط هنا أتمنى لكل من يغتني هذا البرنامج التوفيق والإستمتاع به راجياً عدم فك حمايته و عند وجود أي تعليق أو ملاحظة على البرنامج أو في حال رغبة الإخوة المحترفين لأي نص برمجي أو صيغة للدوال الشرطية - أرجو كتابة ذلك في المنتدى أو مراسلتي على الإيميلات الموجودة أدناه . أخي العزيز .... إذا كنت ترى أنك تستفيد من البرنامج فإن طلبي الوحيد والأكيد هو أن لاتنساني من صالح الدعوات - أخوكم - أبو أحمد بن الشيخ محمد اللويم . السعودية - الأحساء ، قرية الشعبة HU1977@HOTMAIL.COM h.aboahmad@gmail.com برنامج متابعة الدخل والمصروفات_الإصدار الثالث.zip2 points
-
2 points
-
اخى واستاذى الحبيب / حسام عيسى الله يبارك فى حضرتك وفقنا الله واياكم لما فيه الخير ................ استاذى الحبيب / محمد حسن المحمد سأكتفى بقول : إنى احبك فى الله جزاك الله كل الخير على هذا الدعم المستمر ............... خالص تحياتى وتقديرى واحترامى2 points
-
بسم الله الرحمن الرحيم -----------السلام عليكم و رحمة الله وبركاته (( كلمة شكر أوجها لإدارة المنتدى والمشرفين )) وكل القائمين على هذا الصرح العظيم على الثقة اللي منحوني اياها وترقيتي ((عضو محترف )) بعد ما كنت عضو منحرف أشكر الإدارة على هذه الترقيه الذي اعتبرها شرف لي .. ووسام على صدري.. وأتمنى أن أكون في محل الثقة .... بمساعدة اخواني المشرفين والاعضاء معا يداً بيد لنبني منتدى راقي و مبدع . وإن شاء الله أكون عند حسن ظنكم جميعاً. وشكرا تحياتي لكم ادارة ومشرفين واعضاء ,, فائق حبي واحترامي .. وبيقولوا تستحقها عن جدارة مش عارف علي ايه ولا هو جر رجل يعني هههههه1 point
-
1 point
-
1 point
-
الف مليون شكر هذا هو المطلوب تمام التمام استاذنا الله يبارك فى حضرتك تقبل احترامى وتقديرى1 point
-
اخى الحبيب / يــاسر العربى مبارك عليكم الترقية المستحقة ... الى مزيد من التقدم والرقى ان شاء لله واشارك حضرتك الشكر والتقدير للمنتدى وأساتذته والقائمين عليه على هذه الثقة الغالية التى منحونى اياها وفقنا الله جميعاً لما فيه الخير ... والسلام عليكم .1 point
-
السلام عليكم ورحمة الله وبركاته اعزائي في المنتدي هذا عمل قمت به بمساعدة اساتذه من المنتدى وخاص الاستاذ ياسر خليل أبو البراء وطبعا كل باقي المعادلات هي من المنتدى انا فقط صممت هذا البرنامج طريقة عمله والمراد منه اضعه بين ايديكم ليستفيد منه من له حاجه به وهو كالتالي يتالف الملف من عدة صفحات 1- ATTENDANCE وهذه الصفحة او الشيت هي لادخال ساعات الدخول والخروج في الخالية المسمى IN لساعة الدخول والخليه المسمى OUT لساعة الخروج وحرف A في حالة الغياب وحرف S في حالة المرض وحرف V في الاجازاة وحرف F لليوم الجمعة ويوم الجمعه يتم تغير التنسيق عن تغير التاريخ في خلية G3 ويكتب الشهر ثم اليوم يعني (10/1/2015) وهكذا يتم تغير التنسيق تلقائي وهذا بالنسبة للشيت الاول والثاني 2- Daily Site وهذا الشيت خاصة فقط للطباعة فقط عليك تغير تاريخ الشهر من اجل التنسيق لليوم الجمعة من خليه H3 3- Report on employee وهذا الشيت هو لجلب معلومات عن الموظف وذلك عن طريق كتابة اسم الملف في الخليه B3 فيتم احضار كافة المعلومات عنه 4- Number trades in the project وهذا الشيت يعطيك عدد اصحاب كل مهنه في المشروع والملف تم اخفاء ورقة هي ورقة 1 وفيها بيانات للاسترجاعها عن طريقة ايقونة التنسيق واظهار ورقة ولا يتمت تغير فيه اي شيء والملف محمي برقم 123 ومن لديه افكار اضافية فلا يقصر علينا بها وله منا جزيل الشكر برنامج حظور وانصراف.rar1 point
-
1 point
-
أخي الحبيب خالد الرشيدي عمل رائع ومتميز كعادتك دائماً .. تقبل وافر تقديري واحترامي1 point
-
1 point
-
اخى الكريم عفوا لاحظت خطا ما فى الكود السابق الكود السابق بعد 10 سجلات سيقوم بترقيم الاتى (A-11 / A-12 ) واعتقد ان هذا ليس مرادك ويمكنك استبداله بالكود التالى Dim f As String f = DCount("id", "mytable") If f >= 10 Then id = "A-" & (DCount("id", "mytable")) - 10 + 1 Else id = DCount("id", "mytable") + 1 End If1 point
-
شكرا لك اخى مارد على المجهود الرائع شكرا لك وشكرا لادارة المنتدى1 point
-
تفضل الحل مع بعض التنسيقات القائمة المنسدلة مطاطة (تستجيب لأي تعديل أو زيادة في الاسماء و لا تطهر الاسم المكرر الا مرة واحدة) تستطيع زيادة البيانات مع اسماء محتلفة report.zip1 point
-
أخي الكريم مصطفى في ورقة العمل المسماة "جدول لوحة إعلانات" ضع المعادلة التالية في الخلية E7 ثم قم بسحبها =IFERROR(INDEX(Table1[المكان],MATCH('جدول لوحة اعلانات'!$D7,Table1[المعلم],0)),"") إذا لم تعمل معك المعادلة قم باستبدال الفاصلة العادية في المعادلة بفاصلة منقوطة (ومتنسناش بنص كيلو أوطة .. عشان غالية اليومين دول ) تقبل تحياتي1 point
-
اخي الحبيب خالد الرشيدي الف مبروك علي الترقية بس متخليش الفرحة تنسيك انك ادبست يامعلم وراك شغل هنا اللي بيجتهد بيحطوا له شغل اضافي ومسئولية زيادة ودي طبيعة العمل عموما كل ما يزيد منصبك تزيد مسئوليتك وربنا يجعلك دائما من المتقدمين ودائما فياض بالعطاء تقبل مروري المتواضع ياسر العربي1 point
-
اعتمادا على الماكرو المنشور في هذه الصفحة https://msdn.microsoft.com/en-us/library/office/ff195646.aspx وبعد إدخال بعض التعديلات عليه، جرّب وحدتَي الماكرو أدناه لتباعد الأحرف (الأولى للزيادة والثانية للإنقاص، مع العلم أن الوحدتين هما للتباعد لا للموضع). ملاحظة: عليك اختيار النص قبل تشغيل الماكرو. إن نسيت تحديد نص وشغّلت الماكرو، فستظهر رسالة بالإنكليزية تطلب منك تحديد النص أولا. Sub IncreaseFontSpacing() If Selection.Type = wdSelectionNormal Then Selection.Font.Spacing = Selection.Font.Spacing + 0.1 Else MsgBox "You need to select some text." End If End Sub Sub DecreaseFontSpacing() If Selection.Type = wdSelectionNormal Then Selection.Font.Spacing = Selection.Font.Spacing - 0.1 Else MsgBox "You need to select some text." End If End Sub1 point
-
السلام عليكم لا حاجة للرسم البياني هذه العملية لها طريقتان في الحساب كما هو موضح في المرفق فإيهما كان صحيحا فاعتمد عليه ولكن يجب أن تجرب المرفق وإن ظهر أي خلل يمكن أصلاحه تنبيه1/ الخلايا الصفراء في المرفق بها معادلات تنبيه2/ إذا كانت النتيجة بهذا الشكل 3 فهذا يعني أن الخلل في الرول رقم 3 إذا كانت النتيجة بهذا الشكل 2:3 فهذا يعني أن الخلل واقع بين الرولين 3 و 2 أي في مكان القطع تحياتي تحياتي repositioning1.rar1 point
-
اخي الفاضل محمد الريفى تسلم يداك معلومات ودروس هامة خالص تحياتي وتقديري1 point
-
1 point
-
'فرضنا متغير f Dim f As String 'قلنا ان المتغير يساوى مجموع سجلات حقل الترقيم f = DCount("id", "mytable") 'اذا كان المتغير اكبر من 10 سيقوم بادراج الرمز A وتستطيع ان تغيرها بعد ذلك الى 10000 If f >= 10 Then id = "A-" & DCount("id", "mytable") + 1 Else id = DCount("id", "mytable") + 1 End If الحدث موجود بعد تحديث مربع نص التاريخ فقط اكتب تاريخ الفاتورة وسيتم الترقيم ترقيم رموز.rar1 point
-
1 point
-
اخوتى الاعزاء اليكم المرفق من جديد وآسف على التأخير ايام المراقبة.rar1 point
-
ما شاء الله تبارك الله عمل ومجهود أكثر من رائع أخى الحبيب أ / محمد الريفى زادك الله من العلم الكثير والكثير وجزيت خيرا الجزاء على كل ما تقدمه من علم يستفاد منه الجميع تقبل خالص تحياتى وتقديرى1 point
-
أخي الحبيب زيزو الملف لا يتم تحميله يرجى إعادة رفعه من جديد تقبل تحياتي1 point
-
السلام عليكم اساتذتي الافاضل ورحمة الله وبركاته اولا الله لايحرمنا من شخصكم الكريم والطيب يارب سائلا الله عز وعلا ان يمن عليكم وعلى عوائلكم بالصحة والعافية والستر في الدنيا والاخرة يارب ثانيا ما اجملها من حلول لاساتذة نذرت نفسها لخدمة اخوانها وكل من يطلب المساعدة بدون استثناء في هذا المنتدى الاكثر من رائع ادامه الله علينا جميعا وحفظ مؤسسيه واساتذته واعضائه وزواره جميعا يارب يارب بارك الله فيكم اساتذتي الافاضل على هذه الحلول القيمة وجميعها تلبي المطلوب1 point
-
اي مشكوووورررر اخي ابو سليمان لمرورك الكريم اثابك الله وانار طريقك بالعلم النافع بس فيه سؤال بيطرح نفسه ??مين ابو عماار ايى شخص اسمة ياسر يطلق عليه ابو عمار " عمار بن ياسر " او ل شهيد بالاسلام1 point
-
جميل جداً أخي الحبيب سليم والأجمل الإعلان عن المتغيرات .. بالنسبة للمتغير Integer قرأت في أكثر من مصدر أنه من الأفضل الإعلان عنه من النوع Long (إذ أنه حتى لو تم الإعلان عنه من النوع Integer فإن الفيجوال بيسك يقوم بتحويله إلى Long) هذا والله أعلى وأعلم1 point
-
اخي ياسر اثراء للموضوغ اليك هذا الكود تستطيع ان تحدد اكثر من صف و اكثر من عامود للنكرار Sub repet() Dim myrg As Range Dim t As Integer Set myrg = Application.InputBox("Enter your data", Type:=8) t = Application.InputBox("Enter your number", Type:=1) myrg.Copy ActiveCell.Resize(t * myrg.Rows.Count, myrg.Columns.Count) End Sub1 point
-
أخي الكريم كريم إليك الكود التالي عله يفي بالغرض Sub CopyData() Dim Rng As Range, xValue, xNum Dim InputRng As Range, OutRng As Range On Error Resume Next Set InputRng = Application.Selection Set InputRng = Application.InputBox("حدد النطاق المراد تكراره", "Officena", InputRng.Address, Type:=8) Set OutRng = Application.InputBox("حدد الخلية التي تريد وضع النتائج بها", "Officena", Type:=8) Set OutRng = OutRng.Range("A1") For Each Rng In InputRng.Rows xValue = Rng.Range("A1").Value xNum = Rng.Range("B1").Value OutRng.Resize(xNum, 1).Value = xValue Set OutRng = OutRng.Offset(xNum, 0) Next End Sub قم بتنفيذ الكود .. حدد النطاق المراد تكرار قيمه (على أن يكون في الخلية المجاورة عدد مرات التكرار) .. حدد أول خلية في نطاق النتائج .. انتهى Repeat Cell Values X Times.rar1 point
-
السلام عليكم صراحة ـ لست مع فكرة اجبار العضو على المشاركة ليستطيع التحميل ـ على الرغم من انها كما تفضلت متبعة و منتشرة و لها مزاياها - فنحن على عكس الكثير من المواقع التي تسعي لزيادة عدد الردود نقوم دوريا بتنقيح المواضيع و حذف المشاركات التي ليست بها اضافة قبل ارشفة الموضوع. و الهدف من ذلك ان لا يضيع وقت القاريء لاحقا في قراءة ما لا يلزمه و يصعب الوصول للمشاركات الهامة في وسط العديد من المشاركات. التفاعل نعم مفيد بصفة عامة ، و لكن نريد نوعية معينة فقط من التفاعل الفاعل المفيد.1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته الحمد لله على عودة الموقع من جديد نكمل معكم ان شاء الله ما بدأناه فىى هذا الموضوع وهو طريقة انشاء شريط ادوات بواسطة Xml وقد تعلمنا كيفية اضافة تبويب Tab جديد وكيفية اضافة المجموعات Groups الى التبويب Tab واليوم ان شاء الله نتعلم كيفية اضافة الادوات كالازار وغيرها الى التبويب كان هذا هو الكود الذى وصلنا اليه فى نهاية الموضوع السابق <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="customTb" label="MY NEW TAB" visible="true"> <group id="dbGroup" label="’My Group"> </group> </tab> </tabs> </ribbon> </customUI> وهو يقوم بانشاء تبويب جديد واضافة مجموعة جديدة بداخله وكما لاحظنا فان جميع الوسمة متداخله ف ribbon بداخلها Tab ثم Group واخيرا بداخله الاوسمة الخاصة بالادوات عندما نقوم باضافة ادوات نعرف الاداة كما يلى <سمات الاداة معرف الاداة اسم الاداة/> اسم الاداة هو تحديد اذا كانت زر او خانة اختيار او قائمة منسدلة وغيرها ثم معرف الاداة وينقسم معرف الاداة الى قسمين اما معرف مايكروسوفت اوفيس او معرف خاص فالمعرف الخاص بالاوفيس هو الادوات الموجودة فى الاوفيس اصلا كالنسخ واللصق والمحاذاة وغيرها اما ان اردنا انشاء اداة خاصة بنا نستخدم معرف خاص نختاره كيفما نشاء ثم سمات الاداة وهى باختصار تشبه خصائص الاداة كالحجم والتسمية التوضيحية والصورة وغيرها وهذه اكثرها استخداما Enabled تستخدم لمعظم الادوات Visible اظهار او عدم اظهار ID/IDMso المعرف الخاص بالعنصر Image/ImageMso الصورة الخاصة بالعنصر InsertAfterMso لتحديد مكان العنصر بعد عنصر آخر InsertBeforeMso لتحديد مكانه قبل عنصر آخر Lable التسمية التوضيحية Size الحجم والآن بعد هذا الطلاع على طريقة تعريف الاداة بشكل عام دعونا نعرف تفاصيل اكثر بالتطبيق العملى <button idMso="Cut" label="My Cut Button"/> هذا هو كود انشاء زر قص Cut وكما قلت سابقا اسم الاداة button وبعد ذلك المعرف وهنا استخدمنا المعرف الخاص بالاوفيس Cut ونستخدم هذه الطريقة عندما نريد ادراج اى من الادوات الموجودة بالاوفيس والاكسيس ولمعرفة المعرف الخاص باى اداة مثلا التصدير لاكسيل افضل طريقة هى كما بالصورة نجد ان المعرف مكتوب بين قوسين وهو فى هذه الحالة ExportExcel ويجب الانتباه لحالة الاحرف <button idMso="ExportExcel" label="Export To Excel By XML" /> وكما قلنا سابقا ان هناك العديد من الخصائص او السمات التى نقوم بتمريرها للعنصر وجيمعها اختيارى ما عدا ال ID فاذا ادخلنا مثلا الكود بهذه الطريقة دون تحديد خاصية Size لهذا الزر نلاحظ ظهوره بالشكل الافتراضى الصغير وكذلك صورة الامر Cut الافتراضية وهو هكذا اذا اردنا ان تجعل حجمه يظهر بشكل كبير علينا ان نقوم باضافة السمة Size الى الكود ليصبح بهذا الشكل والخاصية size= اما normal كما فى الصورة السابقة او large كما فى الصورة التالية <button idMso="Cut" label="My Cut Button" Size="large" /> وكذلك الخاصية Enabled <button idMso="Cut" label="My Cut Button" Size="large" enabled="false" /> واذا اردنا تغيير خاصبة Visible اخفاءالامر cut نكتب كما يلى <button idMso="Cut" visible="false" /> اما الخاصية InsertBeforeMso و insertAfterMso فتكون كالتالى <button idMso="ExportExcel" label="Export For EXC" size="large" insertBeforeMso="Cut" /> فهذا الكود يقوم بانشاء زر التصدير لاكسيل ويضعه قبل الامر Cut الذى انشاناه سابقا وان اردنا ان يضعه بعده فنغير InsertBeforeMso الى insertAfterMso وهكذا اعتقد اننا قد انتهينا من شرح اهم الخصائص فى الازرار وكيفية استخدامها وكيفية انشاء زر يقوم بمهمة مضمنة فى الاوفيس اما بالنسبة لعمل زر يقوم بتنفيذ امر مايكرو فيكون الكود هكذا <button id="Msg" label="Hello" Size="large onAction="اسم الماكرو" /> و onAction هو عبارة عن سمة نكتب بها ما يحدث عند التفاعل مع الاداة كالضغط على الزر فى هذه الحالة ويصبح الكود النهائى حتى الآن <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="customTb" label="MY NEW TAB" visible="true"> <group id="dbGroup" label="’My Group"> <button idMso="Cut" label="Cut" size="large" /> <button idMso="ExportExcel" label="Export For EXC" size="large" insertBeforeMso="Cut" /> <button id="RunMacro" label="Open" size="large" imageMso="ViewsFormView" onAction="OpenForm"/> </group> </tab> </tabs> </ribbon> </customUI> وان شاء الله فى الدرس القادم نتحدث عن ربط الازرار بالماكرو والكود بتفصيل اكثر مرفق لكم القاعدة وبها ما شرحته Ribbon Customizations.rar1 point
-
1 point
-
بسم الله الرحمن الرحيم لنفرض ان شخصا" بداية عمله كان في 6 / 5 / 2010 ونريد حساب خدمته بالسنوات حيث الى 6/5/2011 يكون اتم سنة واحدة والى تاريخ 6/5/2012 اكمل سنتين والى تاريخ 6/5/2013 اكمل 3 سنوات لتاريخ اليوم مثلا" 31 /1 / 2014 هو لم يكمل 4 سنوات بعد ,,,, فلماذا عند استخدام الكود DateDiff("yyyy";[t_date];Date()) تظهر النتيجه 4 علما " ان t_date أقصد به تاريخ بداية العمل ما الحل في هذه الحاله ....1 point