نجوم المشاركات
Popular Content
Showing content with the highest reputation on 11/21/15 in all areas
-
خامساً :- كيفية اضافه عناصر تحكم داخل الــ Frame مع التحكم فى الاسكرول بار وذالك عند فتح الفورم او اثناء العمل على الفورم وهو نشط العنوان يبدو انه غريب شوية ومعقد انا بس محتاج من حضرتك تشرب كوباية شاى وتفتح زهنك معايا لان ده شغل محترفين والحمد لله احنا مشينا مشوار طويل فلازم يكون عندك ثقه بنفسك وتقتحم الصعاب وميهمكش طالما انت فى جامعه اوفيسنا بص يا سيدى العنوان ده بختصار ماذا يعنى ؟ طبعا احنا عارفين ان علشان اصمم عنصر تحكم لازم يكون من شاشة التصميم لكن انت عمرك فكرة او خطر ببالك انك تخلق أو تنشئ عنصر تحكم وانت شغال على الفورم مش فى مرحلة التصميم !!!!!! طبعا انتو عارفين انى اناعملى وعلشان افهم لازم اعمل مثال عملى فبالمثال يتضح لنا المقال شوف الصوره دى وخليك معايا اوعى تغمض عنيك هو ده موضوعنا اليوم ازاى نصمم اى عنصر تحكم اثناء فتح الفورم بكود فى حدث فتح الفورم او اثناء عمل الفورم تعالو على سبيل المثال نعمل كود فى حدث فتح الفورم Initialize كدا انا عملت سطر الاعلان عن المتغير وقمت بتسميته Label ( وممكن تسميه اى اسم كيفما شئت ولكن كما قلت افضل تسميته طبقا لاسم عنصر التحكم ) وقلت ان نوع المتغير من النوع MSForms.Label وعايز احول المتغير ده الى كائن بحيث اعرفه واقدر اتعامل معاه فأستخدمت set وهذه الكلمة هى لتحويل المتغير الى كائن القاعده الخاصه بـ Set هى الكائن = المتغير set الكائن = Set Label ما هو الكائن ؟؟؟ هو عنصر تحكم هيتم اضافته على الفورم Controls.Add ( تعنى اضافه عنصر ) القاعدة العامه للـ Controls.Add هى (Controls.Add(ProgID, Name ,Visible الجزء الثالث , الجزء الثانى , الجزء الاول الجزء الاول :- ProgID يكون اجبارى الادخال وهو يكون احدى عناصر الفورم كالتالى الجزء الثانى :-Name هو اسم العنصر اللى هيتم استخدامه فى كتابة الاكواد وهو يقوم بدور الخاصيه Name فى شاشة الخصائص ويكون تعبئة اختياريا ولكن يفضل كتابتة اذا كنت تريد التعامل مع هذا العنصر فيما بعد الجزء الثالث:-Visible ويكون تعبئة اختياريا وهو يحمل خيارين أما True أو False ويفضل عدم استخدامه ليه يا عمنا ؟ لان طالما فكرت تنشأ عنصر تحكم اثناء عملك على الفورم اذا انت اكيد عايز تظهره للمستخدم مش انك هتخفية ! اذن لما نيجى نحول المتغير الى كائن لنستطيع التعامل معه هنستخدم قاعدة Set وهيكون كالتالى Set label = Controls.Add("forms.label.1", "label") هنا فى قاعدة Controls.Add قمت بتعبئة الجزء الاول ProgID وهو "forms.label.1" وتم وضعه بين علمتى تنصيص والجزء الثانى Name هو "label" وتم وضعه بين علامتى تنصيص وهو هيكون اسم العنصر فى كتابة الاكود الجزء الثالث Visible كما قلت انه اختيارى فلم اقم بتعبئته لذالك سيقوم الفيجوال بيسك باستخدام True بشكل افتراضى كدا وصلنا بالكود الى الان كالتالى Private Sub UserForm_Initialize() Dim label As MSForms.label Set label = Controls.Add("forms.label.1", "label") End Sub طيب انا كدا قمت بتصميم العنصر Label وعايز اعمل له خصائص على سبيل المثال اسم الليبل يكون " الصقر " يبعد عن الضلع الايسر للفورم بمقدار 100 عرضه يكون 120 يبعد عن الضلع الاعلى للفورم بمقدار 50 الخلفيه تكون حمراء محازة النص يكون بالمنتصف حجم الخط 20 سماكة الخط عريض التاثير يكون بارز طبعا الكلام ده شرحناه فى دروس الليبل وهيكون كالتالى فى الكود Private Sub UserForm_Initialize() Dim label As MSForms.label Set label = Controls.Add("forms.label.1", "label") With label .Caption = "ÇáÕÞÑ" .Left = 100 .Width = 120 .Top = 50 .BackColor = &HFF& .TextAlign = fmTextAlignCenter .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised End With End Sub شاهد الصوره عند تشغيل الفورم عايزك تجرب تنشئ عنصر تحكم او عناصر تحكم غير الليبل لازم تجرب بنفسك يا عبدالتواب ناخد مثال اخر مثلا الكمبوبوكس شاهد الكود كالتالى ولاحظ الفرق بنفسك Private Sub UserForm_Initialize() Dim Combobox As MSForms.Combobox Set Combobox = Controls.Add("forms.Combobox.1", "Combobox") With Combobox .Left = 100 .Width = 120 .Top = 50 .BackColor = &HFF& .TextAlign = fmTextAlignCenter .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised .RowSource = "A2:A10" End With End Sub شاهد الصوره عند فتح الفورم طبعا دى كلها مقدمه للدرس بتاعنا اللى لسه الى الان مبدأناش الشرح فيه ولكن كان لازم نعرف يعنى ايه نضيف عنصر تحكم اثناء عمل الفورم وليس من شاشة التصميم للدرس بقية انتظرونا4 points
-
بســــــــــــــــم الله الرحمــــــــــن الرحـــــــــــــــــــــــيم الســــــلام عليكــــــــــــــــم و حمة الله و بركاته اخواننا الكرام ، نظرا لكثرة المشاركات حول تقريب الكسور الارقام ، حبيت اشارككم الوحدة النمطية بـ 3 دوال (RoundUp) (RoundHalf) ( RoundDown) دالة : RoundUp([Number],3) للتقريب رقم 33.3333 الى 3.334 او 3.3331 الى 3.334 و هكذا دالة: RoundHalf([Number],3) للتقريب رقم 33.3336 الى 3.334 او 3.3335 الى 3.333 و هكذا و السبب تسمية الدالة بهذالاسم ، وجود دالة باسم Round في الاكسس و انا سميتها RoundHalf دالة: RoundDown([Number],3) للتقريب رقم 33.3336 الى 3.333 او 3.2231 الى 3.223 و هكذا و المرفق يحوي ملفين الاول للعرض ارقام مقربة حسب تنسيق مثلا: عند اختيار اربع منازل أعشار 5.4400 ، 5.4444 ,5.2000 و الثاني بدون تنسيق مثلا : 5.4444 ، 5.44 , 5.2 ابو عارف Round-RowndUp-RowndDown.rar3 points
-
السلام عليكم الاستاذ الفاضل / ابو سليمان شكرا جزيلا على مرور حضرتك المحفز .. جزاك الله خيرا اخى الكريم جرب المرفق فلترة.rar3 points
-
استعمل هذا الكود Sub DeleteAllPics() Dim Pic As Object For Each Pic In ActiveSheet.Pictures Pic.Delete Next Pic End Sub3 points
-
3 points
-
اخى الفاضل / ياسر فتحى اولا اعتذر لحضرتك عن التاخر بالرد لكن لم ادخل الموقع من يومين شاكر لحضرتك مجهودك الطيب واسال الله تعالى ان يكون بميزان حسناتكم وان يكون علم نافع بخصوص الملاحظات لن ازيد عن ما قاله الاخ ياسر العربى ارجوا من حضرتك تداركها تقبل منى وافر الاحترام والتقدير3 points
-
Sub CollectDataFromMultipleWorkbooks() Dim OpenFiles Dim crntfile As Workbook Set crntfile = Application.ActiveWorkbook Dim X As Integer Dim SH As Worksheet Dim Arr, Temp, I As Long, J As Long On Error GoTo ErrHandler Application.ScreenUpdating = False OpenFiles = Application.GetOpenFilename(FileFilter:="Microsoft Excel Files (*.csv;*.xlsx;.xlsm),*.csv;*.xlsx;*.xlsm", MultiSelect:=True, Title:="Select Excel File To Merge!") If TypeName(OpenFiles) = "Boolean" Then MsgBox "You Need To Select At Least One File" GoTo ExitHandler End If X = 1 While X <= UBound(OpenFiles) Workbooks.Open Filename:=OpenFiles(X) Sheets().Move After:=crntfile.Sheets(crntfile.Sheets.Count) X = X + 1 Wend Sheets("Master").Activate For Each SH In ThisWorkbook.Sheets With SH If .Name <> "Master" Then Arr = .Range("A1").CurrentRegion.Value For I = 1 To UBound(Arr) Temp = Split(Arr(I, 1), ";") For J = 1 To UBound(Temp) .Cells(I, J) = Temp(J) Next J Next I .Range("A1").CurrentRegion.Columns.EntireColumn.AutoFit End If End With Next SH ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub أخي الحبيب مختار بارك الله فيك على الكود الرائع الذي قدمته لنا على طبق من ذهب أخي الكريم صاحب الموضوع ..يرجى تغيير اسم الظهور للغة العربية (راجع التوجيهات في الموضوعات المثبتة في المنتدى) جرب الملف التالي بعد إضافة بسيطة لكود الأخ المتميز مختار ليقوم بفصل العمود الواحد لعدة أعمدة تقبل تحياتي Collect Data From Multiple CSV Workbooks Mokhtar V1.rar2 points
-
راجع كود "TextBox7_Change" لايوجد اي تعيين للعمود 9 في الليست بوكس لذا قم بإدراج السطر التالي ليأخذ عنوان خلية نتيجة البحث ويدرجها في العمود 9 لليست بوكس ListBox9.List(V, 9) = q.Address الصقه قبل السطر V = V +1 ثم الغي تحديد نوع القيم في كود "ListBox9_Click" مثال ComboBox3.Text حطيته يستقبل نص .Range(DADA).Value ويساوي قيمة ؟ Private Sub ListBox9_Click() Sheets("sheet2").Select Dim DADA As String Dim MySh As Worksheet 'On Error GoTo 1 DADA = ListBox9.List(ListBox9.ListIndex, 9) Set MySh = Sheets("sheet2") With MySh .Application.Range(DADA).Activate ComboBox3.Text = .Range(DADA).Value ComboBox2.Text = .Range(DADA).Offset(0, 1).Value TextBox4.Text = .Range(DADA).Offset(0, 2).Value TextBox5.Text = .Range(DADA).Offset(0, 3).Value TextBox6.Text = .Range(DADA).Offset(0, 4).Value TextBox7.Text = .Range(DADA).Offset(0, 5).Value ComboBox1.Text = .Range(DADA).Offset(0, 6).Value End With End Sub لذا ليس ضروري تحديد قيمة اتركه بدون وفعل سطر الخروج من الكود في حالة حدوث خطاء 'On Error GoTo 1 وهذا الكود حدث ListBox9_Click بعد تعديل الاخطاء المذكوره اعلاه Private Sub ListBox9_Click() Sheets("sheet2").Select Dim DADA As String Dim MySh As Worksheet On Error GoTo 1 DADA = ListBox9.List(ListBox9.ListIndex, 9) Set MySh = Sheets("sheet2") With MySh .Application.Range(DADA).Activate ComboBox3 = .Range(DADA) ComboBox2 = .Range(DADA).Offset(0, 1) TextBox4 = .Range(DADA).Offset(0, 2) TextBox5 = .Range(DADA).Offset(0, 3) TextBox6 = .Range(DADA).Offset(0, 4) TextBox7 = .Range(DADA).Offset(0, 5) ComboBox1 = .Range(DADA).Offset(0, 6) End With 1 End Sub2 points
-
السلام عليكم ورحمة الله وبركاته لقد تناولت فى موضوعى السابق " إزالة أو إبقاء آثار التنسيق الشرطى " على الرابط التالى http://www.officena.net/ib/topic/64950-%D8%A5%D8%B2%D8%A7%D9%84%D8%A9-%D8%A3%D9%88-%D8%A5%D8%A8%D9%82%D8%A7%D8%A1-%D8%A2%D8%AB%D8%A7%D8%B1-%D8%A7%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%89/ كيفية ازالة التنسيق الشرطى و تبعاته من تنسيقات ... أو الابقاء على تلك التبعات والتنسيقات و تحويلها من تنسيقات شرطية الى تنسيقات عادية و اليوم بإذن الله تعالى أقدم لكم كودا بسيطا لكن يمكن أن تكون آثاره و نتائجه من وجهة نظرى المتواضعة جميلة و مبهرة و الرأى لكم فى النهاية الكود : Sub creatingFormats() On Error Resume Next For Each cell In Range("data") Range("formats").Cells(cell.Value).Copy cell.PasteSpecial Paste:=xlPasteFormats Next cell On Error GoTo 0 Application.CutCopyMode = False End Sub الكود يقوم بعمل تنسيقات عادية فى نطاق محدد هو data طبقا لتنسيقات يمكنك تعييرها فى خلايا نطاق آخر هو formats يمكن تطويع هذا الكود فى حال الرغبة فى عمل تنسيقات عادية متعددة داخل نطاق . تحياتى لكم و الى اللقاء بإذن الله تعالى مع كل جديد ومفيد كن حذرا ... أبو ضحكة جنان قاعد لك فى الملف أخوكم مختار حسين محمود الصعيدى تنسيقات بلا حدود.rar تنسيقات بلا حدود.rar2 points
-
السلام عليكم ورحمة الله وبركاته أخى العزيز ناصر المصرى بارك الله فيك ... أشكرك أخى الكريم على هذا الكلام الكبير الذى أسعدنى كثيرا ..و مشكور أيضا على مرورك الكريم أخى و حبيبى و أستاذى الكبير ياسر خليل يعلم الله عز وجل أننى أعتز بأنك أحد أهم الذين تعلمت - ولا زلت أتعلم - منهم ... تقبل الله منا و منكم صالح الاعمال أخى و حبيبى الغالى ياسر فتحى بارك الله فيك ... أشكرك أخى الغالى على هذا التشجيع الكبير و المستمر تقبل الله منا و منكم صالح الاعمال أخى و حبيبى العزيز عبدالغزيز بارك الله فيك ... أشكرك أخى الغالى على كلامك الطيب و مرورك الكريم ... تقبل الله منا و منكم صالح الاعمال2 points
-
السلام عليكم و رحمة الله و بركاته و تحية خاصة للاستاذ جعفر الأخ حسين : اضافة سطر بسيط في الكود السابق ستنحل المشكة ان شاء الله DoCmd.OpenReport "medicine", acViewPreview, , , acHidden DoCmd.SelectObject acReport, "medicine" DoCmd.PrintOut , , , , Me.t3 DoCmd.Close acReport, "medicine" بالتوفيق2 points
-
السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً..وكما يقال :(إيدك معي ) وإن شاء الله سيكون متجدد ..بمشاركاتكم الطيبة. إن صار لي مجال اليوم سأعرض طريقة الفرز حسب الصفوف - فرز أفقي - بالتفصيل إن شاء الله تعالى فكر بحاجة تانية يا عربي ..والسلام عليكم.2 points
-
الله يبارك فيك ياعم الحاج والله ياراجل حاجات مكناش بنبص ليها خالص وعجبتني الفكرة ايه رأيك كل يوم تطبيق اختصار او اتنين2 points
-
تتسم دائما بالموضوعات القيمة بارك الله فيك وفى انتظار كل ماهو جديد من شخصية تتسم بالهدوء والعطاء وافر تقديرى واحترامى2 points
-
السلام عليكم Private Sub ListBox1_Click() ''********************* '' الذهاب الى الورقة المسماه ورقة1 Sheets("ورقة1").Select '' متغير لحفظ قيمة نصيه Dim DADA As String ''MySh متغير لورقة في المصنف للتعبير عن الورقة في الكود بمسمى Dim MySh As Worksheet 'On Error GoTo 1 '' اخذ القيمة من العمود الـ 9 في الليست بوكس والتي هيا عنوان الخليه من السطر المحدد في الليست بوكس DADA = ListBox1.List(ListBox1.ListIndex, 9) ''كتعبير عن الورقة المسماه "ورقة1" MySh تعين المتغير Set MySh = Sheets("ورقة1") ''With ادرج في اطار Myshلتعدداستخدام متغير '' للتعبير عن المتغير بأكثر من سطر دون ذكر المتغير بكل سطر '' . مع التعبير بعلامة With MySh ''للذهاب للخليه المعنيه في البحث Range في تعبير DADA ادراج متغير '' Range.address حفظ فيه عنوان الخليه DADA اعتباراً ان متغير .Application.Range(DADA).Activate ''ComboBox3 وحقظه في DADA اخذ قيمة الخليه من متغير ComboBox3.Text = .Range(DADA).Value ''ComboBox2 مع ازاحه بقدر عمود وحقظه في DADA اخذ قيمة الخليه من متغير ''B1 مع ازاحة عمود ستصبح الخليه المعنيه A1 اي اذا فرضنا الخليه هيا ComboBox2.Text = .Range(DADA).Offset(0, 1).Value ''TextBox4 مع ازاحه بقدر عمودين وحقظه في DADA اخذ قيمة الخليه من متغير TextBox4.Text = .Range(DADA).Offset(0, 2).Value ''TextBox5 مع ازاحه بقدر 3 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير TextBox5.Text = .Range(DADA).Offset(0, 3).Value ''TextBox6 مع ازاحه بقدر 4 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير TextBox6.Text = .Range(DADA).Offset(0, 4).Value ''TextBox7 مع ازاحه بقدر 5 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير TextBox7.Text = .Range(DADA).Offset(0, 5).Value ''ComboBox1 مع ازاحه بقدر 6 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير ComboBox1.Text = .Range(DADA).Offset(0, 6).Value '' Myshالخروج من اطار متغير End With ''********************* End Sub2 points
-
السلام عليكم وهذه طريقه اخرى العمليه تتم عبر زر تحياتي Ali_Hid.rar1 point
-
بارك الله فيك استاذ جعفر منكم تعلمنا ومازلنا نتعلم انتم استاذتنا ومعلمينا واقل شئ نشكركم فهذا حقكم علينا نحن الطلاب غفر الله لك ولوالديك وأسال الله ان يجعل كل ماتقدمونه صدقة جارية وفي ميزان حسناتكم تحياتي1 point
-
أخي العزيز محمد شكرا لك على تشجيعك المستمر والامتناهي ، تحية إجلال وإحترام لشخصك الكريم جعفر1 point
-
1 point
-
يلا ادي فكراية كدا علي الماشي لوحة مفاتيح سهلة جدا تعمدت اني اعملها سهلة ومعقدهاش بالاكواد عشان الموضوع يبقي موضوع السهل الممتنع ادي كود لوحة المفاتيح Range("K1") = Range("K1") & Selection شفت عبيط ازاي ABc.rar1 point
-
اخى الفاضل خالد الرشيدى ... هذا هو المطلوب بالضبط ..شكرا لك .. وزاذك الله علما1 point
-
استبدل المعادلة السابقة بهذه المعادلة.. فى الخلية B5 ثم قم بالسحب =SUMPRODUCT(RawData!$H$6:$H$1000*(RawData!$I$6:$I$1000=$A$2)*(RawData!$F$6:$F$1000<>"مرتجع")*(RawData!$C$6:$C$1000=B$4)*(MONTH(RawData!$A$6:$A$1000)=MONTH($A5)))1 point
-
النفس تبكي علي الدنيا و قد عـلـمـت ***** ان الـسـعادة فـيهـا تـرك مــا فـيـهـا لا دار للمـرء بعـد الموت يـســكـنه ***** الا التي كان قبـل الـمـوت بـا نـيـهـا فان بـنـاها بــخــيـر طــاب مســــكــنـه ***** و ان بـنـاهـا بـشـــر خـاب بـانـيـهـا امـوالـنـا لـذوي المـيـــراث نـجــمـعــه ***** و دورنـا لـخـراب الـدهــر نـبـنـيـهـا ايـن المــلـوك التـي كانـت مســلطــنـة ***** حتـي سـقاها بكأس المـوت سـاقيهـا فـكــم مدائــن فـي الآفـاق قـد بـنـيـــت ***** امســت خرابا و أفني الموت اهليهـا لا تـركـنــن الــي الدنـيـا و مـا فـيــهــا ***** فالمـوت لا شــك يفـنـيـنـا يـفـنـيـهـا لـكـل نـفــس و ان كانـت عــلـي وجــل ***** مـــن الـمـنـيــة آمــــال تـقــويـــهـا الـمـرء يبســطها و الدهــر يـقـبـضـهـا ***** و النفس تنشرها و الموت يطويها انــمـا الـمــكـــارم اخــلاق مــطــهـــرة ***** الـديــن اولـهــا و الـعـقــل ثـانـيـهـا والـعــلـم ثــالـثـهـا والحـــلـم رابـعـهــا ***** و الجود خامسها و الفضل سادسها والـبـر ســـابـعـهـا والشـــكـر ثـامـنهـا ***** و الصــبر تاســعها و اللـين باقـيهـا الـنـفــس تـعــلـم أنــي لا أصــــادقـهـا ***** و لســت أرشـد الا حيـن أعـصـيـهـا وأعــمـل لـدار غـدا رضــوان خـازنهـا ***** و الـجـارأحـمـد والرحـمـن ناشـيـهـا قــصــورها ذهـب والمســك طـيـنـثـهـا ***** و الـزعـفـران حشـيـش نـابـت فـيهـا أنـهـارهـا لبـن مـحـض و مـن عســــل ***** و الخـمـر يـجري رحيقا في مجاريها والطـير تجـري علي الأغصـان عاكفـة ***** تـســبـح الله جـهــرا فــي مـغــانـيـهـا من يشتري الدار في الفردوس يعمرها ***** بـركـعـة فــي ظـلام الــليـل يـحيــيـهـا1 point
-
من الصعب ان يتم فك حماية ملفات محمية بكلمة مرور اخي الغالي سليم مشكور لارفاق هذا الحل الذي هو بالاساس عبارة عن كود ماكرو يتم وضعه داخل ملف بالفعل هو يدعم الماكرو ولكن نحن الان امام ملف xlsx محمي بكلمة مرور للملف نفسه ولا يمكن فتحه لوضع اي كود به ناهيك عن ان الملف لا يدعم الماكرو من الاساس ولكم كل الشكر والتقدير وان شاء الله نجد طريقة لكسر مثل تلك الحماية1 point
-
1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته...جزاكم الله خيراً أخي وأستاذي الحبيب " الصقر" على التشجيع مروركم يشرفني ويشرف مشاركتي أنتم جميعاً ... إنما هو غيض من فيض بحوركم الزاخرة...حاولت الإطلالة على شواطئكم فاستقيت منها شذرات واقتبست من أنواركم...حتى أضيء ليلي الداجي. ...أما المنتظر فهو من البحور الزاخرة لا من السواقي الصغيرة.. وإن كنا لا نستهين بصغائر الأمور لأن الجبال الراسية من الحصى. والسلام عليكم.1 point
-
السلام عليكم ورحمة الله وبركاته أستاذى القدير / حسام عيسى لقد إستأذنت حضرتك فى مشاركة لى فى موضوع حضرتك الذى بعنوان سلسلة علمنى كيف اصطاد ( الفورم ) Forms بتجميع كافة الدروس حتى تاريخة وتحويها إلى PDF حتى يستفاد منها الجميع وها قد تم تجميعاعلى الرابط التالى http://www.mediafire.com/download/m64wkvz21ymd695/حسام+عيسى.rar نظرا لحجمهم وعدم القدرة على رفعهم بالمنتدى تقبلوا خالص تحياتى وتقديرى1 point
-
بارك الله بك أستاذي العزيز رمهان الذي نتعلم منه دائما ونرجو لك دوام التقدم والعطاء ..شكرا على كلماتك الطيبة راجيا أن أكون عند حسن ظنكم..1 point
-
اعتقد ان الموضوع مكرر وهنا واعتقد ان الحل للمشكلة تم باستخدام الدالة فورمات وتم تاكيده من قبل الخبير ابو عارف ! وهذا وجدناه في محاولات الاخ الشمال ! اما اجابة محددة لسبب المشكلة : هذه الدالة تعتمد على خوارزمية الحل بها عشوائيا عكس الاكسل رياضيا ! ولي مرجع في ذلك لعلي اتذكر كلمات البحث لايجاده ! وهو في احد صفحات موقع ميكروسوفت ! فهي تقرب لاقرب عدد زوجي ! وموضوع مبارك بعودة اخينا محمد ايمن سائلاً ومحاولاً للاجابة ! تحياتي1 point
-
السّلام عليكم و رحمة الله و بركاته ألف شكر سيّدي الكريم على التّنسيقات و الابداعات المميّزة التي ليس لها حدود بإذن الله بارك الله فيك أستاذي القدير " مختار حسين محمود " على الابداع المكتمل جزاك الله خيرًا و زادك من علمه و فضله فائق إحتراماتي و إعجاباتي1 point
-
أسعد الله أوقاتكم بكل خير فيما يلي الدرس الثامن عشر من دورة "إكسيل 2013 المستوى المتقدم" بعنوان الرسومات البيانية المتقدمة -الجزء الثاني المخططات الدائرية ومن نوع دائرة من دائري ملاحظة/ ينصح بشدة متابعة الدرس الخاص بالرسومات البيانية من دورة (مهارات اكسيل 2013) على الرابط التالي قبل متابعة هذا الدرس حيث أننا نفترض بالمشاهد الكريم معرفة مسبقة بأساسيات الرسم البياني في اكسيل أساسيات الرسومات البيانية في إكسيل 2013 أتمنى لكم مشاهدة ممتعة ومفيدة يمكنكم تحميل ملفات التمارين الخاصة بهذه الدورة من خلال الرابط التالي: http://www.4shared.com/rar/QvwJQLddce/_-__.html لمتابعة الموضوع الرئيسي للدورة يمكنكم فتح الرابط التالي حيث جميع الدروس موجودة: دورة اكسيل 2013 المستوى المتقدم دمتم بخير1 point
-
1 point
-
بارك الله فيك أستاذي القدير " ياسر العربي " على التّنبيه و التّنويه .. و لو أنّي لا أعتقد إطلاقًا أنّ النّص المتحرك غير ظاهر .. أنا الذي نظر الأعمى إلى نصوصي .. و أسمعت حركة بروصاراتي منْ به صمَمُ هذا البيت هديّة للأخ .. أخونا فائق إعجاباتي و احتراماتي سيدي الكريم " ياسر العربي "1 point
-
أخى وحبيبى الغالى / مختار أشكرك على مرورك الكريم ودعائك الطيب شرفتنى بمرورك تقبل خالص تحياتى وتقديرى لشخصكم الكريم1 point
-
تنسيقات بلا حدود وإبداع بلا حدود إبداع لا يتوقف وما زال هناك المزيد والمزيد .. ربنا يبارك ويزيد يا مختار يا أبو اليزيد .. على كل ما تقدمه من جديد وممتع ومفيد واضرب ع الحديد يا راجل يا شديد1 point
-
السّلام عليكم و رحمة الله و بركاته أخى الغالى المهندس ياسر فتحى بارك الله فيك وجعل فى ميزان حسناتك ... الدال على الخير كفاعله1 point
-
1 point
-
السلام عليكم ورحمة الله وبركاته البغض منا قد يرغب فى ازالة التنسيق الشرطى عن خلية أو نطاق لسبب ما مع ازالة أو ابقاء آثاره من تنسيقات مثل لون الخلايا و لون و حجم الخط .... الخ و بإذن الله تعالى سأعرض عليكم ــ اخوتى ــ كودين يؤديان هذه المهمة الأول : يقوم بازالة التنسيق الشرطى مع ازالة آثاره من نطاق محدد : Sub RemovingCFandEffects() ' Removing Conditional Formats and the Effects Dim Rng As Range Set Rng = Sheets("Sheet1").Range("A1:C10") Application.ScreenUpdating = False Rng.FormatConditions.Delete Application.ScreenUpdating = True MsgBox ("The Conditional Formats in The Range " & Rng.Address & vbCrLf & " has been Removed and The Effects") End Sub الثانى : يقوم بازالة التنسيق الشرطى من نطاق محدد مع ابقاء آثاره من تنسيقات كما هى أو بعبارة أخرى تحويل التنسيقات الشرطية الى تنسيقات عادية : Sub RemovingCFbutNotEffects() ' Removing Conditional Formats but not the Effects Dim Rng As Range, C As Range Set Rng = Sheets("Sheet1").Range("A1:C10") Application.ScreenUpdating = False For Each C In Rng ' Rng.SpecialCells(xlCellTypeAllFormatConditions) With C .Interior.Color = .DisplayFormat.Interior.Color .Font.FontStyle = .DisplayFormat.Font.FontStyle .Font.Color = .DisplayFormat.Font.Color .FormatConditions.Delete End With Next Application.ScreenUpdating = True MsgBox ("The Conditional Formats in the Range " & Rng.Address & vbCrLf & "has been removed but Not the Effects ") End Sub أتمنى أن يكون موضوعا سهلا وخفيفا ونافعا لكم ... تقبل الله منا و منكم صالح الأعمال والسلام عليكم ورحمة الله وبركاته Removing Conditional Formats.rar1 point
-
السلام عليكم إخوتي وأساتذتي الأجلاء أشكركم جميعا على مروركم العطر وإثرائكم للموضوع ..وكأنني ألقيت بشبكة فجمعت كل هذه الدرر..ومن أنا حتى أقف أمام هؤلاء العمالقة الذين يخوضون عباب بحر الإكسل الواسع ..لكن هذه الخواطر التي ذكرت قد تفتح أفقا جديدا أو تذكر بما هو مخزن في أعماق الذاكرة لتنفض عنه غبار السنين من المشاغل....كلكم عظماء باﻹكسيل ولديكم خواطر هامة فالميدان ميدانكم والخيل خيلكم. كان لي رصيد كبير من الأحباب الذين وجدتهم نعم الأخوة في كل شيء بفضل الله ومنته وهم أغنياء عن التعريف ..واليوم أرى أستاذا فاضلا أكن له كل محبة وتقدير يساهم في تشجيعي فلكم وله كل الشكر والامتنان.تقبلوا تحياتي العطرة والسلام عليكم1 point
-
السلام عليكم اخى الحبيب / زيزو العجوز .. جزاك الله خيراً اخى الكريم يمكنك استخدام المعادلة التالية.. ضعها فى الخلية B5 ثم قم بالسحب..بدون اعمدة مساعدة ولكن بالنسبه للشرط الثانى.. اين تكتب كلمة مرتجع =SUMPRODUCT(RawData!$H$6:$H$1000*(RawData!$I$6:$I$1000=$A$2)*(RawData!$C$6:$C$1000=B$4)*(MONTH(RawData!$A$6:$A$1000)=MONTH($A5)))1 point
-
أخى الفاضل / وائل الاسيوطي أخى الحبيب / عبد العزيز البسكرى أخى الحبيب / أبو سليمان أخى الحبيب / ياسر العربى الأب والأستاذ القدير / محمد حسن المحمد أشكركم جميعا لمروركم الكريم وما أنا إلا شخص قام بتجميع كنذ من كنوز معلم وأستاذ قدير / حسام عيسى زاده الله من العلم الكثير والكثير وأرجوا من الله أن أكون وفقت فى تجميع الدروس وللأخ القدير الغالى / ياسر العربى لمسه فنيه بسيطة فى تنسيق الدروس سوف يقوم بطرحها مرة أخرى تقبلوا خالص تحياتى وتقديرى1 point
-
أخي الحبيب م/ياسر السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً على ماقدمتم فكرة رائعة ...1 point
-
اخي ياسر السلام عليكم ورحمه الله وبركاته يسعدني ان اكون اول من يحمل الملف مجهود ليس بالهين جزاك الله خيرا انت واخي صقر علي مجهوداتكم1 point
-
شكرا أخي الاستاذ رمهان على هذا الشرح والان الى الجانب العملي لا تستطيع ان تنادي هذه الوحدات بالطرق التقليدية ، وكل لغة (مثل VB, VBA, C++, ...) لها طريقتها الخاصة في مناداة هذه الوحدات ، وبالنسبة الى اكسس ، فالرابط التالي يعطينا امثلة في كيفية استخدامها: http://access.mvps.org/access/index.html وملك الوحدات النمطية وبالذات للرسومات في الاكسس: http://lebans.com/ جعفر1 point
-
1 point
-
api اختصار application programming interface بالعربي برمجة واجهة التطبيقات وبالبلدي: هي دوال تحاكي الويندوز ! مثلا هناك اوامر يحتاجها المبرمج وهذا الامر اصلا واحد من مكتبات الويندوز على شكل دالة ! وكل مكتبة في الويندوز بها دوالها مغلفة ! فاروح انادي الدالة هذه بشرط ذكر اسم مكتبتها ! بمعنى هذه الدالة يستخدمها الويندوز وانت كمان تستخدمها خاصة اذا بتحاكي شي خارج برنامجك والذي لن يستطيع برنامجك يفهم اللغة للتخاطب ! فمثلا اغلاق ويندوز ! اروح انادي الدالة الخاصة بهذا مع ذكر مكتبة وجودها بها ! فانت ذهبت تخاطب برامج اخرى بهذه الدالة لقصور برنامجك في التخاطب ! وقال لك الاكسس اذا عايز تنادي حاجة زي كدا لابد تحطها لي في وحدة نمطية ! بمعنى لو عايز اضيف سجل في جدول مش معقوله انادي دالة api لانهم الويندوز مش حيفهم انت عايز ايه ! فقال لك ياعمي انا شغلت لك الاكسس واموركم الداخلية خلصوها مع بعض ! والاكسس حيزعل ويقول انت رايح للويندوز في امر زي كدا ! انا لدي دوالي وكائناتي اللي تعمل الحاجة دي ! اما لو فيه حاجة ما اقدرش عليها روح لمكتبات الويندوز وخذ اللي انت عايزه وهاتها لي في وحدة نمطية عامة ! ممكن يخطر في بالك عايز افتح الاكسل من الاكسس ! لو فكرت قليلا اكيد هناك دالة api بتعمل كذا لانه الويندوز بيعملها وهو فتح وتشغيل الاكسل ! بس هنا الاكسس برضه بيعمل الحاجة بس عايز منك ان تضيف مرجع في المراجع او تبحث وتتعلم ويمكن فيه دالة في الاكسس بتعمل كذا ! باختصار api دوال كثيرة جدا بحجم مكتبات الويندوز عليك معرفة اسمها ومكتبتها ونوع متغيراتها الممررة لها ومكان وجودها لكي تستطيع استخدامها ! لاحظ انه لو شغلت الاكسس على غير ويندوز مش حيفهم عليها ! بل لاحظ كيف انه عند تغير اصدارات الويندوز عليك مراجعة شكل الدالة الجديد ! بمعنى ابتعد عنها الا للضرورة !1 point
-
بسم الله الرحمن الرحيم منذ ان حملت المرفق و انا افكر في طريقة لشرح الفرق بينهما و ساحاول ان اشرح عسى ان يستفاد منها اولا : الكود يتم وضع الكود في زر امر او عند تحميل نموذج او اغلاقه و يكون الكود خاصا بمعنى ينفذ عند حدث الضغط على زر الامر ( oopen ) مثلا private sub oopen_click docmd.openform"11" end sub نلاحظ في بداية الكود كلمة ( private ) اي خاص و الكود هنا ينفذ فقط عند الضغط على زر ( oopen ) ثانيا : الوحدات النمطية تحتوي الوحدات النمطية على اكواد او وظائف و على عكس ( الكود ) يمكن استدعاء الوحدة النمطية في اي نموذج وهي لا تتحس بالأحداث مثلا Public Sub openform() DoCmd.openform "ff" End Sub نلاحظ وجود كلمة ( public ) اي عمومي يقوم هذا الكود بفتح النموذج ( ff ) و يتم استدعائه بهذا الشكل Private Sub Command0_Click() Call openform End Sub حيث نضع هذا الكود في اي زر موجود ضمن اي نموذج فائدة : لا يجوز تسمية الوحدة النمطية بنفس اسم احد الكودات الموجود داخلها ( مثلا لا يجوز تسمية الوحدة النمطية السابقة باسم openform بل يجب اعطائها اي اسم آخر ) فائدة : لا يمكن ان تكتب في الوحدة النمطية ( oopen_click ) لان الوحدة النمطية لا تتحسس بالأحداث ثالثا : الوحدة النمطية للفئة الوحدة النمطية للفئة تجمع بين الوحدة النمطية و الكود بمعنى آخر الكود التالي ينفذ عند فتح النموذج private sub form_open Set Anim = New clsFormAnimate end sub و عملية فتح النموذج فعليا هي حدث ولكن لا يمكن ان نكتب الكود السابق ضمن وحدة نمطية حتى لو استعملنا كلمة ( public ) لان الوحدة النمطية لا تتحس بالأحداث ( كما ذكرنا سابقا ) انما تخزن كودا عاما يتم تعريفه باسمه و ضمن اسمه نكتب ما نريد ان ينفذ لكن الوحدة النمطية للفئة يمكن ان تتحس بالأحداث و تتعامل معها مثلا يمكن ان تكتب ضمن الوحدة النمطية للفئة Private Sub mForm_Load() MsgBox "hi", vbInformation End Sub الكود السابق يعطي رسالة ( hi ) عند تحميل نموذج و لكن اي نموذج !!!! الجواب هو اي نموذج نرغب به فقط علينا استدعاء الوحدة النمطية للفئة لتنفيذ هذا الكود فائدة : الوحدة النمطية للفئة تستدعى باسمها على عكس الوحدات النمطية كيف يتم استدعاء الوحدة النمطية للفئة ؟؟ 1 - ننشئ وحدة نمطية للفئة و نسميها ( open1 ) نكتب الكود التالي في قسم التصريحات العامة للوحدة النمطية للفئة Public withevents mform As Access.Form حيث يتم تعريف المتغير ( mform ) كنموذج 2 - نكتب هذا الكود في الوحدة النمطية للفئة Private Sub Class_Initialize() mForm_Load Beep End Sub عند تحميل الوحدة النمطية اذهب الى ( mform_load ) 3 - نضيف هذا الكود الى الوحدة النمطية للفئة Private Sub mForm_Load() MsgBox "hi", vbInformation End Sub عند تحميل ( mform ) اظهر رسالة ( hi ) و طبعا ( mform ) تم تعريفه سابقا كنموذج اكسس 4 - نكتب هذا الكود في قسم التصريحات العامة للنموذج الذي نرغب ان يتم استدعاء الوحدة النمطية للفئة فيه و ليكن مثلا ( 123 ) Dim Anim As open1 تم تعريف متغير ( anim ) كوحدة نمطية للفئة 5 - نكتب هذا الكود في حدث تحميل النموذج ( 123 ) Set Anim = New open1 تم ضبط المتغير ليستدعي الوحدة النمطية للفئة فائدة : لايمكن كتابة الكود التالي لاستدعاء الوحدة النمطية للفئة Private Sub Form_Load() Call open1 End Sub الكود المكتوب ضمن الوحدة النمطية للفئة السابقة يقوم باصدار صوت تنبيه و يظهر رسالة مكتوب فيها ( hi ) الكثير يسأل هل يجب ان اكتب كل هذه الجريدة من اجل صوت تنبيه و رسالة ترحيب الجواب هو لا ولكن يتم انشاء الوحدات النمطية للفئة من اجل عدد نماذج اكبر و عمليات كودات اكبر و في النهاية ربما يستطيع المرفق ان يشرح افضل مني وارجو ممن يستطيع ان يشرح افضل مني ان يسهم في شرح الموضوع و اعتذر على الإطالة مثال عن انشاء الوحدات النمطية و الوحدات النمطية للفئة.rar1 point
-
الخطوه الأهم في تصميم اي قاعدة بيانات هي وضع مخطط العمل , و لكي نعرف مخطط العمل لابد من الاحاطه بالهدف المطلوب من انشاء قاعدة البيانات . لدينا شركة NorthWind أو الرياح الشماليه , شركة تقوم بشراء وبيع البضائع , عملية الشراء غير مطروقه في هذه القاعده , و انما الاهتمام كله موجه لعملية البيع ( و طبعا بالامكان تصميم مايلزم لعمليات الشراء ) . عملية البيع تتم بناء على طلبيات مسبقه من العملاء , بحيث يتم تحديد الأصناف المطلوب ارسالها للعميل و الأسعار ووسيلة الشحن وموعد الشحن المطلوب و رقم الموظف الذي قام بتسجيل بيانات الطلبيه . بالنسبه للبضائع لابد من مراعاة أن يكون هناك مخزون متوفر حيث أن البضائع التي تم بيعها للعملاء ستخفض الرصيد الموجود بالمخازن , و طبعا في حال انخفاض هذا الرصيد عن حد اعادة الطلب , فيجب اعداد طلبية شراء لتغذية المخزون , و لكن كما ذكرنا عملية الشراء غير متطرق اليها في هذه القاعده . اذا يمكننا الآن أن نضع تصورا للجدول التي ينبغي انشاؤها حيث : - طالما لدينا بضائع يتم بيعها اذا لابد من انشاء جدول خاص بالبضائع Product - لدينا عملاء اذا نحتاج الى جدول للعملاء Customers - لدينا طلبيات اذا نحتاج الى جدول خاص للطلبيات اذ لكل عميل طلبيه مستقله Orders هذه هي الجداول الرئيسيه التي نحتاجها و سنقوم بتصميمها الآن . قبل البدء بتصميم الجداول لابد من الاشاره الى بعض التوصيات في بناء الجداول و هي : أولا : الجدول هو المادة التخزينيه للبيانات الرئيسيه , اذ يجب أن يحتوي على القيم التي لاتتأثر بغيرها اي على سبيل المثال اذا كانا نريد حساب المعادله التاليه القيمه = الكميه * سعر الوحده يمكن أن نضع حقلا للكميه المباعه و حقلا لسعر الوحده أما القيمة و التي هي عباره عن سعر الوحده * الكميه , فلا يجب أن يكون حقلا ضمن الجدول وذلك لأنه يتأثر بقيمة كل من الكمية و السعر فاذا تغير سعر الوحده فان الجدول لايستطيع حساب القيمه من تلقاء نفسه الا من خلال تشغيل كود معين , لذلك يستعاض عن هذا باستخراج القيمة من خلال استعلام يحوي حقل محسوب يساوي الكميه * السعر ثانيا : يجب فصل البيانات الخاصه بجزئيه معينه عن بعضها , مثلا الجدول الرئيسي لدينا هو جدول الطلبيات , و حيث أننا نريد أن ندخل اسم العميل في الطلبيه , و حيث أننا نحتاج بنفس الوقت لمعرفة بيانات كامله عن هذا العميل , فاذا كنا سنقوم بادخال بيانات العميل هذه كل مره في جدول الطلبيات فسيكون هذا عملا مرهقا , لذلك احتجنا أن تكون بيانات العميل في جدول مستقل تجتمع فيه بياناته الكامله , و نكتفي في جدول الطلبيات بوضع حقل واحد لرقم العميل , و بعملية الربط بين الجدولين نستطيع معرفة مانريد من بيانات عن هذا العميل . ثالثا : يفضل أن تكون استخدام الأسماء الانكليزيه لكل مكونات قاعدة البيانات و خاصة اسماء الجداول و الحقول , لأن استخدام الأسماء العربيه يسبب ارباكات أثناء العمل بالمعادلات و أكواد الفيجوال بيسيك رابعا : تجنب وضع مسافات في التسميات , مثلا اذا كنت تريد تسمية Product List فالأفضل وصلها هكذا ProductList لنبدأ الآن بتصميم الجدول الأسهل في هذه القاعده و هو جدول العملاء , و لنتصور أنه يحتوي الحقول التاليه : اسم العميل CompanyName العنوان Address المدينه City الدوله Country المنطقه Region الرمز البريدي PostalCode الهاتف Phone الفاكس Fax و سنحتاج اضافة لذلك بيانات عن الشخص الذي سنتصل به مثل اسمه ContactName و عمله الوظيفي ContactTitle و طبعا قبل كل ذلك نحتاج الى كود العميل CustomerID و هو الذي سيكون صلة الربط مع الجداول الأخرى و المفتاح الرئيسي لهذا الجدول قاعدة البيانات هذه موجوده بشكل جاهز مع الأكسس من قائمة الأدوات - أمثله , يمكن تنزيلها للاطلاع عليها , و لكن من أراد أن يستفيد أكثر فليحاول التصميم بنفسه لزيادة مهارته و ليبدأ بتصميم جدول العملاء و سنتابع ان شاء الله بقية الجداول في الدرس التالي1 point