اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

محمد طاهر عرفه

إدارة الموقع
  • Posts

    8730
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    37

كل منشورات العضو محمد طاهر عرفه

  1. السلام عليكم شكرا للأخ عبد الله علي المداخلة و من ناحية أخري بالنسبة لاستخدام الكود مع الباوربوينت فالاختلاف الكبير هو اننا يجب وضع الكود المراد تشغيله فى وضع العرض فى add-in و عموما برمجة الباوربوينت بال vba اصعب من الاكسيل و الاكسيس و الوورد فلابد من تفعيل بعض الكائنات بالكود قبل البدء و يوجد مثال علي ذلك بقسم خلاصة المشاركات ، و ما يلي مثال آخر و الغريب أن ال msdn نفسها لم أجد فيها اكواد للباوربوينت اكس بي - فاما انني لم اصل اليها او أن المستخدمين لا يحتاجونها كثيرا و بالتالي لم يضعوها علي النت عموما و اذا أردنا تحقيق طلب الأخ العائد 2000 بالتحديد باستخدام الكود و بالضغط علي زر كما طلب فقد أعددت محاولة و هي مرفقة هنا كملف Add-in و من يريد تجربته فليفتح ملف خالي و يضع فيه رسم بيضاوي ثم يفتح قائمة Tools add-ins و يضيف الملف المرفق ( طبعا بعد فك الضغط ) ثم ليشغل العرض و فى الاغلب لن يعمل الا علي الاكس بي و للتحرك العلوي يضاف IncrementTop مع أو بدل IncrementLeft بحسب الحاجة و الكود به هو =========== Private Sub CommandButton1_Click() Application.ActivePresentation.SlideShowWindow.activate Call moveright End Sub Private Sub CommandButton2_Click() Application.ActivePresentation.SlideShowWindow.activate moveleftt End Sub ================== Dim X As New EventClassModule Sub Auto_Open() Call InitializeApp MsgBox "welcome to slide show by Keyboard numbers" & Chr(13) & Chr(13) & "By : Mohamed Taher Arafa " End Sub Public Sub InitializeApp() Set X.App = Application End Sub Public Sub moveright() MsgBox "The oval is going to be moved to the right" With Application.ActivePresentation.Slides(1).Shapes(1) .IncrementLeft (50) End With End Sub Public Sub moveleftt() MsgBox "The oval is going to be moved to the Left" With Application.ActivePresentation.Slides(1).Shapes(1) .IncrementLeft (-50) End With End Sub Public Sub openit() UserForm1.Show UserForm1.Left = 0 UserForm1.Top = 50 End Sub Public Sub starting() Call InitializeApp End Sub =============== Public WithEvents App As Application Private Sub App_SlideShowBegin(ByVal Wn As SlideShowWindow) Call openit End Sub و قد تم تقسيمه فى ثلاث مجموعات الاولي كود الفورم و الثانية فى موديول و الثالثة في class module moveitSOURCE.zip
  2. بالنسبة لطلب الرقم الداخلي يمكن استخدام فاصلة أو أكثر للانتظار بين الرقمين مثل فاذا كنت تطلب خط خارجي و تريد طلب رقم 888888 ثم داخلي 999 فتكتب الرقم 9,888888,999 بعد انشاء الزر بالطريقة التي ذكرها الأخ الكريم يمكنك تعديل الكود الموجود فى الزر لادراج الرقم من قاعدة البيانات مثلا بان يكون الرقم ظاهر فى مربع نص اسمه Tel2 فى النموذج و تستدعي الكود هكذا ( لم أجربه ، فارجو التجربة ) مثلا اذا أردت الطلب بالنقر المذدوج علي مربع النص الذي به الرقم Private Sub Tel2_DblClick(Cancel As Integer) On Error GoTo Err_Phone_Click Dim stDialStr As String Dim PrevCtl As Control Const ERR_OBJNOTEXIST = 2467 Const ERR_OBJNOTSET = 91 stDialStr = Me.Tel2 If stDialStr = "" Then MsgBox " No Number Choosen !!!" Exit Sub End If stDialStr = Predial + stDialStr Application.Run "utility.wlib_AutoDial", stDialStr Exit_Phone_Click: Exit Sub Err_Phone_Click: If (Err = ERR_OBJNOTEXIST) Or (Err = ERR_OBJNOTSET) Then Resume Next End If MsgBox Err.Description Resume Exit_Phone_Click End Sub و يمكنك تكوين الجملة الخاصة ب stDialStr = Predial + stDialStr كما تشاء فهنا قيمة predial عادة ما تكون ثابتة و تتعين مرة واحدة للبرنامج لذا تستدعي مرة واحدة و نكون مثلا "9," فى حالة انك تطلب 9 للحصول علي الرقم أو أن تخير المستخدم فى اضافتها أو لا فى اعدادات البرنامج لانها ستتغير من مكان لاخر فى حالة الكمبيوتر المحمول مثلا و بالنسبة للقيمة التي تلي الرقم يمكن تعريفها بناء علي حقل آخر فى النموذج بنفس الطريقة و اذا كان موجود نضيفها علي الجملة و مثلا اذا كان حقل Ext به قيمة stDialStr = Predial + stDialStr+Ext حيث يتم قبلها تعريف Ext بانها Ext="," & Me.Extention
  3. السلام عليكم ما دام ده رد الاخ عبد الله يبقي أكيد صعب باجرب فى المساء باذن الله ، و أتمني ان أصل لما تريد
  4. لم أسمع بمثل هذا البرنامج - لكن طبعا هذا لا يمنع وجوده
  5. بالنسبة لاستخدام الاكسس فى هذا الموضوع ، صراحة لم أجربه و لكن مبدأيا : يمكن الربط مع قادة البيانات علي الويب عن طريق odbc connection و لكن لابد من تحديد المسار و جملة الريط بواسطة الموقع لذا لابد من موافقتهم عليه لأنهم سيسمون وصلة ال odbc ياسم محدد و قد يكون لها كلمة سر الحل البديل ، هو عمل الريط بالاكسيل علي الصفحة كما سبق ثم عمل ورقة عمل جديدة فى نفس الملف مرتبطة بورقة العمل التي تم ربطها بالنت و تكون ورقة العمل الجديدة عبارة عن جدول صريح و له اسماء للحقول من اعلا و لا توجد به بيانات بدون اسم للحقل يلي ذلك عمل ربط بين الاكسس وورقة العمل الجديدة
  6. دع الصفحة المرتبطة بالنت كما هي اختار و رقة عمل جديدة و نسقها كما تشاء و اربط الخلايا بها ، بورقة العمل المربوطة بالنت
  7. أهلا أهلا بك أخونا الكريم نورت المنتدي :(
  8. السلام عليكم أي أن هناك بعض الطابعات فقط هي التي تدعم ذلك فاذا لم تكن طابعة من النوع الذي يدعم الطباعة المقلوبة متاحة و محمل علي الجهاز فلن يتاح هذا الخيار
  9. السلام عليكم لكن العرض بال pps ليس من خصائصه منع التعديل فيه فهو تحزيم للعرض و ليس حمايته من التعديل و يمكن وضع باس وورد علي التعديل فقط و عند التحويل الي عرض ، سيسأل عن كلمة سر التعديل و يخيرك اذا اردت فتحه للعرض فقط فسيمكن فتحه بدون كلمة السر و لكن للعرض فقط
  10. نعم فى الحل المقترح تتحدث تلقائيا و يمكنك التحكم فى الفترة أو ان توقف التحديثي النلقائي بحسب رغبتك
  11. أسهل الطرق هو استخدام الاكسيل Data Get External data new Web Query و تابع خطوات المعالج و الأخ Sharaf مشرف قسم الاكسيل خبير فى هذا الموضوع :) فاذا واجهنك مشكلة معه فى الاكسيل فاطرحها فى قسم الاكسيل و بالتأكيد سيكون له مداخلة حينما يقرأ الموضوع :)
  12. السلام عليكم أخي أمير حسب ما فهمت من الرابط أن هذا الملف لا يضيف العربية Translation can be performed between Chinese, English, French, German, Italian, Japanese, Korean, Portuguese, Russian, and Spanish فهل عمل معك مع العربية ؟؟ و أعتقد أن أحد الحلول اذا كنت تستخدم نسخة الاوفيس ذات الاسطوانة الواحدة و هي اما لواجهة التطبيق العربية او الانجليزية فان كانت لديك احداهما فلتحمل الاخري معها و يمكن حينئذ التبديل بين لغتي واجهة التطبيق و ستعمل الترجمة حينئذ بإذن الله و لكن ستجد بعد العيوب فى التشغيل مثل ظهور بعض أسماء الكائنات و التعليمات بلغة غير واجهة التطبيق
  13. السلام عليكم أولا جزاك الله خيرا علي الشرح الوافي و المميز ، و الذي سنستفيد منه جميعا بإذن الله و عندما نصل بالدورة الاكسس بإذن الله الي الاكواد و استخدام ال vba لن أقلق علي البداية ( لأني سأنقل من هنا مع الاشارة طبعا اول تعليق : فيما يخص : معرفات الوسائط : ByVal ByRef Optional فأود أن َضيف أنه أن Byref هي القيمة الافتراضية في حالة عدم الاختيار
  14. Format Sheet Unhide و للتعديل فيها Tools Protection Unprotect Sheet و لا تنسي اعادة الحماية ثم الاخفاء بعد التعديل مع تحياتي
  15. الجزء االثاني - محتوبات الموضوع : إنشاء إستعلام إختيار باستخدام المعالج تمثيل العلاقات المختلفة بجمل الاس كيو ال استعلام الجداول المحورية إٍستعلام إيجاد القيم المتكررة إستعلام إيحاد القيم الغير متماثلة المجموعات فى الأكسس الموضوع من هنــــــــــــــــــــــاو المثال التطبيقي من هنــــــــــــــــــــا
      • 1
      • Thanks
  16. الجزء االثاني - محتوبات الموضوع : إنشاء إستعلام إختيار باستخدام المعالج تمثيل العلاقات المختلفة بجمل الاس كيو ال استعلام الجداول المحورية إٍستعلام إيجاد القيم المتكررة إستعلام إيحاد القيم الغير متماثلة المجموعات فى الأكسس الموضوع من هنا و المثال التطبيقي مرفق Q2.zip
      • 2
      • Like
      • Thanks
  17. شكل راااااااااااااااااائع و فكرة جميلة أمضيت خمسة دقائق قبل أن أصل الي الفكرة :)
  18. لتشغيل الكود فى الاكسيل اما تشغيله عند حدث معين مثل : فتح ملف تغيير فى ورقة عمل ضغط علي زر و للتعرف علي الاحداث المرتبطة بالكائنات اضغط alt+F11 ثم انقر مرتين علي اكائن سواء كان الملف أو ورقة العمل ستجد فى اليمين مربعي سرد COMBO BOX من أحدها تختار الكائن و من الاخر تختار الحدث فيكتب لك بداية الروتين الفرعي المرتبط بالحدث و الذي تضع الكود داخله مثل Private Sub Workbook_Open() هنا يكتب الكود End Sub أو اذا كان مكتوب فى Sub Routine لها اسم مخصص غير مرتبط بحدث مثل Sub IBNSINA1() هنا يكتب الكود End Sub سيظهر فى قائمة الماكرو و يمكن تشغيله من القائمة أو بضغط ALT+F8 و اختياره ثم تشغيله و اذا كان فى دالة Function Function IBNSINA() هنا يكتب الكود End Function فيمكن استدعاء الدالة مثل باقي الدوال الموجودة فى الاكسيل و ذلك من القسم المسمي User Defined Functions من مجموعات الدوال و توجد مقدمة عن الكود و استخدامه فى الاكسيل هنا ( اضغط هنا )
  19. مشكور أخ رضا :) و نرجو ارفاق الملف نفسه ، لتكتمل الفائدة مع تحياتي
  20. نعم و ما يرتبط بالاعدادات الاقليمية هو خيار الصفر نفسه ( حسب ما فهمت من التعليمات ) Weekday(K, 0)
  21. السلام عليكم تم تعديل الملف بتفيذ ما تفضل به الأخ أبو هادي : التسجيل يتم فى نفس الخلية b65535 و لكن فى ورقة عمل تسمي S و هي مخفية و محمية بكلمة سر = m Private Sub Workbook_Open() Application.ScreenUpdating = False Sheets("s").Visible = True ActiveWorkbook.Sheets("s").Select ActiveSheet.Unprotect ("m") Range("a1").Activate Dim aa As Byte If IsNull(Range("b65535").Value) Then Range("b65535").Value = 1 End If aa = Range("b65535").Value If aa = 5 Then MsgBox "Used for 5 times , no more use is allowed !!" ActiveSheet.Protect Password:="m", DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWindow.SelectedSheets.Visible = False Application.ScreenUpdating = True Application.ActiveWorkbook.Save Application.ActiveWorkbook.Close Exit Sub Else Dim bb As String bb = Str(aa + 1) MsgBox "This File was used " & bb & " Times " End If Range("b65535").Value = aa + 1 ActiveSheet.Protect Password:="m", DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveWindow.SelectedSheets.Visible = False Application.ScreenUpdating = True Application.ActiveWorkbook.Save End Sub و لتفريغ الخلية بعد استفاذ الخمسة مرات لا نفعل الماكرو اذا سأل عند فتح الملف فى حالة مستوي الحماية المتوسط ، أو نضغط شيفت مع الفتح لايقاف الماكرو فى حالة التشغيل التلقائي للماكروهات ثم نظهر الورقة المسماة s ثم نفك حمايتها ، بكلمة السر M ثم نفرغ الخلية التي نسجل بها القيمة و بالنسبة للكود تم اضافة Application.ScreenUpdating = False حتي لا يري المستخدم عملية اظهار و فك حماية الشيت من أجل تسجيل القيمة بها و أعيد تفعيلها قبل الخروج أيضا أضيفت كلمة سر لللحماية عند تفعيلها ActiveSheet.Protect Password:="m" و استخدمنا نفس كلمة السر عند فك الحماية ActiveSheet.Unprotect ("m") مع تحياتي Countopens2.zip
  22. السلام عليكم يكون ذلك بازالة السطر التالي MsgBox "This File was used " & bb & " Times " أو وضع علامة ' فى بدايته 'MsgBox "This File was used " & bb & " Times " و نفس الشيء مع الرسالة التي تخبر ببلوغ عدد المرات 5 MsgBox "Used for 5 times , no more use is allowed !!"
  23. Private Sub Workbook_Open() ActiveWorkbook.Sheets(1).Select Range("a1").Activate Dim aa As Byte If IsNull(Range("b65535").Value) Then Range("b65535").Value = 1 End If aa = Range("b65535").Value If aa = 5 Then MsgBox "Used for 5 times , no more use is allowed !!" Application.ActiveWorkbook.Close Exit Sub Else Dim bb As String bb = Str(aa + 1) MsgBox "This File was used " & bb & " Times " End If Range("b65535").Value = aa + 1 Application.ActiveWorkbook.Save End Sub و تسجيل الرقم يتم فى الخلية b65535 و تم تغيير لونها الي الابيض للتمويه و يمكن اضافة التحكم فى مستوي حماية الماكرو ( تفعيل الكود فى الملف تلقائيا ) و يوجد مثال ف الارشيف علي ذلك Countopens.zip
  24. بصراحة ، مفاجأة و لم أتصور أن الكود سيكمل بعد اغلاق الفورم الثاني :yess: جزاك الله خيرا علي المعلومة المفيدة :d
  25. جميل جدا و إضافة بسيطة أن الافتراضي أن بداية الاسبوع هو يوم رقم 1 أو الأحد = vbsunday و فى مثال الأخ أبو هادي وضع بداية الاسبوع السبت باستخدام vbsaturday او رقم 7 Weekday(K, 7) و في حالة وضع رقم صفر بدل 7 يستخدم الاعدادات الافتراضية المناظرة للبلد المختارة فى لوحة تحكم الويندوز Weekday(K, 0) و بالنسبة لحهازي فصفر تعطي نفس نتيجة 7 فى المثال و البلد عندي مصر فهل نفس النتيجة لديكم ؟؟ و هذا المثال شامل الاحتمالات كلها الي دالة الاخ ابو هادي لسهولة المقارنة weekday.zip
×
×
  • اضف...

Important Information