بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 10/25/15 in all areas
-
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
-
أبدأ بحمد الله أولا وأخيرا على ما انعم ووفق وأصلي واسلم على الرحمة المهداة والسراج المنير نبينا محمد وعلى آله وصحبه وسلم ... وبعد كل عام وأنتم بخير وأعاد الله علينا أيامه الكريمة بالخير واليمن والبركات في موضوع اخي الكريم ابو عبدالرحمن وطلبه لواجهة برنامج لتسجيل الأطفال لرياض الاطفال او الروضة علي هذا الرابط فضلت ان تكون في مشاركة منفصلة لتعميم الفائدة ان شاء الله تعالى بشكل بسيط وجذاب صدقة جارية لفارس من فرسان منتدانا أوفيسنا أخي ومعلمنا عماد الحسامي رحمة الله عليه ورحم جميع المسلمين وغفر لهم الأحياء منهم والأموات حتي لا أطيل عليكم شرح مبسط للبرنامج أترككم لتجربة البرنامج في المرفقات وارحب بمشاركتكم في اجراء اية تعديلات وفقنا الله واياكم للصالحات مع تحياتي // ضاحي الغريب KG_Dahy.rar الان الاصدار الثاني علي الرابط التالي اضغط هنا1 point
-
1 point
-
اخي وليد لقد جهزت لك الملف للرفع الورقة محمية لذا لم استطع اضافة زر للماكرو اليك الكزد لهذاالغرض يمكنك نسخه في موديل جديد و تعيين زر له او تشغيل الماكرومن الملف المرفق Sub split_in_tow_columns1() Dim ws1, ws2 As Worksheet Dim Myrange As Range Dim lr, My_nb_rows As Integer Dim c, k As Integer k = 5 c = 3 Set ws1 = Sheets("ATTENDANCE"): Set ws2 = Sheets("Number trades in the project") lr = ws1.Cells(Rows.Count, "f").End(3).Row Set Myrange = ws1.Range("f9:f" & lr) ws2.Range("c5:c26").ClearContents ws2.Range("f5:f26").ClearContents For i = 9 To lr t = Application.CountIf(ws1.Range("f5:f" & i), Range("f" & i)) If t = 1 Then Cells(i, 6).Copy ws2.Cells(k, c) k = k + 1 If k > 26 Then k = 5: c = 6 End If Next End Sub برنامج حظور وانصراف salim.zip1 point
-
تحياتى لك أخى الفاضل جزاكم الله خيرا لقد وضحت الموضوع ببساطة انا نفسي لم اكن اتخيلها جزاكم الله خيرا ويرجى من الإدارة اغلاق الموضوع1 point
-
اخى الحبيب / يــاسر العربى مبارك عليكم الترقية المستحقة ... الى مزيد من التقدم والرقى ان شاء لله واشارك حضرتك الشكر والتقدير للمنتدى وأساتذته والقائمين عليه على هذه الثقة الغالية التى منحونى اياها وفقنا الله جميعاً لما فيه الخير ... والسلام عليكم .1 point
-
أخى الحبيب / ياسر خليل تحية طيبة وبعد ،،،،،، أشكرك جزيل الشكر على ردودك اللبقة والرصينة هذة وليس هنالك أى داعى للإعتذار إطلاقاً بل أنا الذى أعتذر لك ، وأيضاً أعتذر إن كنت قد أسأت الظن بأحد. خالص شكرى وتقديرى أخوك عيد مصطفى1 point
-
ألف مبروك الترقية لخبير معتمد أخي الحبيب خالد الرشيدي فأنت والله تستحقها عن جدارة بارك الله فيك ولا حرمنا الله منك أبداً1 point
-
استاذى الحبيب / أبو البراء لكم يسعدنى دائماً مرور حضرتك العطر تقبل خالص تقديرى واحترامى1 point
-
اخي الغالي سليم حاصبيا اعمل الخير وارميه للبحر ولا تنتظر الشكر من احد هذا اراه الافضل لان مساعدة الناس لوجه الله افضل من انتظار رد المساعدة وتقبلو مروري المتواضع ياسرالعربي على فكرة حطيتلك اعجاب فوق1 point
-
1 point
-
1 point
-
1 point
-
تفضل الحل مع بعض التنسيقات القائمة المنسدلة مطاطة (تستجيب لأي تعديل أو زيادة في الاسماء و لا تطهر الاسم المكرر الا مرة واحدة) تستطيع زيادة البيانات مع اسماء محتلفة report.zip1 point
-
أخي الكريم مصطفى في ورقة العمل المسماة "جدول لوحة إعلانات" ضع المعادلة التالية في الخلية E7 ثم قم بسحبها =IFERROR(INDEX(Table1[المكان],MATCH('جدول لوحة اعلانات'!$D7,Table1[المعلم],0)),"") إذا لم تعمل معك المعادلة قم باستبدال الفاصلة العادية في المعادلة بفاصلة منقوطة (ومتنسناش بنص كيلو أوطة .. عشان غالية اليومين دول ) تقبل تحياتي1 point
-
السلام عليكم الفكرة جميلة وشكلها اقوى من حماية الهارد .... لكن اين اضع رقم اللوحة الام التي اريد المف ان يعمل عليها ياريت لو تضع فيديو للطريقة او صور للشرح الملف لم يعمل عندي في الاول ولكن عند رفع مستوى الامان واغلاق الملف ثم ارجاع مستوى الامان منخفض جلب رقم السريل للوحة الام لجهازي هل هذة فكرة عمل الملف ارجو التوضيح .... فلقد التبس بي الامر وشكراً مقدما1 point
-
اخي الحبيب خالد الرشيدي الف مبروك علي الترقية بس متخليش الفرحة تنسيك انك ادبست يامعلم وراك شغل هنا اللي بيجتهد بيحطوا له شغل اضافي ومسئولية زيادة ودي طبيعة العمل عموما كل ما يزيد منصبك تزيد مسئوليتك وربنا يجعلك دائما من المتقدمين ودائما فياض بالعطاء تقبل مروري المتواضع ياسر العربي1 point
-
كلنا نعرف الدوال vlookup و index و match وفوائدهم في قراءة قيم الجداول.. ولكن ماذا لو طُلب منك أن تتعامل مع قيم في عمود في جدول معين وأن تجمع الخلايا الغير فارغة في خانات العمود.. وهذا العمود متغير وقابل للتوسعة.. طبعا استعنت بدالة offset و match .. أترككم مع المثال بانتظار رأيكم بالموضوع dynamic column.rar1 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 point
-
64 _ برنامج تسجيل بيانات لروضة أطفال _ الاستاذ / ضاحى الغريب 65 _ أعمال العلامه القدير الراحل عماد الدين الحسامى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
-
ايه النشاط ده كله يا عم ياسر امسك الخشب ولا نقول بابركة الترقية تحياتي1 point
-
حلول ممتازة اساتذتى الكرام .... جزاكم الله خيراً واسمحوا لى بتقديم احد الحلول الاخرى إثراءاً للموضوع يوم المراقبة =INDEX(ورقة2!D7:D11;SMALL(IF(ورقة2!E7:G11=L8;ROW(ورقة2!E7:G11)-ROW(ورقة2!E7)+1);1)) مكان المراقبة =INDEX(ورقة2!E6:G6;SMALL(IF(ورقة2!E7:G11=L8;COLUMN(ورقة2!E7:G11)-COLUMN(ورقة2!E7)+1);1)) هذه معادلات صفيف بعد كتابتها يتم الضغط على CTRL+SHIFT+ENTER وليس ENTER فقط واليك المرفق ايام المراقبة.rar1 point
-
اخوتى الاعزاء اليكم المرفق من جديد وآسف على التأخير ايام المراقبة.rar1 point
-
السلام عليكم اساتذتي الافاضل ورحمة الله وبركاته اولا الله لايحرمنا من شخصكم الكريم والطيب يارب سائلا الله عز وعلا ان يمن عليكم وعلى عوائلكم بالصحة والعافية والستر في الدنيا والاخرة يارب ثانيا ما اجملها من حلول لاساتذة نذرت نفسها لخدمة اخوانها وكل من يطلب المساعدة بدون استثناء في هذا المنتدى الاكثر من رائع ادامه الله علينا جميعا وحفظ مؤسسيه واساتذته واعضائه وزواره جميعا يارب يارب بارك الله فيكم اساتذتي الافاضل على هذه الحلول القيمة وجميعها تلبي المطلوب1 point
-
اي مشكوووورررر اخي ابو سليمان لمرورك الكريم اثابك الله وانار طريقك بالعلم النافع بس فيه سؤال بيطرح نفسه ??مين ابو عماار ايى شخص اسمة ياسر يطلق عليه ابو عمار " عمار بن ياسر " او ل شهيد بالاسلام1 point
-
أظن أنه يكفي أن نأخذ جملة من الماكرو الثالث ونضعها في وحدتي الماكرو الأولى والثانية. وهكذا تحوّل وحدتا الماكرو التباعد إلى "تام" وفي نفس الوقت يزيد/ينقص التباعد نصف نقطة. النتيجة هي التالية: Sub LineSpaceExactlyIncrease() On Error Resume Next With Selection.ParagraphFormat .LineSpacingRule = wdLineSpaceExactly .LineSpacing = .LineSpacing + 0.5 End With End Sub Sub LineSpaceExactlyDecrease() On Error Resume Next With Selection.ParagraphFormat .LineSpacingRule = wdLineSpaceExactly .LineSpacing = .LineSpacing - 0.5 End With End Sub1 point
-
أخى العزيز ياسر موضوع استخدام Integer أو Long بيكون حسب البيانات المطلوبة كما بالجدول التالى .. ويفضل لو كان حاجة خفيفة تستعمل الأخف وهو Integer الكلام ده مش بيفرق كتير هنا لكن لو ها تبنى قاعدة بيانات كبيرة بالاكسس او احدى برامج البيانات الاخرى بيقرق كتير لأنه بيحجز مساحة لكل حقل بيانات حسب المتغير المطلوب منه يعنى مثلا لو قاعدة بيانات بها من النوع Integer هاتكون المساحة/ الحجم المطلوب لقاعدة البيانات نصف المطلوب للمتغير Long عن كل سطر من البيانات VB Alias Size Range Integer 32 bits (4 bytes) -2,147,483,648 to 2,147,483,647 Long 64 bits (8 bytes) -9,223,372,036,854,775,808 to 9,223,372,036,854,775,8071 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
-
السلام عليكم ورحمة الله وبركاته الحمد لله على عودة الموقع من جديد نكمل معكم ان شاء الله ما بدأناه فىى هذا الموضوع وهو طريقة انشاء شريط ادوات بواسطة 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
-
الاخوة الاعزاء طبتم بناء عن طلب احد الأخوة قمت بفضل الله بعمل ملف يقوم بتشفير البيانات وثحويلها لباركود ثم العملية العكسية لفك التشفير فيما يمكن استخدامه ؟ 1-تشفير كلمات المرور 2-تشفير البيانات بالكامل داخل ملفات الاكسيل والعديد من الافكار ادعوا الله ان يكون مفيدا" باركود مع التشفير واعادة فك التشفير.rar1 point