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

ابو تراب

الخبراء
  • Posts

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

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

  • Days Won

    5

كل منشورات العضو ابو تراب

  1. هلا نايف يمكنك الوصول لقيمة الخلية عن طريق الكود التالي: Target.Value
  2. وعليكم السلام على حسب علمي انه لايمكنك وجود اكثر من ايقونة في نفس الوقت لنفس امتداد الملف. على كلا هناك طريقة اخرى وهى عمل اختصار Shortcut للملف و من ثم تغيير ايقونة الاختصار كما ترغب
  3. بارك الله فيك اخي الغالي ياسر و جزيت حيرا على ماتقدم للمنتدى تقبل تحياتي
  4. هذه محاولة عند تصغير نافذة الاكسل سيتم زيادة الخلية A بواحد جرب المرفق و خبرنا Check Excel Window State.zip
  5. جرب المرفق Windows Minimize Resize Maximize.zip
  6. وعليكم السلام و رحمة الله هلا اخي اكرم يمكنك عن طريق الحدث WindowResize تبع ال Workbook كتبت لك كود بسيط لتجريب Private Sub Workbook_WindowResize(ByVal Wn As Window) If Wn.ActiveSheet.Name = "Sheet1" And Wn.WindowState = xlMinimized Then Application.DisplayFormulaBar = False End If End Sub
  7. ماشاء الله لا قوة الا بالله ...اكواد جميلة من الاستاذ سليم و الاستاذ ياسر هذه اضافة عن طريق Like بدون استخدام محرك Regular Expression ارجوا ان تنال اعجايكم Function AlphaNum(txt As String, Optional numOnly As Boolean = True) As String Dim i As Long Dim Pattern As String If numOnly Then Pattern = "[0-9]" Else Pattern = "[!0-9]" End If For i = 1 To Len(txt) If Mid(txt, i, 1) Like Pattern Then AlphaNum = AlphaNum & Mid(txt, i, 1) Next i End Function
  8. جزاك الله خيرا استاذ ابن مصر على مشاركتنا الكود فكرة استخدام الفلتر فكرة مبتكرة و ارى انه يمكن تطبيقها في حالات كثيرة على كلا و اثراء للموضوع يمكن ايضا استخدام حاصية ComboBox1.MatchFound تقبل تحياتي و شكري
  9. هلا باخي الفاضل نايف .. شكرا الله لك كلماتك الطيبة و مرورك الكريم حياك اخي الفاضل و ليد... شكرا على مرورك الكريم و اعجابك بالموضوع الاستاذ محمد الريفي ...جزاك الله خيرا على الفكرة الرائعة .. و تقبل تحياتي و تقدير على مرورك العطر و كلماتك المشجعة
  10. يامرحبا بأخي الغالي الجموعي .. سعد بمرورك العطر و جمال عباراتك تقبل تحياتي
  11. هلا و غلا بأخي الغالي ياسر شاكر لك مرورك العطر و تفضلك بأضافتها لمكتبتك الرائعة استاذ ياسر لا تحتاج طبعا لاي أذن .. المنتدى لتبادل الخبرات و هو مجاني للجميع ليستفيد و يستفاد تقبل تحياتي
  12. الاستاذ ابن مصر شاكرا لك مرورك الكريم و كلمات الطبية تحياتي لشخصك الكريم
  13. الاستاذ محمد الريفي .. انت رائع الهمتني فكرة افضل و اكثر احترافية هذا الكود بأستخدام ال Data Validation If Not Intersect(Target, Range("H3:J12")) Is Nothing And Target.Count = 1 Then With Target.Validation .Delete Select Case Target.Column Case 8: .Add Type:=xlValidateInputOnly .InputTitle = "الأسم": .InputMessage = "الاسم الأول متبوع بأسم العائلة" Case 9: .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Formula1:="=And(mod(" & Target.Address & ",1)=0," & Target.Address & ">0)" .InputTitle = "العمر": .InputMessage = "العمر بالسنوات" .ErrorTitle = "الخطأ": .ErrorMessage = "العمر يجب ان يكون كبر من الصفر و بدون كسور" Case 10: .Add Type:=xlValidateInputOnly .InputTitle = "العنوان": .InputMessage = "عنوان الاقامة الحالي" End Select End With End If مرفق ملف لمن اراد تطبيق الطريقة سيتم اظهار رسالة خطأ اذا ادخل العمر بأقل من صفر او بكسور تقبل تحياتي Cell Tip and Data Validation.zip
  14. السلام عليكم ورحمة الله وبركاته اعضاء منتدانا الكرام هذه محاولة لعمل رسالة تلميحية لخلية بالاكواد ارجوا ان تنال اعجابكم. اعلم انه يمكنك عملها عن طريق اضافة تعليق و لكن هذه محاول عبر الكود بحيث يظهر التلميح عند اختيار الخلية المناسبة. الفكرة هى وضع شكل Shape و تنسيقه و من ثم تسميته بما تشاء (اسميته هنا بـ CellTip) بعدها يمكنك التحكم به كما في الكود التالي: Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ActiveSheet.Shapes("CellTip") If Not Intersect(Target, Range("B3:D12")) Is Nothing And Target.Count = 1 Then .Top = Target.Top + 20 .Left = Target.Left With .TextFrame2.TextRange.Characters Select Case Target.Column Case 2: .Text = "الاسم الأول متبوع بأسم العائلة" ' B = الاسم Case 3: .Text = "العمر بالسنوات" ' C = العمر Case 4: .Text = "عنوان الاقامة الحالي" ' D = العنوان End Select End With .Visible = True Else .Visible = False End If End With End Sub لمزيد من التوضيح انظر الملف المرفق. الحمد لله وحده الذي بنعمه تتم الصالحات Cell Tip.zip
  15. كود لتحويل امتداد الملف من XLSM الى XLSX (اي ملف بدون اكواد) ملف مرفق للتطبيق Public Sub ConvertXLSMtoXLSX() ' عرف متغيرات تشير للملف الحالي Dim SourceFile As String: SourceFile = ThisWorkbook.FullName Dim SourceName As String: SourceName = ThisWorkbook.Name Dim SourcePath As String: SourcePath = ThisWorkbook.Path & "\" ' عرف ملف مؤقت من اجل التحويل Dim TempFile As String: TempFile = Replace(SourceFile, ".xlsm", "_TEMP.xlsm") Application.DisplayAlerts = False ' احفظ الملف اولا ThisWorkbook.Save ' عرف متغير للوصول لملفات Dim fso As Object: Set fso = CreateObject("Scripting.FileSystemObject") ' احذف الملف المؤقت اذا وجد On Error Resume Next fso.deletefile TempFile, True On Error GoTo 0 ' اعمل نسخة من الملف الحالي fso.CopyFile SourceFile, TempFile, True ' افتح النسخة المؤقتة Dim TempWB As Workbook Set TempWB = Workbooks.Open(TempFile) ' احفظ بأسم و حول امتداد الملف ActiveWorkbook.SaveAs Filename:=SourcePath & Left(SourceName, Len(SourceName) - 5) & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False ' اغلق النسخة TempWB.Close Application.DisplayAlerts = True ' احذف النسخة المؤقتة On Error Resume Next fso.deletefile TempFile, True On Error GoTo 0 End Sub Convert XLSM to XLSX.zip
  16. هلا اخي الفاضل عبدالله يمكنك الان اختيار التواريخ كما تشاء ووضع النتيجة في الخلية التي تريد جرب المرفق طرح التاريخ بتقويم ام القرى.zip
  17. اخي علي جرب الاطلاع على الرابط التالي و خصوصا المشاركة رقم 22 http://www.officena.net/ib/index.php?showtopic=57923&page=2#entry371630
  18. فكرة استخدام الخاصية Tag فكرة ذكية فعلا تقبل اخي الغالي الجموعي اعجابي و شكري
  19. هلا بيك اخي سبب الخطأ هو ان ال VBA تعمل في مسار واحد فقط Single thread بمعنى اخر اذا تم تحرير اي خلية (اي ان الخلية في وضع التحرير Edit mode) فأن جميع الخلاياء في الاكسل ستكن في وضع الانتظار الى ان تتم عملية انهاء تحرير تلك الخلية.... هنا فأن المؤقت تبعنا سيحاول تحديث الخلية A1 الا انه سيجد ان الاكسل يمنعه مم ايؤدي الى تعارض بينهما و عندها يتدخل الويندوز لحلها عن طريق الغاء المؤقت تماما ولهذا نبهت ان يتم استخدامه بحذر. على كلا اذا اردت مؤقت بالثانية و ليس بالمللي ثانية فأعتقد استخدام Application.OnTime مع ملاحظة انه سينتظر الى ان يتم انهاء تحرير الخلية و بعدها سيكمل التنفيذ.
  20. ماشاء الله عليك استاذ سليم .. طريقة ممتازة للبحث و عرض النتائج.. الى الان وجدت ثلاثة مهارات في ملف واحد .. البحث عن طريق Find و FindNext و معادلة عرض النتائج و كذلك برمجة Format Condition شكرا الله لك عن كل حرف كتبت
  21. اهلا و سهلا بالاستاذ ابو القبطان شرفنا مرورك الكريم وكلماتك الطيبة تقبل تحياتي
  22. ماشاء الله تبارك الله شرح ولا اروع ... فعلا السهل الممتنع جزاك الله خيرا استاذ حسام عن كل حرف كتبت
  23. الاستاذ الفاضل الصقر .. اولا احب ان احييك على روحك الرائعة و همتك العالية كما اشكرك على توضيح الطريقة التي تحسب بها شركتكم الموقرة و احب ان اوضح ان كلا الطريقتين هما صحيحتين و يعتمد الامر على سياسة الشركة في المرفق تحليل بسيط للمعادلتين حيث نحاول ان نجيب على السؤال التالي: اي المعدلتين تصب في مصلحة الشركة و ايها لصالح المندوبين؟ نتيجة التحليل معادلة السيد جمال لصالح الشركة بينما معادلة السيد الصقر لصالح المندوبين. رأيي المتواضع في المسألة: اميل الى معادلة شركتكم و ذلك ان الغرض الاساسي لها هو تشجيع المندوبين على بذل اقصى مهاراتهم لزيادة نسبة المبيعات. كما اميل لمعادلة الاستاذ جمال عند استخدامها من جانب الشركات الخدمية التي تتعامل مع المواطنين. فمثلا شركة الكهرباء تعتمد في حساب الفواتير على معادلة السيد جمال و ذلك لتقليل نسبة الزيادة في الفاواتير و من ثم تشجيع المواطنين على الدفع. توضيح بعض الفروقات من الرسم البياني نجد ان كلا المعادلتين تتطابق من 0 الى حاجز 250 الف. من ال 250 الف الى 350 الف تستمر نسبة الزيادة الى ان تصل لذروتها 6% من حاجز 350 الف نجد ان الفرق في القيمة ثابت و لايتغيير بينما نسبة الزيادة في انحدار. مرفق ملف لتوضيح هذا و الله اعلم commission.zip
  24. تنبية استخدام الدالة INFO لن يجدي اذا تم تغيير المسار الافتراضي لحفظ الملفات Default File Location مثلا : اسم المستخدم AbuTurab فالمسار الافتراضي هو C:\Users\AbuTurab\Documents اما في حالة تغييره الى مثلا: C:\work\Excel فلن ينجح اعتقد الخيار الاسلم هو عبر ال VBA
  25. هذه محاولة للحصول على اسم مستخدم الويندوز =MID(INFO("DIRECTORY"),10,FIND("\",INFO("DIRECTORY"),10)-10) استاذ ياسر شكرا على مشاركتنا لل =GET.WORKSPACE .. اذا لم اكن مخطئا فهى تعطي اسم مستخدم الاكسل و ليس الويندوز
×
×
  • اضف...

Important Information