اذهب الي المحتوي
أوفيسنا

amoudi

03 عضو مميز
  • Posts

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

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

السمعه بالموقع

3 Neutral

عن العضو amoudi

البيانات الشخصية

  • Gender (Ar)
    ذكر
  • Job Title
    PROG
  • البلد
    السعودية

وسائل التواصل

  • MSN
    myboxhere@hotmail.com
  • ICQ
    0

اخر الزوار

789 زياره للملف الشخصي
  1. السلام عليكم اخي aah_aah2008 جرب الكود التالي بعد التعديل Private Const SC_CLOSE As Long = &HF060& Private Const MF_BYCOMMAND = &H0& Private Declare Function DeleteMenu Lib "user32.dll" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long Private Declare Function GetSystemMenu Lib "user32.dll" (ByVal hWnd As Long, ByVal bRevert As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal ClassName As String, ByVal WindowName As String) As Long Private Sub UserForm_Initialize() DeleteMenu GetSystemMenu(FindWindow("ThunderDFrame", Me.Caption), False), SC_CLOSE, MF_BYCOMMAND End Sub تحياتي
  2. السلام عليكم لمنع اغلاق الملف Private Sub Workbook_BeforeClose(Cancel As Boolean) Cancel = True End Sub
  3. السلام عليكم يمكنك استخدام للإقفال بدون حفظ ActiveWorkbook.Close False للإقفال مع الحفظ ActiveWorkbook.Close True تحياتي
  4. السلام عليكم اضافة للفائدة عشان ما تكون المعادلة طويلة لو زادت الخانات يمكن استخدام =SUMPRODUCT((E10:G10)*AND(E10:G10>5)) تحياتي
  5. السلام عليكم اخي نزار ياريت تعدل الكود اعتقد فيه غلط لأنه -COUNTBLANK(A4:J4)+COUNTBLANK(A4:J4) هذه نتيجتها صفر يعني مالها قيمة في المعادلة تحياتي
  6. السلام عليكم شكرا أخي نزار على الأضافة بس ياريت تذكر المصدر http://support.microsoft.com/kb/214053 عشان الناس تستفيد من الشرح في المصدر او انك تأخذها من المصدر وتضعها في مثال وترفقه مع الشرح . وللمعلومية هذا الكود {=SUM(VALUE(MID(A10,ROW(A1:OFFSET(A1,LEN(A10)-1,0)),1)))} هو نفسه الكود =SUMPRODUCT(VALUE(MID(A10,ROW(A1:OFFSET(A1,LEN(A10)-1,0)),1))) هو نفسه الكود {=SUM(VALUE(MID(A10,ROW(INDIRECT("1:"&LEN(A10))),1)))} هو في النهاية نفس الحل وجميل يكون في كذا طريقة للحل بس انا اشوف مهم عند وضع حل يكون مرفق بالشرح . وملاحظة انت وضعت معادلتين واحدة للموجب واواحدة للسالب (مثل ما هو موجود بموقع ميكروسوفت) بس الأفضل اعتقد , ممكن تستخدم دالةABS وتصير معادلة وحدة تنفع للموجب والسالب(يعني لايغرك ميكروسوفت ) {=SUM(VALUE(MID(ABS(A10),ROW(A1:OFFSET(A1,LEN(ABS(A10))-1,0)),1)))} تحياتي
  7. السلام عليكم اخي الكريم موضوع Array Formula موضوع يطول شرحة . انشاء الله أحاول أجد وقت لذلك . والأ وقته احاول اذا في استفسار يمكن حله عن طريق Array Formula سأجيب مع الشرح انشاء الله. على العموم اذا وجدت معادلة Sumproduct في الحلول فمعناه الى حدا ما يمكن استخدام Array Formula بدل من منها . تحياتي
  8. السلام عليكم اخي ابوهاجر اشكرك على سعة صدرك بس كله علشان الجميع يستفيد وانا بصراحة مستني ندخل في اكواد متقدمة , وقتها اعتقد المداخلات حتكون مفيدة أكثر . للمعلومية Dim condition As Boolean condition = False بشكل افتراضي اول ما نعرف متغير من نوع Boolean حيأخد القيمة False تحياتي
  9. السلام عليكم بعد إذن اخي نزار المعادلة مثل ما هي مكتوبة =INDEX(A3:A12,MATCH((B3:B12),B3:B12,0)) كأنك تقول =A1:A3 =A1 مافي فرق اتوقع كتبت بالخطاء بالنسبة لكود لأكسيل 2007 =IF(IFERROR(MATCH(A6,$B$2:$B$100,0),"")<>"",A6,"") ممكن تكتب في اي نسخة من الأكسيل بطريقة أخرى و بنفس النتيجة =IF(ISNA(MATCH(A6,$B$2:$B$100,0)),"",A6) تحياتي 111.rar
  10. السلام عليكم اخي الكريم الحساب في الملف موضوع على يدوي خليه تلقائي أدوات خيارات (حساب) اشر على تلقائي تحياتي
  11. السلام عليكم اولا شكرا لك على مجهودك لتوضيح الشي ذكرت True =1 , وفي تصحيحي True=-1 انا ذكرت انه اذا حنتكلم عن VBA يعني مش في معادلات الخلايا امثلة TRUE +TRUE=2 خطاء TURE+TRUE=-2 TRUE *1 =1 خطاء TRUE*1 = -1 True + 5=6 خطاء True + 5=4 Dim var As Boolean var = True If var = 1 Then MsgBox "var=1" Else MsgBox "var <>1" End If النتيجة الرسالة الثانية Dim var As Boolean var = True If var = -1 Then MsgBox "var=-1" Else MsgBox "var <>-1" End If النتيجة الرسالة الأولى تحياتي
  12. السلام عليكم تم الشرح في نفس المواضيع http://www.officena.net/ib/index.php?showtopic=27249 http://www.officena.net/ib/index.php?showtopic=27241 تحياتي
  13. السلام عليكم بناء على طلب الأخ Best سوف اشرح هذا الحل لأنه يوجد اكثر من حل . الحل هو 1+ 3 +6+0 = 10 ولكن كيف نوصل لهذا الحل يعني نفرق الأرقام كل رقم لوحده , طبعا الأمثلة القادمة بفرض انه الرقم 1360 موجود في الخلية A1 نعرف ان بإمكاننا نستخدم دالة MID لكي نستخلص اي قيمة من نص بعدد معين من موقع معين يعني MID(text,start_num,num_chars) =MID(A1,1,4) معناه استخلص من النص الموجود في الخلية A1 ابتداء من اول حرف وبعدد 4 حروف فالنتيجة حتكون 1360 =MID(A1,2,3) معناه استخلص من النص الموجود في الخلية A1 ابتداء من ثاني حرف وبعدد 3 حروف فالنتيجة حتكون 360 =MID(A1,3,1) معناه استخلص من النص الموجود في الخلية A1 ابتداء من ثالث حرف وبعدد 1 حروف فالنتيجة حتكون 6 بهذه الطريقة اقدر استخرج كل رقم لوحدة يعني =MID(A1,1,1) حتكون النتيجة 1 =MID(A1,2,1) حتكون النتيجة 3 =MID(A1,3,1) حتكون النتيجة 6 =MID(A1,4,1) حتكون النتيجة 0 يعني بكذا نكون نقدر نعرف كل رقم لوحده وممكن نكتب معادلة زي كده =MID(A1,1,1)+MID(A1,2,1)+MID(A1,3,1)+MID(A1,4,1) والنتيجة حتكون 1+ 3 +6+0 = 10 طبعا الحل هذا مش عملي مئة بالمئة لأنه ممكن تكون عندك خانات كثيرة وتغيرة الطول يعني مش دائما 4 خانات (المهم مش موضوعنا) نجي للحل الأحسن نلاحظ في المعادلة =MID(A1,1,1)+MID(A1,2,1)+MID(A1,3,1)+MID(A1,4,1) انه عبارة عن جمع معادلات متشابها ولكن يزيد في كل معادلة رقم يعني 1 في الأول وبعدين يصير 2 وبعدين يصير 3 وبعدين يصير 4 الى هو طول النص والى الدالة LEN تعطينا اياه . يعني الموضوع عبارة عن مجموع دالة واحدة بمتغير معروف الى هو من 1 الى طول النص(1360) يعني 1و2و3و4 ولو النص كان 78 كان نجتاج 1 و 2 ولو كان الرقم 13657 حنحتاج 1و2و3و4و5 حندخل في التعقيد انا الآن عرف اني محتاج مجموع الدالة mid لكن لازم بكذا قيمة يعني MID للحرف الأول وMID للحرف الثاني وMID للحرف الثالث ,MID للحرف الرابع يعني MID بمصفوفة قيم {1,2,3,4} ومادام مجموع ومصفوفة فحنفكر يا في SUMPRODUCT او في SUM ARRAY فخلينا في الأول احسن نحن نعرف انه الدالة SUMPRODUCT تأخد بيانات مصفوفة سواء خلايا او ارقام او معادلات يعني =SUMPRODUCT(B1:B3) حيعطيك مجموع القيم في B1,B2,B3 , =SUMPRODUCT({2,3,4}) حيعطيك اجمالي 2 +3 +4 =9 =SUMPRODUCT(B1+{2,3,4}) لو B1 فيها رقم 10 مثلا فحتكون النتيجة B1+2 + B1+3 + B1+4 يعني 2+10 + 3 +10 + 4+10 المجموع 39 طيب انا ممكن اقول =SUMPRODUCT(VALUE(MID(A1,{1,2,3,4},1))) كأننا نقول MID(A1,{1},1)+MID(A1,{2},1)+MID(A1,{3},1)+MID(A1,{4},1) يعني 1 +3 +6 +0 للمعلومية VALUE عشان النص يتحول لرقم ويمكن استخدام -- طيب جميل وصلنا لهذا الكود =SUMPRODUCT(VALUE(MID(A1,{1,2,3,4},1))) طيب هذي {1,2,3,4} ممكن اضع بدالها (ROW(1:4 رح تعطي نفس النتيجة , (ROW(1:6 تعطينا 1,2,3,4,5,6 وهكذا طيب مادام انا عارف طول النص بأستخدام الدالة LEN فممكن اضع (ROW(1:LEN(A1 ويعطينا( ROW(1:4 بفرض طول الرقم في الخلية اربع خانات بس الدالة ROW تأخد مرجع داخلها يعني (ROW(Referance عشان كده نستخدم الدالة INDIRECT تأخد نص وترجعه كمرجع (للمعلومية ممكن نستخدم Offset بدل Indirect ) يعني =ROW(INDIRECT("1:"&LEN(A1))) حتكون =ROW(INDIRECT("1:"&4)) حتكون =ROW(INDIRECT("1:4")) =ROW(1:4) حتكون {1,2,3,4} وتكون وصلنا للمطلوب فالتسلسل يصبح =SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1)) ال LEN حتعطينا 4لأنه طول النص 4 خانات =SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:" & 4)),1)) =SUMPRODUCT(--MID(A1,ROW(INDIRECT("1:4")),1)) =SUMPRODUCT(--MID(A1,ROW(1:4),1)) الROW حتعطينا مصفوفة =SUMPRODUCT(--MID(A1,{1,2,3,4},1)) بفرض A1 قيمتها 1360 =SUMPRODUCT(--MID("1360",{1,2,3,4},1)) =SUMPRODUCT(--{"1","3","6","0"}) هنا علامة -- حتحول النص الى ارقام وممكن نستخدم الدالة VALUE بدل منها =SUMPRODUCT({1,3,6,0}) =10 أتمنى اكون وفقت في الشرح لأنه محرر النصوص حق المنتدى عقدني بصراحة تحياتي
  14. السلام عليكم أذا حنتكلم عن VBA فأعتقد true = -1 false = 0 تحياتي
  15. السلام عليكم المعادلة مثل اي معادلة عادي تضعها في الأول وتسحبها للأسفل يعني مثلا معادلة A1-B1= كيف كنت حتطبقها على كامل العامود ؟ حيكون نفس الشي للمعادلة السابقة . تحياتي
×
×
  • اضف...

Important Information