نجوم المشاركات
Popular Content
Showing content with the highest reputation on 12/11/14 in مشاركات
-
إلى أخى "سليم" الحق كل الحق مع أستاذى " محمد طاهر " وأنا مع وجهة نظرة بما تحملة من أسباب وجيهة والأهم من الأسباب السابقة أننا نقوم بعمل خيرى فى المقام الأول ، وفاعل الخير لايبحث عن إهتمام صاحبة وإن لم يكن به إستفادة لصاحبة ربما يكون له أعظم الأثر لغيرة تقبلوا تحياتى2 points
-
السلام عليكم --- عدم متابعة السائل لاستفساره و يستكثر شكر إخوانه نظير مساعدتهم و تعبهم معه في الحل ------ حله بسيط اهمال وعدم الاهتمام بتساؤلاته مجددا فقط مجرد رأي و السلام عليكم بالتوفيق2 points
-
بسم الله الرحمن الرحيم لاحظت في الفترة الأخيرة كثرة الأسئلة عن موضوع نسيان كلمات مرور ملفات الإكسل أو بعض ورقات العمل بالملف فأحببت أن أشارك إخوتي وأحبّتي أعضاء ومشرفي وخبراء منتدانا الرائع هذه الإضافة MasNoPass لفك حماية أوراق العمل في ملفات الإكسل وتعمدت تسهيل عملها &&&&&&&&&&& فقط تحتاج لإضافة الوظيفة الإضافية: 1 في ويندوز xp نسخ المرفق إلى المسار التالي C:\Documents and Settings\***\Application Data\Microsoft\AddIns حيث أن C هو قرص النظام و *** هو اسم المستخدم 2 في ويندوز 7 نسخ المرفق إلى المسار التالي C:\Users\***\AppData\Roaming\Microsoft\AddIns حيث أن C هو قرص النظام و *** هو اسم المستخدم ****************** بالنسبة لمستخدمي إكسل 2003 من خلال: فتح برنامج الإكسل والضغط على قائمة أدوات tools ===> وظائف إضافية Addins ===> ثم اختر MasNoPass ثم موافق ok وبالنسبة لمستخدمي إكسل 2007 يتم ذلك من خلال : فتح برنامج الإكسل والضغط على زر الأوفيس ثم خيارات إكسل Excel options ثم اختيار وظائف إضافية Addins من الجانب الأيمن/الأيسر ثم اذهب go ثم اختيار MasNoPass ثم موافق ok وبالنسبة لمستخدمي إكسل 2010 وما بعدها يتم ذلك من خلال : فتح برنامج الإكسل والضغط على قائمة ملف file ثم خيارات إكسل Excel options ثم اختيار وظائف إضافية Add-ins من الجانب الأيمن/الأيسر ثم اذهب go ثم اختيار MasNoPass ثم موافق ok /////////////////// طريقة العمل:- بعد تسجيل الوظيفة الإضافية تجد ظهور قائمة جديدة باسم (فك الحماية) وتحتاج فقط إلى فتح الملف المحمي ثم الضغط على قائمة فك الحماية واختيار (إزالة كلمة المرور) بعدها سيتم البدء في عدّ المحاولات والوقت المنقضي في إجراء العملية بعدها تظهر رسالة تفيد أنه تم إزالة كلمة المرور عن الملف وبعد الضغط على الرسالة ستجد الملف مفكوك بين يديك $$$$$$$$$$$$$$$$ و أذكّر نفسي وإياكم بأن الصحابة عليهم رضوان الله كان الواحد منهم إذا أراد أن يدعو لنفسه دعا لأخيه فيقول له الملك آمين ولك مثلها فلا ينقصني سوى دعائكم وأخيرا أذكر بخطورة الموقف وأرجو عدم استعمالها فيما حرّم الله وعند النقل يجب ذكر المصدر منتديات أوفيسنا اللهم قد بلّغت ... اللهم فاشهد أخوكم محمد صالح فيديو لشرح كيفية استعمال الأداة ولا ينقصني سوى دعاؤكم ينصح بالاشتراك في القناة وتفعيل جرس التنبيه ليصلكم كل جديد ومفيد وقت صدوره MasNoPass.rar New_MasNoPass.rar1 point
-
الحب في الله تعالى أوثق عرى الإيمان وهو منحة من الله لا يشترى بالمال . قال تعالى في بيان فضله على عباده المتحابين ( وَأَلَّفَ بَيْنَ قُلُوبِهِمْ لَوْ أَنفَقْتَ مَا فِي الأَرْضِ جَمِيعًا مَّا أَلَّفَتْ بَيْنَ قُلُوبِهِمْ وَلَكِنَّ اللهَ أَلَّفَ بَيْنَهُمْ إِنَّهُ عَزِيزٌ حَكِيمٌ ) . و قد جعل الله الحب في الله سببا للنجاة من النار و دخول الجنة ، ففي الحديث الصحيح المتفق عليه في السبعة الذين يظلهم الله تحت ظله ، منهم ( رجلان تحابا في الله ، اجتمعا عليه ، و تفرقا عليه ) المحبة في الله نعمة من الله ، فقد الأحبة في الله غربة ، والتواصل معهم أنس ومسرة ، هم للعين قرة ، فسلام على من دام في القلب ذكراهم ، وإن غابوا عن العين قلنا يا رب احفظهم وارعاهم . لا يوجد متسع للكلام ، أحبكم في الله جمعياً اخي في الله المبدع أ/ شوقي ربيع وثمرة التعاون المثمر بأذن الله بيننا ، نأتي من جديد في سلسة برامج ضاحي وشوقي الخدمية ، لتيسير ما امكن علي اخواننا , نفعنا الله واياكم بما علمنا ولا تنسونا بدعوة بصلاح الحال بظهر الغيب . كلمة مرور الأدمن admin VBA Password 6626 فورم تعديل / اضافة صلاحيات المستخدمين البرنامج بالمرفقات Multi User Form Permissions Management.rar1 point
-
هل يمكن ربط الاكسل برقم الجوال ؟ يعني عملت سندات قبص وسندات صرف ومصروفات وكل يوم يتم الترحيل فهل يمكن أن نربط المبلغ الذي يتم ترحيلة كل يوم برسالة الى الجوال ارجوا الرد1 point
-
اخواني و أصدقائي في هذا الصرح الكبير لي عتب على بعض الاعضاء (اشدد على كلمة بعض)الذين يستميتون في طلب امر ما أو حل بعض المسائل العالقة تحت شعار( ضروري جداً و هام للغاية و عاجل ...)الى ما هنالك من الحاح. فقط يضعون السؤال و ( يا دار ما دخلك شر) أحيانا لا يطلعون على الرد حتى.. أو يحمّلون الرد دون ان تعرف اذا كان صاحب العلاقة (السائل)قد قام بالتحميل اولا (حيث ان السائل لا يضع تعليقاً على الرد) لذا لدي اقتراح للإدارة الموقّرة ان تدرج لائحة بأسماء من قام بتحميل موضوع ما وليس فقط عدد التحميلات .اذا كان هذا ممكناً أو ادراج ملاحظة اذا كان صاحب السؤال قد قام بتحميل الرد على الموضوع (في هذه الحالة دون قائمة المحمّلين) لا أعرف اذا كان احد من أعضاء المنتدى يشاركني هذا الرأي و لكني أجزم ان هناك البعض1 point
-
1 point
-
اجعل سطر الكود هكذا ActiveSheet.PageSetup.CenterHeader = "&""Arial Unicode MS""&14" & Me.TextBox1 تحياتي1 point
-
نعم يمكن اضف هذا السطر DoCmd.Save acForm, "frm1" لتصبح الجملة كاملة : On Error Resume Next DoCmd.OpenForm "frm1", acDesign, , , acFormPropertySettings, acHidden Forms!frm1.PopUp = True Forms!frm1.Modal = True DoCmd.Save acForm, "frm1" DoCmd.OpenForm "frm1", acNormal1 point
-
اخى الفاضل وأستاذي الكريم أ.ياسر هذا هو المطلوب فعلا بس نريحه ونخليه يكتب المبلغ الأصلي ( رأس المال ) والمبلغ المسترجع والمعادلة تحسبله اللى هو عاوزه بدل ما يحسب الفرق يدوي .. وعلى افتراض ان راس المال1577 في A1 والمبلغ المسترجع 1677 في B1 =((B1-A1)/A1)*100 او ممكن نستغنى عن الضرب في 100 بس ننسق الخلايا كنسبة مئوية ... مرفق ملف للسائل لعله يكون طلبه .. خالص تقديري واحترامي لك أستاذي الكريم تحياتي المكسب.rar1 point
-
من خلال البحث في أ.Google عن هذه المشكلة ده كان الحل In Excel 2003: go to "Tools" > "Macro" > "Security" and select the "Trusted Sources" tab. Check the box next to "Trust access to Visual Basic Project". (Note: The box for "Trust all installed add-ins and templates" should also be checked.) يعني في اكسل 2003 .. قائمة أدوات -- ثم ماكرو -- ثم امان -- ومن تبويب مصادر التوثيق أو مركز التوثيق نحدد علامة صح على الثقة في الوصول الى طراز كائن مشروع Vba In Excel 2007, use the following navigation: Click on the Office button in the upper left corner Click on the Excel Options button On the left, click on the Trust Center Click on the Trust Center Settings button On the left, click on Macro Settings Click on "Trust access to the VBA project object model" في 2007 ... من زر الأوفيس .. ثم خيارات ... ثم مركز التوثيق ... ثم إعدادات مركز التوثيق ... ثم إعدادات الماكرو ... ثم حدد علامة صح على الثقة في الوصول الى طراز كائن مشروع Vba جرب أ.وليد تحياتي1 point
-
تم تنفيذ طلبك أستاذى " إسلام " وتم تعديل العنوان ، وياريت لكل الأخوة أن يتم إختيار العنوان المناسب لمحتوى الموضوع من أجل عملية البحث تقبل تحياتى1 point
-
اخي الكريم العضو المميز ابو تراب فعلا انت مميز بكل ما تعنيه الكلمة عل هذا العمل المميز شكرا لك وبارك الله فيك1 point
-
اخى الكريم انا اتفق معك ان العمل فى هذا المنتدى الغالى خيرى وكل من فيه لا يبتغون غير رضا الله عز وجل والاجر والمثوبه منه وحده ولكن بتقول ( فعليك باخلاص النية ولا يهم ان رد او لم يرد حمل او لم يحمل ) انا اختلف معك فى هذا فكل من فى المنتدى نحسبهم مخلصين النوايا لله ولا نزكى على الله احد ومنهم استاذى الكريم سليم حاصبيا انا اذكر للاستاذ سليم عندما تم ترقيته الى عضو محترف سارعو الاخوة بالمنتدى بالتهانى والتبريكات للاستاذ سليم والاستاذ سليم لم يرد عليهم انا استغربت فارسلت رساله خاصه له وقلتله لماذا لا ترد عليهم وهم يهنئونك بالترقيه قال انا سعيد بذالك ولكن اريد ان اوفر وقت فى خدمة من له سؤال . بالله عليك دا شخص غير مخلص النية لله تعالى ويريد الشكر من الناس اما بخصوص 1- رد او لم يرد اذا كان العضو قدم سؤال او استفسار فلابد من انه محتاج لهذا الشئ وإلا لما طلبه هو لما بيقدم سؤال ومحدش بيرد علية بيزعل صح وهذا حقه من عشمه ان الاخوة يقدمو له يد العون / طيب ما هو بنفس المنطق لما هو ميردش اللى قدم له الحل من حقه يزعل صح ولا انا غلطان ياخى الكريم ابسط الامور يقول ايوة هو دا اللى مطلوب فعلا وبلاش شكرا يا سيدى بس يعرف اللى قدم له الحل انه حل تمام وهو المطلوب اما تقديم الشكر من عدمه فالاستاذ مقدم الحل لا يحتاج شكر لانه يبتغى وجه الله كما قلت من قبل ولكن مقدم السؤال هو من يحتاج ان يقدم له الشكر تعرف لماذا اقرأ حديث المصطفى صلى الله علية وسلم فالعضو هو من يحتاج ان يشكر الله بشكره للناس 2- بخصوص حمل او لم يحمل احنا اتفقنا ان مقدم السؤال اكيد فى احتياج له وإلا لماذا قدمه فالمفروض انه حريص على تحميل الملف والاستفاده منه ولو هو مش فى احتياج للحل لماذا قدم السؤال هترد عليا وتقولى لو هو مستفدش غيره يستفيد يا اخى الكريم ممكن غيره ميعرفش يطوع ما بالملف طبقا لطلبه هو فما الفايده ممكن مثلا يكون كود ترحيل بس هنا من شيت باسم والاخر باسم تانى غيرة فالعضو لا يستطيع تغيير الاسم بالكود والاستفاده منه اسف للاطاله ولكنها مجرد وجهه نظر وتقبل احترامى وتقديرى1 point
-
استاذى الكبير ... مرورك عطر وكلماتك رحيق ....ثناء الاستاذ على التلميذ له قيمه كبيره ودفعه معنويه عاليه جدا ... اشكرك1 point
-
أستاذ مجدى والله من صورتك على البروفيل حبيتك فى الله فالصورة تظهرلى ما أنت عليه من تواضع وبشاشة و خلق كريم . أما أنت يا عم ياسر يبدو من كلامك وشروحاتك أنك شديد الذكاء تتحدى الصعاب وايديك تتلف فى كود أقصدى حرير بس ما قلتليش على كلمة السر ايه هى ؟؟ ولا قلتليش فتحت الهديه ازاى ؟؟ بطفاشه ولا مرزبه ولا MasNoPass. :wallbash: على العموم أنا كنت عارف أن حتة السلوفان مش هتمنع أى حد من الدخول الى الملف . لييييييييييييييييييييييييييييييييييييييييييه ؟ لأن حماية ملفات الإكسيل في وجهة نظري القاصرة صفر .. إلا إذا تحول الملف لملف تنفيذي .. :wavetowel: :clapping: أيضا يلا دلوقتى مخلص على الملف من ظهر اليوم وأنا على الكمبيوتر ضفت فيه امتدادات الفيديو و الصوت والصورة الشهيرة . والآن أترك لك وللمنتدى النسخة المعدلة من البرنامج والتى تشغل معظم امتدادات الفيديو و الصوت والصورة الشهيرة . ملحوظه فى غاية الأهميه : أوجه النداء الى فنان منتدانا العريق الأستاذ الفنان ضاحى غريب الى تحويل الملف الى عمل فنى من أعماله الرائعة . والسلام عليكم والى اللقاء فى موضوع آخر غريب وجديد :Rules: moktarplayer 2015 © version 1.1.rar1 point
-
أبو ألاء ليس كل سؤال في نفس الموضوع نفتح موضوعا جديدا اكمل أسئلتك في نفس موضوعك الأساسي1 point
-
الحلقة الحادية عشرة ***************** السلام عليكم ورحمة الله وبركاته إخواني الكرام في الصرح العملاق أوفيسنا ، أقدم لكم اليوم موضوع في غاية الأهمية ، ألا وهو التعامل مع السلاسل النصية Strings والدوال الخاصة بالتعامل مع النصوص. اتعرفنا في حلقات سابقة على المتغير String ، ودا بنستخدمه لتخزين النصوص .. أول شيء بنعلن عن اسم المتغير ونحدد نوعه كـ String بالشكل ده : Dim strEmail As String وقلنا إن الأفضل دايماً لما نسمي متغير يكون معبر ، ففي السطر اللي فات أنا نويت والنية لله إني أخزن نص ، والنص ده عبارة عن إيميل ، فسميت المتغير strEmail أول 3 حروف من كلمة String وبعدين كلمة معبرة عن النص Email ، وحددت نوعه إنه نص String. طيب تاني سطر ببدأ أضع قيمة للمتغير اللي أعلنت عنه ، ودا بيكون بطريقة معينة ، إننا نحط اسم المتغير على اليسار ، وبأكد على اليسار وبعديه علامة يساوي ، وبعد علامة يساوي أفتح أقواس تنصيص وأكتب النص اللي عايز أخزنه وأقفل أقواس التنصيص (كل اللي بقوله يا حماده كلام قديم مفيش جديد ..دا في الإنجليزي بيسموه Warm-Up يعني تهيئة للحلقة) strEmail = "yakh777@yahoo.com" طيب هل دايماً لازم نحط نص في قيمة المتغير النصي ولا فيه طريقة تانية ؟ فيه طريقة تانية ..إن يكون النص في خلية معينة وليكن A1 ، ولما نيجي نضع قيمة للمتغير نشير لقيمة الخلية A1 زي كدا : strEmail = Range("A1").Value حط الايميل في الخلية A1 ، وجرب بنفسك .. جرب مرة تكتب النص ، وعن طريق الدالة Msgbox شوف النتيجة ، ومرة تانية جرب السطر الأخير وشوف النتيجة (النتيجة واحدة .. كل السبل تؤدي إلى حلقات افتح الباب) ... خلصنا المراجعة يا مدحت .. نشوف ايه اللي هنقدمه في حلقة النهاردة .. أنا صراحة مش مرتب في أفكاري .. ممكن تقول إني عشوائي جداً ، بس الحمد لله ، بتوفيق الله عزوجل بيخرج الموضوع منظم ومتسألش إزاي ..! أنا همسك دالة دالة من دوال التعامل مع النصوص وهشرحها بالتفصيل ، والله المستعان *-------------------------------------------------* الدالة Len (دالة بسيطة وسهلة وكلنا عارفينها ، وبنستخدمها في ورقة العمل : طبعاً إنتو لما بتقروا الحلقات بيكون فيه ملف إكسيل مفتوح (مش كدا ولا مطنشين) ، عشان نطبق أول بأول .. في الخلية A1 إحنا كتبنا نص ، عايزين نعرف طول النص ده ، فبنستخدم الدالة Len ، مثلاً في الخلية B1 اكتب المعادلة بهذا الشكل : =LEN(A1) واحد هيقولي إنت مش بتشرح VBA إنت بتخدعنا ، الشغل دا إحنا عارفينه !! أنا عارف إنكم عارفينه ، بس عايزين نربط بين الشغل في ورقة العمل والشغل في محرر الأكواد ، عشان تكون الصورة واضحة .. نروح للمحرر .. ونكمل الكود اللي كتبنا منه أول سطرين .. Dim strEmail As String Dim X As Integer strEmail = Range("A1").Value X = Len(strEmail) MsgBox strEmail & " : " & X أظن الكود واضح جداً ، إحنا الحمد لله وصلنا لمرحلة متقدمة نقدر من خلالها نفهم أسطر الكود .. هشرح الجديد بس عشان الناس متحسش بالملل : الجديد يا أستاذ عبد المجيد ، الدالة Len ، ودي وظيفتها إننا بنقدر من خلالها معرفة عدد أحرف النص ، والأحرف مش مقصود بيها الحروف العربية والإنجليزية فقط ، ولكن الرموز أيضاً بيتم حسابها زي علامة @ والنقطة .. لما ننفذ الكود هتطلع رسالة فيها النص الموجود في الخلية A1 وبعدين عدد أحرف النص .. وفصلت بينهم بـ : (Shift + ك) الدالة أسندناها للمتغير X وخلينا نوعه Integer لأن عدد أحرف النص عدد صحيح (ولا يمكن يكون فيه حرف بنشوفه ربع حرف زي . طبعاً لا ... ، الحرف يمثل عدد واحد صحيح) بعد كتابة الدالة وضعنا فتحنا قوس ووضعنا المتغير النصي اللي سميناه strEmail وقفلنا القوس ( ) ، ننفذ الكود هنلاقي النتيجة إن عدد الأحرف 17 (اتأكد بنفسك لو وقتك يسمح) *-------------------------------------------------* ننتقل لدالة تانية : الدالة InStr (شكلها صعبة .. لو عرفت اختصارها هتكون سهلة بإذن الله ..الحرفين In يعني (في) أو (داخل) .. والحروف Str اختصار String .. بمعنى تاني : الدالة دالة بحث عن نص داخل نص (فزورة .. وكلام معقد مش عايزين) .. بالمثال نفهم الكلام المعقد ..(نص فرعي أي جزء من النص داخل سلسلة نصية طويلة) ..بردو الكلام صعب نفترض إننا في الإيميل اللي كتبناه عايزين نعرف علامة @ موقعها فين في النص ، في الحالة دي هنستخدم الدالة InStr عشان نقدر نحدد موقعها (مش هنحتاج لـ GPRS خاصية البحث عن طريق الأقمار الصناعية) .. ناخد مثال عشان منتوهش !! Dim strEmail As String Dim X As Integer strEmail = "yakh777@yahoo.com" X = InStr(strEmail, "@") MsgBox X نفس المثال اللي فات تقريباً .. نركز على الجديد ، ونقول دا شكل الدالة ، تقريباً زي الدالة اللي فاتت بس نركز إن فيه بارامتر تاني ، البارامتر التاني هو عبارة عن النص المراد البحث عنه (يعني ممكن نقول إن النص عبارة عن كومة قش ، والنص الفرعي المراد البحث عنه عبارة عن إبرة ، فنشرح الدالة ببساطة إن الدالة بتقوم بعملية البحث عن إبرة في كومة قش .. !!) الناتج يا جماعة يا متابعين الحلقات بيكون عبارة عن عدد صحيح Integer ، لو جربنا الكود هنلاقي الناتج 8 ، أي أن موقع الإبرة في كومة القش رقم 8 (عد من الشمال يا حاج كمال) ممكن نكتب النص الأصلي مباشرةً بدل من إسناده لمتغير زي كدا : Dim X As Integer X = InStr("yakh777@yahoo.com", "@") MsgBox X بس أنا أفضل دايماً الإعلان عن المتغير ، وإسناد قيمة له ، لسبب إننا لما بنكتب كود ، مش هنشتغل على النص مرة واحدة .. الشغل هيكون أكتر من مرة .. فبالتالي أفضل المثال السابق. وجه الاستفادة من الدالة دي إنك تتأكد من وجود نص معين في النص الأصلي من عدم وجوده ، يعني لو مش موجود هتكون النتيجة ايه ؟ فكروا شوية قبل ما أقول الإجاية : أكيد صفر ، لأن النص الفرعي (الإبرة) مش موجودة ، بالتالي تكون النتيجة صفر..نجرب المثال التالي : Dim strEmail As String Dim X As Integer strEmail = "yakh777@yahoo.com" X = InStr(strEmail, "@") If X = 0 Then MsgBox "الإيميل غير صحيح ؛ لأنه لا يحتوي على العلامة اللي متعودين عليها" Else MsgBox "الإيميل صحيح يا فصيح ؛ لأنه يحتوي على العلامة اللي زهقنا من شكلها" End If نجرب ننفذ الكود مرة ، ونشوف النتيجة ، هنلاقي إن الرسالة التانية هي اللي هتظهر ، لأن قيمة X = 8 ، يعني أكبر من الصفر (ودا دليل على وجود الإبرة في كومة القش) أما لو شيلنا علامة @ وجربنا الكود مرة تانية ، فهتظهر لنا الرسالة الأولى ، لأن قيمة X=0 ، (ودا دليل على عدم وجود النص الفرعي في السلسلة النصية) بكدا يكون انتهى الكلام عن الدالة InStr ... لا لسه متستعجلش .. الدالة فيها بارامترات اختيارية واحد بيكون في الأول وواحد في الآخر ، الشكل العام لها كدا : InStr(start, Text_To_Search, Find, comapre إحنا أخدنا البارامتر التاني اللي هو كومة القش (النص المراد البحث فيه) ، والبارامتر التالت اللي هو الإبرة (النص المراد البحث عنه) .. بالنسبة للبارامتر الأول دا نقطة البداية ، ولما مش بنكتبها بيكون الافتراضي فيها 1 أي بداية عملية البحث والتنقيب عن الإبرة في كومة القش تبدأ من أول حرف بالنص.. البارامتر الأخير بردو اختياري ودا نادر الاستخدام .. ودا له 4 قيم : (vbUseCompareOption) , (vbBinaryCompare) , (vbTextCompare) , (vbDatabaseCompare) ناخد مثال بسيط عشان نفهم جزء واحد من الخيارات للبارامتر الرابع : Dim X As Integer X = InStr("This is my heart", "t") MsgBox X ننفذ الكود نلاقي إن الناتج 16 ، ودا موقع حرف t في النص ، نخلي بالنا إن فيه حرف الـ T في أول النص الأصلي ، طيب نفترض إننا عايزين نعرف موقع أول حرف T سواء كان Capital أي حرف كبير أو Small أي حرف صغير .. في الحالة دي هنستخدم البارامتر الرابع ، وهنستخدم الخيار vbTextCompare (وفي حالة استخدامه بيتم تجاهل حالة الأحرف) Dim X As Integer X = InStr("This is my heart", "t", vbTextCompare) MsgBox X ننفذ الكود نتصدم برسالة خطأ .. الغلطة فين ؟ هي مش غلطة ، إنما قاعدة ، إنك لو هتستخدم البارامتر الرابع اللي هو أصلاً اختياري يبقا إجباري عليك تستخدم البارامتر الأول اللي هو اختياري -- أما لو استخدمت البارامتر الأول اللي هو اختياري ، فممكن عادي تستغنى عن البارامتر الرابع اللي هو اختياري (هدوخكم ورايا .. اقرا من الأول عشان تفهمها ) .. يعني الشكل الصحيح يكون كدا : Dim X As Integer X = InStr(1, "This is my heart", "t", vbTextCompare) MsgBox X الناتج هنا هيكون مختلف ، هيكون رقم 1 ، ودا موقع حرف الـ T في أول النص (هنا تم التغاضي عن حالة الأحرف .. يعني كأننا بنقوله ملكش دعوة الحرف كبير أو صغير .. ابحث عنه) كفاية كدا على الدالة دي (خدت أكتر من وقتها) .. *-------------------------------------------------* ننتقل لدالة ثالثة اسمها StrReverse ودي من اسمها نعرف وظيفتها .. Reverse معناها عكس (مضاد : لا مش مضاد .. بقول عكس) يعني بص لها من الآخر .. يعني مثلا كلمة (أوفيسنا) لما بنصلها من الآخر تبقا (انسيفوأ) كدا أكيد وصلتكم ناخد مثال عملي : Dim strOfficena As String Dim strResult As String strOfficena = "أوفيسنا" strResult = StrReverse(strOfficena) MsgBox strResult نجرب الكود ونشوف النتيجة .. كفاية عليها كدا ، مش مستاهلة نتكلم عنها كتير .. *-------------------------------------------------* هختم الحلقة بالدالة الرابعة (نظراً لأن رقم 4 بيغيظ ناس .. وأنا بصراحة من النوع الغياظ المستفز) .. الدالة التوأم (دالتين هشرحهم مع بعض ) .. بس قبل ما نشرحهم نروح لورقة العمل ونكتب مثلاً yasser في الخلية B3 ، وفي الخلية المجاورة اكتب المعادلة : =UPPER(B3) والخلية B4 اكتب كلمة YASSER كلها حروف كبيرة ، وفي الخلية المجاورة اكتب المعادلة : =LOWER(B4) أظن الأمور واضحة بالنسبة لكم ، نرجع للمحرر ونشوف شكل الدالتين دول في المحرر : الدالة LCase أول حرف منها L اختصار Lower يعني زيها زي الدالة Lower في ورقة العمل ، والتانية UCase وحرف U اختصار لكامة Upper يعني زيها زي الدالة Upper بس خلاص .. مش محتاجة شرح .. ممكن ندعم الكلام بمثال فقط : Dim strName As String strEmail = "yasserkhalil" MsgBox UCase(strEmail) نجرب نفس المثال ، بس نخلي النص كله حروف كبيرة ، ونستخدم الدالة التانية LCase زي كدا : Dim strName As String strEmail = "YASSERKHALIL" MsgBox LCase(strEmail) نأتي إلى الواجب اللي الناس بطلت تعمله : اكتب كود ، وأعلن عن متغير نصي ، على أن يكون النص المراد تخزينه فيه العلامة @ ، وفي رسالة أظهر النص المخزن في سطر ، وعدد الأحرف للنص في سطر ، موقع العلامة @ في سطر ، وقم بعكس النص في سطر ، وقم بتحويل حروف النص إلى أحرف كبيرة في سطر ، وتحويل حروف النص إلى أحرف صغيرة في نص .. وكفاية كدا عشان متتعبوش ، أنا يهمني راحتكم. كان معكم أخوكم أبو البراء من منتدى أوفيسنا إلى لقاء متجدد بإذن الله .. دمتم في رعاية الله (خدوا بقا شوية ورد لأحسن أخونا ابن مصر شكله ناوي يخلص على الورد اللي في المنتدى :fff: :fff: .. كفاية 4 وردات) والسلام عليكم ورحمة الله وبركاته1 point
-
أي رقم أعلى من خمس عشرة خانة، سوف يقوم إكسيل بقلبه إلى صفر، وهذه حدود قيود برمجية على إكسيل لن تستطيع تجاوزها. الحل بنفس طريقة الأخ الكريم عبدالباري، قم بتنسيق الخلايا على شكل نص، ولكن يجب أن يكون التنسيق قبل أن تُدخل القيم؛ وإلا فستبقى القيمة المُدخلة على شكل التدوين العلمي Scientific Notation . بالتوفيق، عبدالله،،،1 point
-
اخى الفاضل عندك حل من اثنين الحل الاول كما تفضل أخى الكريم عبد الباري البنا .. بتنسيق الخلايا كنص .. الحل الثاني بتقسيم الرقم التسلسلى على خليتين وعمل Concatenate بينهم في خلية اخرى مرفق ملف به الحلين تحياتي Book1.rar1 point
-
السلام عليكم هذا الخيار غير موجود افتراضيا ضمن تطبيق المنتدى ، و قد اضفناه فى وقت ما ، و لكن تم ايقاف ذلك لانها معلومة اضافية يتم الاختفاظ بها فى قاعدة البيانات و قد تصل هدد التحميلات لبعض الملقات او من اطلعوا عليه لعدة الاف مع مرور الوقت مما يمثل عبء غير ضروري على قاعددة البيانات ، و بصفة عامة فانن نفضل الالتزام بالتطبيق الاصلي دون عمل جداول اضافية لتخزين المعلومات الغير مضمنة ضمن التطبيق الاصلي لانه مع بعض الترقيات لنسخة المنتدى قد تحدث بعض المشاكل مع هذه الجداول الاضافية. و ان كن من الممكن حل هذه المشكلة بعد حدوثها. فضلا عن ان بها نوع من الحرج لمن يحمل الملف ثم لا يستطيع الرد على السؤال مثلا. لهذين السببين انا لست مع اضافة هذه الخاصية : عبء على قاعدة البينات + الحرج لمن لم يرد باضافة حل او يقدم شكر على الموضوع مثلا1 point
-
اخى الكريم جاوبتك على الفيس بوك وهذا الملف اعتقد سيفيدك وارجو منك ارفاق ملف بماتريد ترتيب.rar1 point
-
الدرس السابع الجملة الشرطية Select Case المثال السابق وهو قبل الأخير الذى ذكرناه فى جملة If - then - elseif – else والخاص بتقديرات الطلبة يمكن تطبيقه بشكل أفضل وأسهل بكثير باستخدام جملة Select Case سوف نقوم بتطبيق المثال مرة أخرى باستخدام جملة Select case ثم نقوم بالتعليق على المثال وشرح الملاحظات : الشرح : سنتحدث عن ما يخص جملة Select case 1 - بدأت الجملة بكلمة Select case ثم اسم المتغير الذى سيتم تتبع حالته . 2 - الحالة الأولى قيمة المتغير التى تم إدخالها فى صندوق النصوص هى بين صفر ، 49 3 - ظهور صندوق رسالة يفيد أن الطالب راسب 4 - يتم إدخال قيمة كل حالة وهكذا فى جميع الحالات بنفس الطريقة الملاحظات : 1 - تبدأ الجملة بكلمة Select case وتنتهى بجملة End select 2 - تم وضع الجملة الآتية فى بداية الكود On Error GoTo mistake ومعناها ومعناها أنه فى حالة وجود أى خطأ يتم الانتقال إلى العنوان Mistake وذلك تحسبا لقيام المستخدم بإدخال قيمة نصية وبالتالى يصعب اختبارها وفى هذه الحالة سوف يتم نقل الكود للخطوة الأخيرة والتى يظهر بها صندوق نص يفيد أن المستخدم لم يدخل قيمة عددية وعليه إعادة إدخال قيمة عددية ليتم اختبارها . وفى هذه الحالة سيتم إعادته مرة أخرى للبداية إلى العنوان Start 3 - يمكن تسمية العناوين بأى اسم مثال (X – Y – Z – Yasser ) ولكن يفضل أن يكون الاسم معبرا . 4 - نلاحظ أننا وضعنا مدى فى قيم المتغير فى خطوات الجملة وهذا ليس شرطا بل يمكن وضعه قيمة قيمة ولكن سيكون ذلك تطويلا لا طائل منه مثل التالى Case 1 Case 2 Case 3 Case 100 مرفق ملف pdf به كامل الدرس وتقبلوا منى وافر الاحترام والتقدير الدرس 7.rar1 point
-
الدرس السادس الأوامر والدوال فى لغة الـ Visual Basic سنركز فى هذا الدرس على عدد من الجمل والدوال ومن أهم هذه الجمل والدوال : 1 – جملة If – then 2 – جملة Select Case 3 – جملة For – next 4 – جملة Do while loop 5 – جملة Do loop while 6 – دالة صندوق الرسائل Message Box وقد سبق الحديث عنها بالدروس السابقة ولكننا سنتحدث أيضا عنها بهذا الدرس وبشىء من التفصيل بدرس مستقل . 7 – دالة صندوق الإدخال Input Box 8 – إنشاء الدوال الخاصة الجملة الشرطية If – then تستخدم هذه الجملة فى حالة وجود احتماليين منطقيين كنتيجة لوجود شرط معين . وتأخذ هذه الدالة الأشكال التالية : 1 – جملة IF ذات السطر الواحد أمر Then الشرط IF مثال : If x = 5 then y = x 2 – جملة IF ذات السطور المتعددة Then الشرط IF الأوامر End IF مثال : If x = 5 then Y = x End IF نلاحظ الآتى : - لا يتم كتابه اى شىء بعد Then - أنه تم اغلاق جملة IF بكلمة End IF 3 – جملة If – then – else Then الشرط IF مجموعة الأوامر Else مجموعة الأوامر End IF مثال : If x = 5 then Y = x Else Y = z End If نلاحظ الآتى : - لا يتم كتابة أى شىء بعد Then - إذا تحقق الشرط يتم تنفيذ الأوامر الموجودة فى ( السطر / السطور ) التى تلى كلمة Then - فى حالة عدم تحقق الشرط يتم تنفيذ الأوامر الموجودة فى ( السطر / السطور ) التى تلى كلمة Else - يتم إغلاق جملة IF بكلمة End IF 4 – جملة If – Then - Else if – Else Then الشرط IF مجموعة الأوامر Else IF مجموعة الأوامر Else مجموعة الأوامر End IF نلاحظ التالى : ذكرنا سابقا أن جملة IF تستخدم فى حالة وجود احتماليين منطقيين كنتيجة لوجود شرط معين ولكن هذه الحالة الرابعة سوف تحتمل أكثر من شرط وبالطبع كل شرط له احتمالين إما أن يتحقق أو لن يتحقق وسوف نلاحظ الآتى فى هذه الحالة : - لا يتم كتابة أى شىء بعد كلمة Then - إذا تحقق الشرط يتم تنفيذ الأوامر الموجودة فى ) السطر / السطور ( التى تلى كلمة Then - فى حالة عدم تحقق الشرط لا يتم تنفيذ الأوامر التى تلى كلمة Then ويتم الانتقال لاختبار الشرط الثانى المكتوب بعد كلمة Else IF ويلي الشرط مباشرة كلمة Then أيضا . - إذا لم يتحقق الشرط الثانى ووجد شرط ثالث يتم كتابته بعد كلمة Else IF أيضا بنفس الطريقة السابقة فى الخطوة السابقة . - وفى حالة عدم تحقق الشروط جميعا يتم تنفيذ الأوامر الموجودة فى ( السطر /السطور) التى تلى كلمة Else - تأتى كلمة Else فى نهاية كافة الشروط وهى آخر احتمال فى الجملة حيث يتم إغلاق الجملة بعدها نهائيا بكلمة Else IF ويجب ملاحظة ألا يسبق سطر Else أى سطر به كلمة Else IF وإلا تسبب فى خطأ جملة IF بالكامل . - يجب ملاحظة أننا فى إطار جملة IF واحدة وأن كلمة Else ليست مثل Else IF وأيضا IF ليست مثل Else IF حيث أن كل هذه الكلمات تدخل ضمن جملة IF الرئيسية وبالتالى فإنه يتم إغلاق جملة IF بكلمة End IF واحدة فقط . مثال : 5 – جملة IF المتداخلة (Nested if ) Then الشرط IF Then الشرط IF مجموعة الأوامر Else مجموعة الأوامر End IF Else مجموعة الأوامر End IF نلاحظ التالى : هذه الحالة مختلفة لأنه يوجد جملتى IF وسوف يتم إغلاقهما بكلمتى End IF نشرح هذه الحالة الخامسة بالمثال التالى : وهو مثال هام إذا أردنا اختبار اسم المستخدم وكلمة المرور عند الدخول للموقع أو البرنامج أو الإيميل الشكل البسيط جدا لذلك هو إخراج رسالة للمستخدم تفيد التالى (هناك خطأ فى اسم المستخدم أو فى كلمة المرور ) إلا أن هذا لا يليق بمبرمج محترف حيث يجب أن يوضح للمستخدم سبب الخطأ هل فى اسم المستخدم أو فى كلمة المرور وبالتالى فإن الرسالة يجب أن تكون كالتالى (هناك خطأ فى كلمة المرور ) وهذا معناه أن المستخدم قد أدخل اسم المستخدم بشكل صحيح والعكس أيضا . ويكون الكود كالتالى : مرفق ملف pdf به كامل الدرس السادس وتقبلوا منى وافر الاحترام والتقدير الدرس 6.rar1 point
-
الأستاذ /mada4top السلام عليكم ورحمة الله وبركاته بعد إذن الأستاذ / خزاني جزاه الله خيراً على الكود وإليك الملف به تفيط عربي وانجليزي . تفقيط بالريال.rar تفقيط انجليزي.rar1 point
-
السلام عليكم تغـيـيـر ديـنار بــــــــــــــــــــــ: ريـال وضع هذا فى الخلبة (NbLettresArabes(H6= ' --------------------------------------------- ' FONCTION DE TRADUCTION D'UNE SOMME EN LETTRES ' --------------------------------------------- Option Explicit Option Base 1 Public Unité As Variant Public Dizaine As Variant Public Décimales As Currency Public CasPart As Variant Public Lettres As String Public Cent_Pluriel As Boolean ' ------------------- ' FONCTION PRINCIPALE ' ------------------- ' Function NbLettresArabes(Nombre As Currency) As String ' Limitation à 999 999 999 999 . 99 If Nombre >= 1000000000000# Then MsgBox "! هاذ العدد كبير", 0, "Message" Exit Function End If ' Initialisation des tableaux Unité = Array("واحد", "اثنان", "ثلاثة", "أربعة", "خمسة", "ستة", "سبعة", "ثمانية ", "تسعة") Dizaine = Array("عشرة", "عشرون", "ثلاثون", "اربعون", "خمسون", "ستون", "سبعون", "ثمانون", "تسعون") CasPart = Array("عشرة", "احد عشرة", "اثن عشرة", "ثلاثة عشرة", "أربعة عشرة", "خمسةعشرة", "ستةعشرة", "سبعةعشرة", "ثمانية عشرة", "تسعة عشرة") ' Mise à vide de la chaîne de réception de la traduction du nombre Lettres = "" ' Initialisation des indicateurs de pluriel des nombres cent et vingt Cent_Pluriel = True ' Conversion de la partie décimale en un nombre de 0 à 99 ' arrondi à l'unité la plus proche Décimales = CInt((Nombre - Fix(Nombre)) * 100) ' Conservation de la partie entière du nombre Nombre = Fix(Nombre) ' Orientation du traitement suivant valeur de la partie entière Select Case Nombre Case 0 Lettres = "صفر" 'Zéro Case 1 To 9 Lettres = Unité(CInt(Nombre)) Case 10 To 99 Trt_Dizaines Nombre Case 100 To 999 Trt_Centaines Nombre Case 1000 To 999999999999# Trt_Multiples_de_Mille Nombre End Select ' Indication de la monnaie If Décimales > 0 Then Lettres = Lettres & " دينار " + " و " Else If Décimales = 0 Then Lettres = Lettres & " دينار " ' + " و " End If End If ' Orientation du traitement suivant valeur de la partie décimale Select Case Décimales Case 1 To 9 Lettres = Lettres & Unité(CInt(Décimales)) Case 10 To 99 Trt_Dizaines Décimales End Select ' Indication des centimes Select Case Décimales Case 1 Lettres = Lettres & " سنتيم" ' Centimes'" و" + Case Is > 1 Lettres = Lettres & " سنتيم" ' Centimes Case Is < 1 Lettres = Lettres ' & " سنتيم" ' Centimes End Select ' Renvoi du nombre traduit en lettres If Lettres = "صفر" & " دينار " Then Lettres = "" Else NbLettresArabes = Lettres End If End Function ' -------------------------------- ' TRAITEMENT DES MULTIPLES DE 1000 ' -------------------------------- Sub Trt_Multiples_de_Mille(Nombre As Currency) Dim Rank As Currency Dim Nom_Rang As String Dim Reste As Currency Cent_Pluriel = False ' Initialisation suivant taille du nombre : milliers, millions ou milliards Select Case Nombre Case 1000 To 999999 Rank = Fix(Nombre / 1000) Reste = Nombre Mod 1000 Nom_Rang = "ألف" ' Mille Case 1000000 To 999999999 Rank = Fix(Nombre / 1000000) Reste = Nombre Mod 1000000 If Rank > 1 Then Nom_Rang = "مليون" 'Millions Else Nom_Rang = "مليون" ' Million End If Case Is > 999999999 Rank = Fix(Nombre / 1000000000) Reste = Nombre - Rank * 1000000000 If Rank > 1 Then Nom_Rang = "ميليار" ' Milliard Else Nom_Rang = "ميليار" ' Milliard End If End Select ' Traitement du rang des milliers, millions ou milliards Select Case Rank Case 1 If Nom_Rang = "الف" Then Lettres = Lettres & "آلاف" Else Lettres = Lettres & Unité(CInt(Rank)) & " " & Nom_Rang '& " و" End If Case 2 Lettres = Lettres & Unité(CInt(Rank)) & " " & Nom_Rang '& " و" Case 3 To 9 Lettres = Lettres & Unité(CInt(Rank)) & " " & Nom_Rang '& " و" Case 10 To 99 Trt_Dizaines (Rank) Lettres = Lettres & " " & Nom_Rang '& " و" Case 100 To 999 Trt_Centaines Rank Lettres = Lettres & " " & Nom_Rang '& " و" End Select Cent_Pluriel = True ' Orientation du traitement du reste si > 0 Select Case Reste Case 1 To 9 Lettres = Lettres & " و" & " " & Unité(CInt(Reste)) Case 10 To 99 Lettres = Lettres & " و" & " " Trt_Dizaines Reste Case 100 To 999 Lettres = Lettres & " و" & " " Trt_Centaines Reste Case Is > 999 Lettres = Lettres & " و" & " " Trt_Multiples_de_Mille Reste Case Else Lettres = Lettres & " " End Select Lettres = Lettres End Sub ' ----------------------------------- ' TRAITEMENT DES NOMBRES DE 100 0 999 ' ----------------------------------- Sub Trt_Centaines(Nombre As Currency) Dim Rank As Currency Dim Reste As Currency Rank = Fix(Nombre / 100) Reste = Nombre Mod 100 ' Traitement du rang des centaines If Rank = 1 Then If Reste = 0 Then Lettres = Lettres & "مائة" '& " و" Else Lettres = Lettres & "مائة" & " و" End If Else If Reste = 0 And Cent_Pluriel Then Lettres = Lettres & Unité(CInt(Rank)) & " " & "مئات" Else Lettres = Lettres & Unité(CInt(Rank)) & " " & "مئات" & " و" End If End If ' Traitement du reste < 100 Select Case Reste Case 1 To 9 Lettres = Lettres & " " & Unité(CInt(Reste)) Case Is > 9 Lettres = Lettres & " " Trt_Dizaines (Reste) End Select End Sub ' --------------------------------- ' TRAITEMENT DES NOMBRES DE 10 0 99 ' --------------------------------- Sub Trt_Dizaines(Nombre As Currency) Dim Reste As Integer Dim Rank As Integer Rank = Fix(Nombre / 10) Reste = Nombre Mod 10 Select Case Rank Case 1 Lettres = Lettres & CasPart(Reste + 1) Case 7 Select Case Reste Case 0 ' Nombre 70 Lettres = Lettres & Dizaine(Rank) Case Else ' Nombre 71 à 76 Lettres = Lettres & Unité(CInt(Reste)) & " و " & Dizaine(Rank) End Select Case 8 If Reste = 0 Then ' Nombre 80 Lettres = Lettres & Dizaine(Rank) Else ' Nombres 81 à 89 Lettres = Lettres & Unité(CInt(Reste)) & " و " & Dizaine(Rank) End If Case 9 If Reste = 0 Then ' Nombres 90 Lettres = Lettres & Dizaine(Rank) Else ' Nombres 91 à 99 Lettres = Lettres & Unité(CInt(Reste)) & " و " & Dizaine(Rank) End If Case Else ' Nombres 20 à 69 Select Case Reste Case 0 ' Nombres 20, 30, 40, 50, 60 Lettres = Lettres & Dizaine(Rank) Case Else ' Autres nombres Lettres = Lettres & Unité(CInt(Reste)) & " و " & Dizaine(Rank) End Select End Select End Sub1 point
-
بسم الله الرحمن الرحيم السلام عليكم بداية جزاكم الله خيرا هل من الممكن معرفة الرقم السرى أو كلمة المرورلملف إكسيل محمى من خلال برنامج اوماشبه ذلك نرجو الافاده وان كان هناك برنامج لهذا الامر يرجى رفعه على احد مواقع تخزين الملفات والتنويه عن رابطه وذلك للأهمية وجزاكم الله خيرا1 point
-
شكرا لمرورك أخي صفوت وهذا مثال وليس فرضا بقاء المسار على السي ولكن هل لاحظت أن البرنامج سيقوم بعمل نسخة احتياطية من البرنامج في كل مرة تفتح ثم تغلق فيها البرنامج فاسمح لي بطلب ( ليس اختبارا لأني على ثقة في أعضاء هذا الصرح ولكن من باب تبادل الخبرات) عمل شيء يسمح للمستخدم بالاختيار هل يريد عمل نسخة احتياطية عند الخروج فإذا كانت الإجابة بنعم قام البرنامج بالنسخ وإلا فلا ولي اقتراح آخر وهو معرفة عدد النسخ الموجودة في مجلد النسخ الاحتياطي فإذا زادت عن 5 قام البرنامج بحذف الأقدم كيف يتم ذلك؟؟ حتى نكون قد صممنا نظام للنسخ الاحتياطي يمكن لكلٍ منا وضعه في برنامجه برجاء التواصل من الإخوة مشرفي وأعضاء المنتدى فزكاة العلم نشره وكل عام أنتم بخير M.A.S محمد عبد الجواد صالح1 point