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

أبو حنــــين

الخبراء
  • Posts

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

  • Days Won

    9

كل منشورات العضو أبو حنــــين

  1. السلام عليكم جزاكم الله خيرا اخي ابو قاسم --------------------------------------------- اخي مهند جزاكم الله خيرا كنت اتوقع بعض الهفوات في الملف هناك سطر يجب اضافته اذهب الى الموديل رقم 2 : Module2 و اكتب تحت هذا السطر ( السطر السابع ) :.Range("A8:E" & Last).Borders.Value = 0 ضف هذا السطر : .Range("A8:E" & Last).ClearContents يصبح بهذا الشكل With sh Last = .Range("A" & Rows.Count).End(xlUp).Row + 1 .PageSetup.PrintArea = "" .Range("A8:E" & Last).Borders.Value = 0 '----------------------------------------------------- . هذا هو السطر المعني بالاضافة Range("A8:E" & Last).ClearContents '------------------------------------------------------- .PageSetup.LeftMargin = Application.InchesToPoints(0.5) .PageSetup.RightMargin = Application.InchesToPoints(0.5)
  2. السلام عليكم انعمت مساءا أخي إبراهيم سعدت بمروركم العطر جزاكم الله خيرا تقبل تحياتي
  3. مرحبا لم انتبه للموضوع و ساحاول فيه ان شاء الله اما في ما يخص الكمبوبكس فصدقني لم يصادفني في النت طريقة مثل هذه الطريقة و الميزة ليست في السرعة فقط و انما في تغير الكمبوبكس الثاني حسب ما يحتويه الكمبوبكس الاول و هذا الكود هو الذي استهلك جل الوقت حتى تحايلت عليه بالطريقة التي رأيتها
  4. اخي انس جزاك الله خيرا لقد اجبت عن سؤالك في الموضوع ارجع اليه لتجرب الكود ، و ارجو ان يفي بالغرض اخي انس جزاك الله خيرا لقد اجبت عن سؤالك في الموضوع ارجع اليه لتجرب الكود ، و ارجو ان يفي بالغرض
  5. Private Sub TextBox1_Change() On Error Resume Next Label1.Visible = True Label2.Visible = True Label3.Visible = True Label4.Visible = True Label5.Visible = True Label6.Visible = True ListBox1.Visible = True '======================================= Dim ws As Worksheet Dim V As Integer Dim LastRow As Integer Dim M As String Dim Q, F ListBox1.Clear If TextBox1.Text = "" Then GoTo 1 M = TextBox1.Text Set ws = Sheets("Sheet1") With ws LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row Set Q = .Range("A2:A" & LastRow).Find(M) If Not Q Is Nothing Then F = Q.Address Do If Application.WorksheetFunction.Search(M, Q, 0) = 1 Then If Q.Offset(, 1) = TextBox8.Text Then ListBox1.AddItem Q.Value ListBox1.List(V, 1) = Q.Offset(0, 1).Value ListBox1.List(V, 2) = Q.Offset(0, 2).Value ListBox1.List(V, 3) = Q.Offset(0, 3).Value ListBox1.List(V, 4) = Q.Offset(0, 4).Value V = V + 1 End If: End If Set Q = .Range("A2:A" & LastRow).FindNext(Q) Loop While Not Q Is Nothing And Q.Address <> F End If End With 1 End Sub اخي انس جرب الكود التالي في الملف الذي نشرته في مشاركتك الاخيرة لم اقم باي تغيير سوى إشرك مربع النص رقم 8 في البحث
  6. السلام عليكم أرى أنه من الأحسن العمل في ملف واحد لسهولة الوصول للمعلومة رغم انني لا اعرف مدى حجم هذه المعلومات و يا حبذا لو كانت هناك امثلة على ما ذكرته في البداية لنقوم بالعمل عليها فمثلا ترسل ملفا يحتوي على القائمة الرئيسية و الفروع حتى و لو ببانات قليلة لتكون الفكرة واضحة فليس الخبر كالاعيان جزاكم الله خيرا
  7. أخي جلال الدين جزاكم الله خيرا على المرور
  8. السلام عليكم : أخي الصقر أخي أبو عبد الرحمان أخي محي الدين سعدت كثيرا بمروركم العطر ، جزاكم الله خيرا و أنعم عليكم بالصحة ة الهناء و المغفرة تقبلوا تحياتي الخالصة
  9. أخي ياسر جزاك الله خيرا دائما سباق للخير تقبل الله منا و منكم صالح الاعمال
  10. السلام عليكم قام أخي أنس دروبي بنشر موضوع ( فورم بحث بأكثر من ثلاث خيارات ) ، و بناءا على طلبه وضعت هذا الفورم في موضوع مستقل ليسهل الوصول اليه اثناء البحث في المنتدى أخبركم إخواني أنه إستغرق منى أكثر من 10 ساعات عمل ( متقطعة ) و و الله انها الحقيقة و رغم ذلك ربما سيكون فيه بعض الاخطاء ( فجل من لا يسهو ) و ان كانت هناك اخطاء فيمكن استدراكها بعد ملاحظاتكم و تجربتكم للفورم . ألا يستحق هذا دعاءا في ظهر غيب ؟ طريقة تصميم فورم بحث عن طريق لست بوكس2.rar
  11. السلام عليكم سأرفع الملف في موضوع مستقل ليستفيد الجميع و هذا تلبية لرغبتك
  12. مرحبا الظاهر إني مثل الأعمى في الزفة ، حصلت حجات من ورايا و انا ميش داري على العموم اعتذر عن التأخر في الرد لانشغالي بتحضير فورم لاحد الاخوة في المنتدى به الكثير من الميزات استغرق منى أكثر من 10 ساعات عمل و والله انني اقول الصدق و جزيل الشكر لـكم جميعا : الأخ وائل والأخ ياسر الأخت أم روان
  13. السلام عليكم اخي هل تريد البحث بمعيارين اي بناءا على مربع النص الاول و الثاني ؟
  14. اخي هناك الكثير من الطرق للتحايل على المستخدم بعدم الولوج الى مكان معين و على كل حال فالإخفاء و الاظهار يعتمد على السطرين التاليين CommandButton1.Visible = False CommandButton1.Visible = True
  15. على كل حال الشرح يكون كالتالي Sub استدعاء() ' في حالة الخطأ إستمر On Error Resume Next '----------------------------------- '************************************ '------------------------------------ ' اذا كانت الخلية بي4 فارغة و سي4 فارغة و أو4 فارغة ، إذا If [B4] = "" And [C4] = "" And [E4] = "" Then '------------------------------------- '************************************* '------------------------------------ ' اخرج مساج بوكس نصه هو التالي MsgBox "يجب اختيار حساب بدلالة رقم الحساب او اسم الحساب او اختار رقم فيد", vbInformation + vbMsgBoxRight, "تنبيه" '----------------------------------- '*********************************** '---------------------------------- ' و إلا Else '---------------------------------- '*********************************** '---------------------------------- ' إمسح النطاق : ـ [B9:H200].ClearContents '---------------------------------- '********************************** '----------------------------------- ' الخلية بي 6 تساوي فراغ مضاف اليه الخلية كا 1 ( مضاف لا تعني علامة + و غنما توضع بجانبها [B6] = "" & [K1] '----------------------------------- '********************************** '---------------------------------- 'امنع اهتزاز الشاشة Application.ScreenUpdating = False '---------------------------------- '********************************** '---------------------------------- 'حلقة تكرار تبدأ من 1 الى عدد صفحات العمل For x = 1 To Sheets.Count '----------------------------------- '********************************** ' اسناد الصفحة الحالية الى رقم المتغير إكس MySheets = Sheets(x).Name '--------------------------------- '********************************* '--------------------------------- ' إذا كان اسم الصفحة هو : قيود اخرج من الحلقة التكرارية If Sheets(x).Name = "القيود" Then Exit For '----------------------------------- '*********************************** '----------------------------------- ' حلقة اخرى بدايتها الصف الثالث و نهايتها آخر شيئ مكتوب في العمود أ For R = 3 To Sheets(MySheets).[A1500].End(xlUp).Row '--------------------------------- '********************************* '--------------------------------- ' اذا كانت الخلية حسب قيمة المتغير آر في العمود الرابع تساوي الخلية بي 4 ( نفس الشيئ بالنسبة لبقية السطر مع بعض التغييرات ) ـ If (Sheets(MySheets).Cells(R, 4) = [B4] Or Sheets(MySheets).Cells(R, 6) = [C4] Or Sheets(MySheets).Cells(R, 1) = [E4]) And (Sheets(MySheets).Cells(R, 7) >= [G4] And Sheets(MySheets).Cells(R, 7) <= [H4]) Then '-------------------------------- '********************************** '--------------------------------- ' انظر الى آخر خلية فارغة في العمود بي من ورقة القيود With Sheets("القيود").[B200].End(xlUp) '------------------------------- '******************************** '--------------------------------- ' امشي بصف واحد من أخر خلية في العمود بي وأكتب فيها ما هو موجود في الخلية مصدر البحث الموجودة في العمود الاول الصف آر .Offset(1, 0) = Sheets(MySheets).Cells(R, 1) ' بقية الاسطر نفس الشي باختلاف الموقع فقط '--------------------------------- '********************************* '--------------------------------- 'انتهى اسناد الصفحة End With '---------------------------------- '********************************* '-------------------------------- 'انتهى الشرط End If '--------------------------------- '********************************* '--------------------------------- ' اكمل ححتى آخر عدد Next R '-------------------------------- '********************************* '--------------------------------- Next x '----------------------------------- '************************************ '------------------------------------ ' ارجع الشاشة لحالتها الاصلية Application.ScreenUpdating = True '--------------------------------- '********************************* '---------------------------------- 'اظهر مساج بوكس ينص على التالي MsgBox "!تم استخراج الكشف المطلوب بنجاح", vbInformation + vbMsgBoxRight, "تم الاستخراج" '-------------------------------- '********************************* '--------------------------------- ' امسح النطاق التالي [B4:E4].ClearContents '********************************** '---------------------------------- 'انتهى الشرط الثاني End If
  16. عندي ربع ساعة و انا احضر في السلطة دي ، أطلعها و لا أوضعها في الثلاجة ؟
  17. TextBox1 = "": TextBox2 = "": TextBox3 = "": TextBox4 = "": TextBox5 = "": TextBox6 = "" اخي ضف هذا السطر في الاخير
  18. السلام عليكم انني في صدد انجازه حسب متسع الوقت
  19. السلام عليكم قبل السطر Select. ضف السطر التالي .Range("E2").Value = .Range("F" & Lr).Value - .Range("G" & Lr).Value - .Range("G" & Lr + 1).Value
  20. Private Sub Worksheet_Change(ByVal Target As Range) Dim x x = Format(Date, "d") If Target.Address = Range("A1").Address Then If Range("A1").Value < Val(x) Then Range("A1").Value = 0 Else End If End If End Sub السلام عليكم جرب هذا الكود
  21. السلام عليكم ارسل ملفا طبق الاصل لملفك به بيانات وهمية للعمل عليه
  22. ' غير هذا السطر .Cells(i, 5) = Left(.Cells(i, 5), 1) + 1 & Right(.Cells(i, 5), 2) ' بهذا السطر .Cells(i, 5) = Left(.Cells(i, 5), 2) & Right(.Cells(i, 5), 1) + 1
  23. السلام عليكم بالنسبة للبداية اعتقد انها تكون اولا بالتعرف على بعض التسميات المهمة سواءا في الدوال او الكود مثل : Worksheets - Sheets - Rows - Columns - Cells - Range و هذه الكلمات اسمها يدل عليها بمعنى الذي يعرف اللغة الانجليزية بعض الشيئ لا يجد صعوبة في معرفتها ، هذه الكلمات هي التي نسميها كلمات محجوزة و للتعرف عنها إفتح ملف اكسيل ثم اذهب الى المطور vba و ذلك بالضغط على المفتاحين Alt+F11 ستجد في الجانب الايسر اسم الملف المفتوح ThisWorkbook و اسفله اسماء اوراق العمل ورقة1 ، ورقة2 . . . . . اضغط مزدوجا على اي منها تفتح لك في الجانب الايمن مكان ادراج الكود ، اكتب اي حرف ثم اضغط بعده بيمين الفأرة و اختر من القائمة complete word ستظهر لك قائمة كبيرة من الكلمات تلك هي التي نسميها كلمات محجوزة ابدأ في المرور عليها ستجد نفسك تعرف الكثير منها من خلال اسمها ما معنى الكلمات المحجوزة ؟ في المحرر الذي انت فيه الآن و كتبت فيه ذلك الحرف ، اكتب اي كلمة من عندك مثل اسم شخص او مدينة او اي شيئ و ضع امام الكلمة نقطة ( . ) فلا تلاحظ اي شيئ اما اذا اخترت كلمة مثل الكلمات التي كتبتها لك قبل قليل مثل Sheets - Rows - Columns - Cells - Range ثم ضع مباشرة بعدها نقطة ستفتح امامك قائمة و ذلك لان هذه الكلمات خاصة بالاكسل و هو يعرفها طبعا مع مرور الوقت ستعرف انه بامكانك حجز كلمات من عندك و ذلك بتعريفها مسبقا للاكسل مثلا لوكتبت كلمة officena و هو اسم المنتدى ثم كتبت بعده نقطة فلا تلاحظ اي شيئ لاكن اكتب اولا هذه الجملة Dim officena As Worksheet ثم انزل بعدها بسطر و اكتب كلمة officena و ضع امامها نقطة ستجد القائمة قد اصبحت موجودة لان هذه الكلمة اصبح الاكسل يعرفها من خلال التعريف باستعمال كلمة Dim و عرفها على انها ورقة عمل من خلال كلمة As Worksheet تكلمت مباشرة في الاكواد لانني ارى ان البداية تكون من هنا احسن ( هذه على الاقل في نظري ) و السلام عليكم
  24. بالنسبة للسؤال الاول : يمكن في برنامج اكسل ان نستعمل المصطلحات الثلاثة في آن واحد ( معادلة - دالة - كود ) و يمكن استعمال واحد او اثنين حسب متطلبات البرنامج لاكن المعادلات و الدوال تجعل من الاكسل بطيئ كثيرا كما تزيد من حجمه ، اما الكود فلا يؤثر في شيئ سوى اثناء التنفيذ في الاكواد ذات الشروط الكثيرة او البحث في كم هائل من البيانات ، هذا يجعل الكود يأخذ نوعا من الوقت في التنفيذ ، لذا ينصح في البرامج ذات المعطيات الكثيرة استعمال الكود بالنسبة للاكسس فانا لا اعرف عنه الكثير و اعتقد انه يوجد تشابه او على الاقل شبه تشابه لكن ميزة الاكسس السرعة و استيعاب كم هائل من البيانات على خلاف الاكسيل بينما البرمجة بلغة Visual Basic او Visual Studio فهناك تشابه كبير و كبير جدا مع الاكسيل هذا كل ما اعرفه لاو السلام عليكم
×
×
  • اضف...

Important Information