بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 03/03/16 in مشاركات
-
دالة offset من الدوال المهمة لتحديد نطاق الخلايا وتوفير الإجهاد على الملف.. لمعرفة كيفية عملها شاهد الصورة المرفقة ولكم تحياتي4 points
-
جرب الكود بهذا الشكل Sub Test() Dim WS As Worksheet, SH As Worksheet Dim Cel As Range Dim lRow As Long Set WS = Sheets("أداة بناء الخطط"): Set SH = Sheets("ورقة1") Application.ScreenUpdating = False SH.Range("B3:M1000").ClearContents For Each Cel In WS.Range("H3:H43") If Cel.Value >= 0.9 Then lRow = SH.Cells(Rows.Count, "B").End(xlUp).Row + 1 SH.Cells(lRow, "B").Value = Cel.Offset(, 1) ElseIf Cel.Value <= 0.5 Then lRow = SH.Cells(Rows.Count, "H").End(xlUp).Row + 1 SH.Cells(lRow, "H").Value = Cel.Offset(, 1) End If Next Cel Application.ScreenUpdating = True End Sub تم إضافة سطر واحد يقوم بمسح البيانات قبل الشروع في الكود SH.Range("B3:M1000").ClearContents تقبل تحياتي2 points
-
جزاكم الله خيرا معلمينا الكرام ويمكن ان نجعل الامر اكثر مرونة فنستبدل ()Date بمتغير نجعله بين يدي المستخدم2 points
-
2 points
-
همم ، مع ان هذا السؤال غير عن السؤال الاصل ، ولكن له علاقة ما خلينا نراجع الموضوع بطريقة تختلف شوي ، وراح نوصل بنتائج اخرى يجب عدم السماح لمستخدمي البرنامج ان يدخلوا البيانات في الجداول مباشرة ، لأي سبب كان ، لهذا السبب ، فإدخال البيانات يكون عن طريق حقل في نموذج ، وهنا يمكنك ان تستخدم قاعدة التحقق من الصحة لبيانات هذا الحقل ، فالمسألة اصبحت سهلة ، حيث نستطيع ان نعمل معادلة لهذا الحدث ، فلنفترض ان اسم الحقل Date_From ، عليه تكون المعادلة شئ من هذا النوع: Between DateSerial(Year(Date()),1,1) And DateSerial(Year(Date()),12,31) واعتقد بأننا نستطيع ان نضع هذه المعادلة في قاعدة التحقق من الصحةفي الجدول كذلك جعفر2 points
-
أخي الحبيب سعيد بيرم الانتقام ضروري يكون موجود عشان خاطر انضحك علينا .. مينفعش ننضرب على قفانا ونسكت (مش كدا ولا ايه) وبالنسبة للعزومة أنا مستعد وهجوع نفسي لمدة 10 أيام قبليها عشان أنتقم في الأكل (شفت الانتقام ورانا ورانا ... دا طبع والطبع غلاااااااااااااب يا أحباب) تقبلوا تحياتي2 points
-
والله اللى قلبه ابيض ميعرفشى ينتقم وانت قلبك أبيض بياض القمراللى بينورالدنيا كلها وان كان على خسارتك فى الــ 15 دولار ياسيدى اخينا رجب جاويش يعوضها فى عزومة البط وانا عليّ الساقع وافر تقديرى وجزاكم الله خيرا2 points
-
أخي الحبيب رجب جاويش بارك الله فيك وجزاك الله كل خير .. لقد افتقدنا وجودك لعل غيابك خير ... لا تحرمنا من تواجدك معنا فأنت في القلب تقبل وافر تقديري واحترامي2 points
-
السلام عليكم تفضل أخى استخدم المعادلة الآتية للتنسيق الشرطى فى حالة الحضور =INDEX(B2:B14;MATCH(B20;A2:A14;0))="حضر" والمعادلة الآتية فى حالة عدم الحضور =INDEX(B2:B14;MATCH(B20;A2:A14;0))="لم يحضر" حضور.rar2 points
-
بسم الله ما شاء الله عليك أخي الحبيب الزباري موضوع بسيط جداً لكنه في غاية الروعة والجمال ، وجماله يكمن في بساطته حيث أن الكثير ممن يتعاملون مع الإكسيل لا يعرفون استخدامات الدالة ولا يعرفون البارامترات المستخدمة .. من ثم تأتي الصورة لتعبر بشكل جميل عن استخدام الدالة ومعرفة البارامترات الخاصة بها تقبل وافر تقديري واحترامي2 points
-
نفرض ان مربعات الخيار اسماؤها كالتالي a,b,c,e في حقل جديد في الاستعلام مصدر تقريرك الصق الجملة التالية expr1: IIf([a]=-1;"Excellent";IIf([b]=-1;"good";IIf([c]=-1;"fair";IIf([e]=-1;"poor")))) تعمدت وضع نصوص مسميات انجليزية حتى يسهل قراءة وفهم الكود2 points
-
السلام عليكم اخى الكريم .. جزئيه جزئيه .. كما تعلم ان جلب البيانات من خلال معادلة وتنفيذ المعادلة يبدأ من وضع القيمة داخل الخلية كونك تطلب زر تحكم يبقى بتطلب كود .. ارجو مزيداً من التوضيح اما عن كود الطباعه .. وضعت لك كود داخل الملف جربة وابدى ملاحظاتك khaled2.rar2 points
-
الأخ الفاضل محمد على الطيب والله انى لعاجز عن الشكر والتقدير لمجهودك ووقتك واستجابتك طريقتك رائعة وتقوم على عمل بروجرس بار لمدة ثوانى معدودة بعدما ينتهى الكود من التنفيذ وهيه ستكون مفيدة لى وساطبقها ولكن عمليا كنت ابحث عن عمل نفس البروجرس ولكن اثناء تنفيذ الماكرو حيث يتزامن نسبة تقدم الشريط مع التنفيذ الفعلى للكود ولكن لم اجد ولكن هذه الطريقة ايضا رائعة وتوضح للمستخدم انه يتم التحميل وساستخدمها, عاجز عن الشكر اخى الكريم جزالك الله كل خير.... الأخوان الفاضلان (عبد العزيز البسكرى) و (ياسر خليل ابو البراء) ايضا اود ان اشكركم حقا للاستجابة والرد والاهتمام واعتذر لكثرة سؤالى وتقبلوا تحياتى ... وهذه هيه طريقة الاخ الفاضل محمد على الطيب اخى الكريم ياسر خليل ابو البراء ^_^2 points
-
السلام عليكم ورحمة الله وبركاته بدايةً أحب أن أنوه أنني لا أكتم علماً أعطاه الله لي والجميع يعرف ويعلم ذلك تمام العلم .. ولكن آن الأوان أن يكون هناك ثمرة ولو بسيطة لما تعلمته نظراً لتفرغي لهذا العلم سأطرح على المهتمين بالأمر في مجال التربية والتعليم برنامج للسجلات المدرسية (عوضاً عن السجلات الورقية) لمن يهمه الأمر ...أقدم لكم برنامج السجلات المدرسية (والبرنامج ليس للبيع وليس مجاني أيضاً ) .. والبرنامج يشمل المدارس الابتدائية والإعدادية ..أي أن هناك مرونة في التعامل مع البرنامج بشكل كبير بما يتناسب مع كلا المرحلتين الخدمة المقدمة هي أن المدرسة التي ترغب في عمل السجلات تراسلني على الخاص أو يكون التواصل معي عبر حسابي على الفيس بوك (يمكنك معرفته عن طريق رسالة خاصة) .. ويتم الاتفاق على إنجاز العمل بالكامل ثم أقوم بإرسال الملفات جاهزة للطباعة مقابل أجر رمزي (وأكرر أجر رمزي عشان محدش يتخض ) ..إذ أنني أمضيت أكثر من شهرين في تصميم البرنامج والبرنامج متعوب عليه .. يتم التعامل مع المدرسة بالشكل التالي .. تعطيني المدرسة بيانات الدخول للموقع الالكتروني لنسخ بيانات الطلاب والرقم القومي وحالة القيد من الموقع (على أن تكون البيانات منضبطة على الموقع الالكتروني للمدرسة) .. أما بالنسبة لبعض الإدخالات اليدوية كصناعة ولي الأمر أو آخر مدرسة كان بها ، وبيانات المحولين من المدرسة والمحولين إليها ... فيتم إرسالها لي عبر الفيس بوك .. في خلال ساعة واحدة فقط (مهما كان عدد الطلاب) يمكن للمدرسة بعدها الحصول على الملفات جاهزة للطباعة إن شاء الله المخرجات في البرنامج بالشكل التالي : أولاً غلاف السجل وستكون به بيانات اسم المحافظة والإدارة والمدرسة ثانياً : الإحصاء الاستقراري لكل صف على حدا ولكل الصفوف مجمعة ثالثاً : أوراق السجل التي بها بيانات الطلاب من اسمه واسم الأب وحالة القيد والديانة والجنسية وتاريخ ميلاده وحساب تاريخ ميلاده وتاريخ دخول المدرسة ومحافظة الميلاد والرقم القومي (وتكون البيانات كما في السجل الورقي على صفحتين ..مكملتين) وهذا نموذج للتوضيح رابعاً : كشوف 41 مستجدين خامساً: كشوف بأسماء المحولين من المدرسة (لكل صف على حدا أو كشف مجمع لكل الصفوف) سادساً: كشوف بأسماء المحولين إلى المدرسة (لكل صف على حدا أو كشف مجمع لكل الصفوف) نموذج مقارب للنموذج السابق سابعاً : كشوف بأسماء البافين للإعادة (لكل صف على حدا أو كشف مجمع لكل الصفوف) نموذج مقارب للنموذج السابق ثامناً : كشوف بأسماء الوافدين (لكل صف على حدا أو كشف مجمع لكل الصفوف) نموذج مقارب للنموذج السابق تاسعاً : قوائم الفصول ... وأخيراً أتمنى ألا ينزعج أحد من طرحي لموضوع فيه منفعة شخصية لي .. لمن يريد التواصل أو معرفة رقم موبايلي للتواصل أن يرسل رسالة خاصة رابط الموضوع على منتدى إكسيل فور أس ExcelForUs من هنا يوجد بالمرفقات نموذج كامل لما يتم طباعته من أوراق السجل لمدرسة تقرب من الألف طالب دمتم على طاعة الله .. أخوكم في الله ياسر خليل أبو البراء Files.rar1 point
-
السلام عليكم اخوانى وأساتذتى فى المنتدى وكل عام وأنتم بخير بمناسبة عيد الفطر اليوم أقدم لكم كيفية عمل اختصار لملف اكسل به صورتك على سطح المكتب فقد لفت نظرى طلب أحد الأخوة لهذا الموضوع لذلك قررت أن أضع بين أيديكم الطريقة الآتية 1 - فى ملف اكسل أدرج هذا المديول Option Explicit Private Declare Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Integer) As Long Private Declare Function CloseClipboard Lib "user32" () As Long Private Declare Function GetActiveWindow Lib "user32" () As Integer Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long Private Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hWnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Const CSIDL_PERSONAL = &H5 Private Type SHITEMID cb As Long abID As Byte End Type Private Type ITEMIDLIST mkid As SHITEMID End Type Dim FSO As New FileSystemObject Dim FLD As Folder Function UserNameOffice() As String UserNameOffice = Application.UserName End Function Public Function DesktopAddress() As String DesktopAddress = CreateObject("WScript.Shell").SpecialFolders("Desktop") & Application.PathSeparator End Function Private Function GetSpecialFolder(CSIDL As Long) As String Dim Path As String Dim FolderPath As Object Dim IDL As ITEMIDLIST Dim sh As New Shell32.Shell Set FolderPath = sh.NameSpace(5) If Not FolderPath Is Nothing Then GetSpecialFolder = FolderPath.Self.Path Exit Function End If GetSpecialFolder = "" End Function Function DirExists(strDirectory As String) As Boolean DirExists = (Dir(strDirectory, vbDirectory) <> "") End Function Sub Desktop_Shortcut() Dim WBName As String, Path As String, WB_Link As String, WB_Name As String Dim DesktopPath As String, TargetPath As String, StrSave As String Dim WSHShell As Object, MyShortcut As Object Set WSHShell = CreateObject("WScript.Shell") Dim FSO As Object, Folder As Object, File As Object Set FSO = CreateObject("Scripting.FileSystemObject") Dim WB As Workbook Set WB = ThisWorkbook Dim WSh As Worksheet Set WSh = Sheet1 WBName = WB.Name Path = "MyFile" DesktopPath = WSHShell.SpecialFolders("Desktop") WSh.Range("C2").Value = WB.Name WB_Name = WSh.Range("C3").Value WB_Link = WSh.Range("C4").Value On Error GoTo ErrHandle If Not DirExists("C:\" & WB_Name) Then 'Check C Drive If Not DirExists(GetSpecialFolder(CSIDL_PERSONAL) & "\" & WB_Name) Then 'Check My Documents Set FSO = CreateObject("Scripting.FileSystemObject") 'If not in C Drive or My Documents - then create shortcut FSO.CreateFolder "C:\" & WB_Name ChDir "C:\" & WB_Name SavePicture Sheet1.Image1.Picture, WB_Name & ".ico" 'Picture pasted onto Image1 on Sheet 1 - Link Shortcut Set FSO = CreateObject("Scripting.FileSystemObject") Set MyShortcut = WSHShell.CreateShortcut(DesktopPath & "\" & WB_Link) With MyShortcut .TargetPath = WB.FullName .IconLocation = "C:\" & WB_Name & "\" & WB_Name & ".ico" .WindowStyle = 1 .Description = "EEZIAdmin" .WorkingDirectory = WB.Path .Save End With Else End If End If ErrHandle: Set WSHShell = Nothing End Sub 2 - فى شيت 1 الخلية C3 ضع المعادلة =IF($C$2="";"";IF(MID($C$2;(LEN($C$2)-4);"1")=".";LEFT($C$2;LEN($C$2)-5);IF(MID($C$2;(LEN($C$2)-3);"1")=".";LEFT($C$2;LEN($C$2)-4);""))) وفى الخلية C4 ضع المعادلة الآتية =IF($C$3<>"";$C$3&".lnk";"") 3 - فى شيت 1 ادراج Image وعليها صورة : ندرج الـ Image كالتالى من developet tab ثم insert ثم more controls ثم Microsoft forms 2.0 image ثم ok ارسم الـــــ Image فى الشيت وبعدين كليك يمين عليها واخنر Properties فى قائمة الخصائص التى تظهر دور على الخيار Picture واعمل ادراج لأى صورة من على جهازك على الـ Image واحفظ وشغل الكود لكم كل التحية والتقدير Desktop Shortcut mokhtar.rar1 point
-
انت الخير والبركة اخوي ابو خليل واكمالا لفكرتك ، نستطيع ان يكون عندنا متغيرين اثنين (Date_1 و Date_2) ، فبهذه الطريقة يمكن الاستفادة من المعادلة لسنة او 4 سنوات او اي عدد من السنين: Between DateSerial(Year([Date_1]),1,1) And DateSerial(Year([Date_2]),12,31) جعفر1 point
-
العروسة لو عرفت هيجيلها اكتئاب .. شكلها كدا هنلغي البط ونطلب كباب .. بالتوفيق يا أحباب1 point
-
1 point
-
كيف و أنا اتتبع خطاكم و أسطركم الذهبية فى الردود على الأعضاء حيا الله جميع رواد المنتدى و بارك فى علمكم1 point
-
أخي الكريم الذول السطر الأول عبارة عن بداية الحلقة التكرارية للصفوف من 8 إلى 32 والعداد المستخدم هو المتغير ii السطر الثاني اختبار ما إذا كانت الخلية في العمود الثالث فارغة يتم إخفاء الصف في السطر التالي له ثم إغلاق جملة الشرط والسطر الأخير الانتقال للخلية التالية في الحلقة التكرارية تقبل تحياتي1 point
-
الله لا يحرمنا منكم عز الله انكم كفوا جميع بيض الله وجيهكم لا خلا ولا عدم تسلمون1 point
-
1 point
-
السلام عليكم الاستاذ الفاضل / خالد الله يجازيك كل خير ويجعله في ميزان حسناتك شكرا علي هذا الكود الطباعة ولكن الكود بيعمل معاينة علي اللجنة الحالية انا عاوز كود طباعة بيعمل معاينة علي كل اللجان ويقوم بطباعة اللجان كلها وليس لجنة واحدة بالنسبة لزر التحكم انا عاوز اللجان تتغير من خلال الاسهم بالزيادة او النقصان ابغي شرح لجزئية في كود الطباعة اعتقد في متغيرات عاوز افهمها بحيث اقدر اطبقها علي ورقة عمل اخري For i = 8 To 32 If Cells(i, 3).Value = "" Then Cells(i, 3).EntireRow.Hidden = True End If Next i1 point
-
1 point
-
وبارك الله فيك جمل SQL هي استعلام بالأصل لم اجرب الاستعلام استخدمت الكود .. وبالتوفيق1 point
-
1 point
-
حياك الله اخي الكريم ضع هذا السطر في حدث عند النقر لزر أمر DoCmd.RunSQL "DELETE T1.* FROM T1 WHERE fname NOT IN ( SELECT fname FROM t2)" بالتوفيق1 point
-
وعليكم السلام أخوي جعفر وين هالغيبة تفضل: Private Sub Form_Current() MyTime = Now() Me.pic.Visible = True Me.نص7.Visible = True Me.نص11.Visible = True End Sub Private Sub t_Change() Dim i As String i = Len(Me.t.Text) If i >= 4 Then DoCmd.Requery Dim db As DAO.Database, rs As DAO.Recordset Set db = CurrentDb Set rs = db.OpenRecordset("t2") rs.AddNew rs("an") = Me.an rs("adate") = Date rs("intime") = Me.LabelDate rs.Update rs.Close t = "" t.SetFocus PauseTime = 20 ' Set duration. Start = Timer ' Set start time. Do While Timer < Start + PauseTime DoEvents ' Yield to other processes. Loop Me.pic.Visible = False Me.نص7.Visible = False Me.نص11.Visible = False End If End Sub تقدر تلعب بسطر التأخير ،بالثوان: PauseTime = 20 جعفر 304.abc.mdb.zip1 point
-
استاذى الحبيب ومعلمى الجليل شكر الله لك متابعتكم الطيبة وكرمكم الذى لا حدود له اسأل الله تعالى لك البركة فى العمر والعلم والعمل وان يجعل كل سبيل علم تمهدوه لنا ان يكن سيل دخولكم الجنة فى اعلى درجاتها مع النبين والصديقين والشهداء ان شاء الله جزاكم الله عنى وعن امة محمد كل الخير ان شاء الله سأجرب نفسى فى تطبيق ما اهديتمونى وأوافيكم يالنتيجة ان شاء الله فى اقرب وقت دمتم على طاعة الله1 point
-
بارك الله فيك أخي خالد الرشيدي قمت بتجربة الدالة وأعطتني نفس الناتج رغم أنني لم أعرف كيفية استخدام الشروط بالنسبة للدالة sumifs وذلك بسبب أنني لست إلا مبتدأ وحاولت إيجاد حل لهذا الجدول أفيدونا أفادكم الله وبارك الله فيك1 point
-
السلام عليكم الاخ الكريم سليمان اهلاً بك بين اخوانك بالمنتدى .. الفت انتباه حضرتك الى ان استخدام Sumifs فى حاله اكثر من شرط للجمع وفى هذه الحالة شرط واحد وهو الرقم لهذا يفضل استخدام Sumif تقبلوا تحياتى ومرورى1 point
-
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته صباح النور إليك المرفق عسى يلبي احتياجاتك علماً بأن هذه أول مشاركة لي المنتدى عسى الله أن ييسر لي ما بعدها والسلام عليكم الجدول3.rar1 point
-
1 point
-
1 point
-
يا سلام عليك وعلى افكارك النيرة حين قلت في مشاركتي السابقة ان فكرتك هي الاصح لانه قد خطر في بالي لو ان البرنامج لم يتم فتحه اكثر من ثلاثة ايام فانه حين يتم فتح النموذج سيقوم البرنامج بحذف النسخ كلها ، لذا اخذت بالاحتياط سابقا فجعلت البرنامج ياخذ نسخة قبل اجراء الحذف ولكن فكرتك الجديدة هذه تعطي مجالا اكثر أمنا وخطا للرجوع تفضل تم تعديل المثال ليحقق المطلوب جرب ووافني بالنتيجة db.rar1 point
-
تفضل Private Sub أمر13_Click() Me.b1 = DSum("[wared]", "malyah", "[sdate] between #" & Me.sdate & "# and #" & Me.fdate & "#") Me.b2 = DSum("[tamoel]", "malyah", "[sdate1] between #" & Me.sdate & "# and #" & Me.fdate & "#") Me.b3 = DSum("[masrof]", "malyah", "[sdate2] between #" & Me.sdate & "# and #" & Me.fdate & "#") End Sub جعفر1 point
-
بس انا عاندى فكره افضل من البرنامج ده ومن البرنامج اللى اخى ياسؤ اقترحه نشتريه تحبو اقول فكرتى ولا اسكت ونكتفى بذلك اخوانى الكرام وجزاكم الله كل خير1 point
-
الطريقه الرابعه :- استخدام لغة البرمجه هى بنظرى من اهم الطرق واسهلها وهى تكون من خلال البرمجه فقط ولا يمكن تنفيذها من شاشة الخصائص فى مرحله التصميم شاهد الصوره التالية هتعرف ما هى الطريقه الكود هو بشكل مكبر عباره عن سطر واحد فقط ComboBox1.RowSource = "sheet1!a2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row تعالو نفصص كل كلمة فى هذا السطر ونعرف ازاى نكتبه comboBox هو اسم الكمبوبوكس المراد تعبئته بالبيانات . تكتب من خلال جعل الكيبورد انجلش ثم نضغط على حرف ز بالعربى RowSource هى الخاصيه المسئوله عن تعبئة الكمبوبوكس بالبيانات = نكتب علامه = " نفتح قوس تنصيص " ويكتب من خلال شفت+حرف ط بالعربى Sheet1!a2 وهى اول خلية بالجدول المراد عرض بياناته فى الكمبوبوكس (ونلاحظ اننا كتبنا اسم الشيت متبوع بعلامة تعجب ! ثم اسم الخلية) : تعنى الى b اسم اخر عمود بالجدول " قفل قوس التنصيص طالما فتحنا قوس اذن لازم نقفله & علامة و أو بمعنى and Sheet1.Cells(Rows.Count, "a").End(xlUp).Row اخر خليه بها بيانات بالعمود A طيب عرفنا ازاى نكتب الكود فما هو وقت تنفيذ الكود السطر ده هيتم وضعه فى اى حدث ( والله دى بقى حضرتك اللى تحددها حسب برنامجك انت ولكن على سبيل المثال نضع هذا الكود فى حدث فتح الفورم شاهد الكود Private Sub UserForm_Initialize() ComboBox1.RowSource = "sheet1!a2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row End Sub فعند فتح الفورم وتهيئته يتم تعبئة الكمبوبوكس بالبيانات ممكن نكتبه بشكل تانى لو حابب تعرف اكتر من طريقه شوف الكود وبعدين اشرحه لك Private Sub UserForm_Initialize() Lr = Sheet1.Cells(Rows.Count, "a").End(xlUp).Row ComboBox1.RowSource = "sheet1!a2:b" & Lr End Sub قمت بعمل متغير وسميته Lr وممكن تسميها انت بأى اسم كما تحب وقلت ان المتغير ده عباره عن اخر خلية بها بيانات بالعمود A وبالتالى كتبة المصدر بتاع البيانات كالتالى sheet1!a2:b" & Lr" تم الاستعاضه بـ Lr بدلا من السطره ده Sheet1.Cells(Rows.Count, "a").End(xlUp).Row ويمكن كتابة الكود بشكل اخر ( ملحوظه هذا التنوع بالكتابه هو فقط من حيث اسلوب كتابة الكود لكن المضمون واحد) Private Sub UserForm_Initialize() With ComboBox1 .RowSource = "sheet1!a2:b" & Sheet1.Cells(Rows.Count, "a").End(xlUp).Row End With End Sub الى هنا انتهى درس اليوم اعتقد انه بسيط وممتع يارب اكون وفقت بالشرح وتستفيدو منه عايز اشوف تجاربكم على الدرس على رابط الردود الخاص بالموضوع اتمنى لكم التوفيق وانتظرونا فى طريقه جديده قريبا بأذن الله1 point
-
الطريقه الثالثه :- استخدام النطاقات المعرفه بدالة Offset فى عمل نطاق ديناميكى متغير اليكم الرابط التالى للقدير واستاذى الفاضل / محمد نصرى يشرح فيه الداله offset بطريقه رائعه http://www.officena.net/ib/topic/56588-سلسلة-تعلم-اكسل-معي-بالصوت-والصورة/?do=findComment&comment=358921 تحديدا الفيديو الثانى هو اللى مرتبط بموضوعنا وبعد ما تشاهد الفيديو ارجع لشرحى المتواضع وهتعرف ليه قلتلك افهم الداله Offset وهذا شرحى المتواضع عن الداله offset الداله Offset هى من اهم الدوال فى الاكسيل انا شخصيا لما بتعامل معها بحس انى مهندس مساحه دلوقتى هنعرف ما هى داله offset وازاى نستفيد بيها فى عمل نطاق ديناميكى معرف يتم استخدامه فى تعبئة الكمبوبوكس بالبيانات هقولك ما هى الداله offset بلغة المصطبه واحنا قاعدين كدا نشرب كوباية شاى فى الخمسينه ازاى بقى نطبق الكلام ده فى الاكسيل شوف الصوره دى الاول وبعدين نكمل زى ما شايفين بالصوره وقفت بالخلية G8 وعملت الداله offset فهى مكونه من خمس اقسام 1- reference : - وهو مرجع العمل يعنى تحديد مركز انطلاق العمل وهو كما بالصوره A2 لانها اول خلية بالجدول المظلل باللون الاخضر فأنا حدد A2 لتكون مركز انطلاق العمل 2- rows : - وهى تعنى الصفوف ومن خلالها يتم تحديد صف بداية العمل يعنى اتحرك كم صف من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى صف من الخلية A2 3- Cols: - وهى اختصار كلمة Colmuns تعنى العمود ومن خلالها يتم تحديد عمود بدابة العمل يعنى اتحرك كم عمود من نقطة المركز اللى هى A2 ( هنا بالمعادله كتبت 0 يعنى لا تتحرك اى عمود من الخلية A2 ) 2 و 3 يتم من خلالهم تحديد نقطة بداية العمل 4- height: - وهى تعنى ارتفاع ومن خلالها يتم تحديد كم صف نريده للاستخدام ( هنا بالمعادله كتبت 6 يعنى اجلب لى 6 صفوف بدأ من الخلية A2 ) 5- width: - وهى تعنى عرض ومن خلالها يتم تحديد كم عمود نريده للاستخدام ( هنا بالمعادله كتبت 1يعنى اجلب لى عمود واحد بدأ من الخلية A2 ) 4 و 5 يتم من خلالهم تحديد كم صف وكم عمود نريده للاستخدام الكلام ده هيتضح لك اكتر لانه اذا عرف السبب بطل العجب انسخ المعادله اللى كتبناه بالخلية G8 واتبع التعليمات اللى بالصوره وبكدا عرفنا نطاق شوف الخطوه اللى بعد كدا شاهد الصوره وبكدا عند عرض الفورم شاهد النتيجة واحد هيقولى وليه يا عم اللفه الطويله دى انا مش شايف فرق بينها وبين الطريقه التانية اللى شرحتها قبل كدا هى نفس الفكره فى تعريف النطاق ومن ثم كتابته فى Rowsource يعنى دلوقتى لو حبينا نضيف اسم جديد فى الخلية A8 مش هيظهر فى الكمبوبوكس وانت قلتلى انه نطاق ديناميكى يكبر ويصغر حسب الادخالات فى العمود A هقوله برافو عليك انك صاحى معايا تعالى بقى اقولك ايه الفرق بينها وبين الطريقه التانية هو انى بدل ما انا محدد عدد 6 صفوف فى المعادله offset هستعين بداله Count A وهى تعمل على عد الخلايا اللى بها كتابه فى نطاق معين =COUNTA(A2:A10000) لو عملنا المعادله دى فى اى خليه هيقوم بعد الخلايا اللى بها بيانات فى النطاق من A2 الى الخلية A10000 مثلا طبعا النتيجة طبقا للصوره السابقه هتكون 6 ولكن لو قمت باضافه اسم جديد هتكون النتيجة 7 أذن اروح للداله Offset واتحكم فى عدد الصفوف من خلال Count A هتكون المعادله كدا =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) لاحظ الفرق بينها وبين المعادله السابقه استبدلنا رقم 6 بالمعادله هننسخ المعادله دى ونروح نعدل النطاق اللى عرفناه قبل كدا وبكدا ضيف اى اسماء عملاء جديده او احذف اى اسماء موجوده وشاهد الكمبوبوكس سوف يتم عرض الاسماء الموجوده فقط دون زياده او نقصان شاهد الصوره واحد هيقولى انت كدا علمتنى ازاى اتحكم فى عدد الصفوف لتكون تلقائيه حسب عددها بالشيت طيب ازاى اتحكم فى عدد الاعمده انا شايف الكمبوبوكس بيظهر عمود 1 انا عايزه يظهر عمودين ازاى التحكم فى المعادله دى المعادله اللى موجوده دلوقتى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);1) وعلشان تتحكم فى عدد الاعمده غيرها الى =OFFSET($A$2;0;0;COUNTA($A$2:$A$10000);2) اللى مركز معايا هيلاحظ الفرق بين المعادلتين فى اخر جزء من المعادله وهو عدد الاعمده غيرت بدل من عرض عمود 1 الى عمودين 2 طبعا علشان تغيرها لازم تروح الى قائمة Name Manager وتعمل تحرير للنطاق وتغير المعادله بدل من عمود واحد الى عمودين وطالما عايز تعرض عمودين متنساش زى ما قلنا قبل كدا تكتب 2 فى الخاصيه Column Count شاهد الصوره عند تغيير المعادله علشان تثبت المعلومه فى راسك لازم تجرب الكلام ده عملى بنفسك اتمنى يارب اكون وفقت بالشرح واتمنى لكم التوفيق والى لقاء اخر فى طريقه جديده من طرق تعبئة الكمبوبوكس بالبيانات1 point
-
خامسا :- مهارات تعبئه وتغذية الكمبوبوكس بالبيانات بأكثر من طريقه تقليديه واحترافيه الطريقه الاولى :- الخاصيه ( Row Source ) اتكلمنا عليها قبل كدا ولكن هنذكركم بيها مره تانيه لانها ضمن سياق الموضوع لدينا شيت به بيانات افتراضيه كما هو ظاهر بالصوره التالية وعندى فورم بصممه شاهد الصورة أنا دلوقتى عايز اظهر اسماء العملاء من الخلية A2 : A5 فى الكمبوبوكس اللى فى الفورم من شاشة الخصائص اروح للخاصيه Row Source واكتب المدى A2:A5 شاهد الصورة شاهد النتيجة عن تشغيل الفورم طيب لو عايزين نظهر عدد 2 عمود بمعنى اظعر عمود اسماء العملاء وايضا عمود كود العميل اذن لازم اغير المدى فى الخاصيه Row Source واكتب المدى A2:B5 وايضا لازم احدد عدد الاعمده فى الكمبوبوكس يكون 2 من الخاصيه Column Count شاهد الصورة ستجد النتيجة عند تشغيل الفورم ولكن هنا فى مشكله وهى ان الفورم القائمه بتاعته هتكون على حسب الشيت النشط اسم الشيت بمعنى لو انتى فى الشيت رقم 1 هيظهر النطاق اللى بالشيت من A2:B5 شاهد الصوره ولو انت فى الشيت رقم 2 هيظهر النطاق اللى بالشيت من A2:B5 شاهد الصوره وهذه مشكله فلو انت عايز وين ما تكون واقف فى اى شيت ويفتح الفورم يظهر فقط النطاق اللى بالشيت رقم 1 المدى من A2:B5 فى هذه الحاله لازم احدد فى خاصيه Row Sourceاسم الشيت شاهد الصوره أو من خلال الاكواد فى البرمجه كالتالى ComboBox1.RowSource = "sheet1!a2:b5" زى ما احنا شايفين سطر الكود تم وضعه بين علامتى تنصيص " " " المدى ! اسم الشيت " وبكدا لو انت فى اى شيت نشط والفورم اشتغل فيه هيعرض فقط النطاق اللى بالشيت رقم 1 المدى من A2:B51 point
-
رابعاً:- التعامل مع خصائص الـ ComboBox فى لغة البرمجه فى الدرس قبل السابق عرفنا ازاى نتحكم فى خصائص ComboBox من شاشة الخصائص اثناء عملية التصميم فماذا لو حبينا نتحكم فى خصائص ComboBox ولكن من خلال الاكواد وليس من شاشة الخصائص فى مرحله التصميم هنبدأ على طول بمثال عملى ونشرح عليه اضغط دبل كليك على اى مكان فاضى فى الفورم وهندخل محرر اكواد الفورم ونعمل كود فى حدث فتح الفورم اتبع الصوره هتلاقى الصوره دى فى المكان المظلل باللون الاحمر هنا موضوع كتابه الاكواد ولكتابة اى كود خاص بأى عنصر تحكم فى الفورم يكون على الشكل التالى الخاصيه ( Back Color):- زى ما قلنا قبل كدا ان هذه الخاصيه تتيح للمستخدم تغيير لون خلفية للـ ComboBox عايزين نكتب فى المربع الاحمر كود يجعل لون خلفية الكمبوبوكس (سماوى ) عند فتح الفورم لو حضرتك محترف كتابة انجلش كويس على الكيبورد وسريع خلاص لا تهتم بالقائمة المساعده للخصائص اللى بيعرضها الفيجوال بيسك واكتب انت بنفس سطر الكود ناخد مثال اخر عن الخاصيه ( Back Style):- ناخد مثال اخر عن الخاصيه ( Row Source ):- ComboBox1.RowSource = "A1: b5" سطر الكود زى ما هو ظاهر تم كتابة اسم العنصر ثم . ثم اسم الخاصيه ثم = ثم المدى المراد اظهاره فى الكمبوبوكس ( المدى تم كتابته بين اقواس تنصيص " المدى " وهذه الاقواس كما قلنا انها تكتب من خلال الضغط على شيفت + حرف ط بالعربى ) ناخد مثال اخر عن الخاصيه ( Column Heads ):- ComboBox1.ColumnHeads = True سطر الكود زى ما هو ظاهر تم كتابة اسم العنصر ثم . ثم اسم الخاصيه ثم = ثم نوع الخاصيه اما True أو false وكذالك لباقى الخصائص الخاصه باى عنصر تحكم على الفورم هذا هو الكود بشكله النهائى على الاربع خصائص السابقه Private Sub UserForm_Initialize() ComboBox1.BackColor = 15849925 ComboBox1.BackStyle = fmBackStyleOpaque ComboBox1.RowSource = "A1: b5" ComboBox1.ColumnHeads = True End Sub هل يمكن ايضا كتابة الكود بشكل ابسط نعم يوجد طريقه اخرى من خلال استخدام With وطبعا لازم نقفل With بـ End with ويكون بداية سطر الكود هو . ثم اسم الخاصيه ثم = ثم نوع أو قيمة النتيجة شاهد الكود كالتالى Private Sub UserForm_Initialize() With ComboBox1 .BackColor = 15849925 .BackStyle = fmBackStyleOpaque .RowSource = "A1: b5" .ColumnHeads = True End With End Sub أنا عايزك تجرب باقى الخصائص بنفسك ولو صدفك اى مشكله لا تتردد انك تراسلنى تابعونا1 point
-
23- الخاصيه ( ShowDrop Button When ):- وهذه الخاصيه تتيح للمستخدم التحكم فى ظهور او عدم ظهورعلامة الـ ComboBox عند عرض الفورم شاهد الصورة توضح لك الامر ************************************************************************************************************* 24- الخاصيه ( Style ):- وهى بنظرى من اهم الخصائص للكمبوبوكس زى ما احنا عارفين لفتح القائمة الخاصه بالكمبوبوكس للاختيار منها لابد من الضغط على السهم لتفتح القائمه ولكن هذه الخاصيه تتيح للمستخدم التحكم فى وقت فتح القائمة الخاصه بالكمبوبوكس فلها خيارين الخيار الاول Fm StyleDropDown Combo - 0 :- هو الافتراضى لابد من الضغظ على السهم لفتح القائمة كما تتيح للمستخدم كتابة اى شئ بالكمبوبوكس غير موجود بالقائمه بمعنى لا تلزم المستخدم من الخيار من القائمة والخيار الثانى Fm StyleDropDown List - 2 : -هو فتح القائمة من خلال الضغط على السهم او بمجرد وقوف مؤشر الماوس على الكمبوبوكس وكمان ميزة ثالته وهى مهمه جدا هو انه لا يمكن للمستخدم كتابة اى شئ فى الكمبوبوكس يعنى كانك عامل خاصيه حمايه للكمبوبوكس ولا سبيل امام المستخدم الا من الاختيار من القائمه ******************************************************************************* 25-الخاصيه (Text Align) :- وهذه الخاصيه تتيح للمستخدم التحكم فى اتجاه النص ( المحازاه للنص )داخل الـكمبوبوكس هل يكون يميناً أو يساراً أو وسط الـكمبوبوكس لو ذهبت للخصائص وعند الخاصيه Text Align ستجد سهم اضغط عليه ستجد 3 خيارات امامك وهى fm Text Align Left -1 عند الاختيار ستجد ان اتجاه النص داخل ComboBox يبداء من اليسار fm Text Align Center -2 عند الاختيار ستجد ان اتجاه النص داخل ComboBox فى المنتصف fm Text Align Right -3 عند الاختيار ستجد ان اتجاه النص داخل ComboBox يبداء من اليمين ******************************************************************************************** 26-الخاصيه (Tab index ) وهذه الخاصيه تتيح للمستخدم ترتيب التنقل بين الازرار على الفورم بعد الخروج منها من خلال الزر انتر ويمكن تعطيل هذه الخاصيه من خلال استخدام الخاصيه Tab stop = True هحاول اشرحها بشكل مبسط بفرض عندك فورم أنشئت فيه 3 عناصر ( Combobox1 - Textbox2 - Textbox1 )على نفس الترتيب فأن الفيجوال بيسك بشكل افتراضى يقوم بترتيب التنقل بينهم حسب ترتيب أنشائهم فعند تشغيل الفورم وانت واقف فى Textbox1 وضغط انتر سينتقل مؤشر الماوس الى Textbox2 ثم ضغط انتر سينتقل مؤشر الماوس الى Combobox1 فلو نا عايز وانا واقف فى Textbox1 واضغط انتر ينتقل الى Combobox1 وليس Textbox2 هنا تاتى اهميه الخاصيه Tab index اذهب لشاشة تصميم الفورم فى الفيجوال وحدد Textbox2 وفى الخاصيه Tab index اكتب رقم 4 ثم حدد Combobox1 ومن الخاصيه Tab index له اكتب رقم 2 ثم ارجع وحدد Textbox2 وفى الخاصيه Tab index اكتب رقم 3 بدلا من 4 وبكدا عند تشغيل الفورم والوقوف فى Textbox1 والضغط انتر سينتقل مؤشر الماوس الى Combobox1 وليس Textbox2 ارجوا ان تكون وضحت الفكره 27-الخاصيه (Tab Stop ) وهذه الخاصيه تحمل خيارين True و False عندد اختيار True يتم تعطيل خاصيه Tab index وعند اختيار False ٍسوف تفعل خاصيه Tab index للتنقل بين الازرار حسب الترتيب الذى ترغب فيه ******************************************************************************************** 28- الخاصيه ( ٍِSpecial Effect ) هذه الخاصيه من الخصائص الهامه للـ Combobox وهى تعطى اشكال مبهره ومميزه للـ Combobox ولها خمس اشكال اختر منها ما يناسب ذوقك شاهد الصوره التاليه **************************************************************************1 point
-
بسم الله الرحمن الرحيم الاخوه الكرام اليوم بمشيئة الله سنتكلم عن المحور الخامس والاخير كيفية عمل تنسيقات للقيم المدخله فى TextBox عرفنا قبل كدا فى الشروحات السابقه ما هى اوقات تنفيذ الكود هنعمل مراجعه بسيطه لربط شرح اليوم بالشروحات السابقه قبل أن نتحدث عن وقت تنفيذ الكود لازم نعرف أولا أزاى بيكون كتابة ألاعلان عن الكود للـ TextBox Private Sub TextBox1_AfterUpdate() هنا يتم كتابة الكود المراد تنفيذه End Sub السطر الاول هو بداية الاعلان عن الكود فنقوم بكتابة Private Sub ستجد لونها بالكود أزرق ( وهو بداية لاى كود خاص لأى عنصر تحكم داخل الفورم ) ثم نقوم بكتابة اسم العنصر المراد عمل الكود له وهو بمثالنا TextBox1 ثم نقوم بكتابة _ ( تكتب من خلال الضغط على Shift+زر الطرح الموجود بالاعلى بجوار زر + ) ثم نقوم بكتابة وقت تنفيذ الكود (هو هنا على سبيل المثال AfterUpdate ) ثم كتابة () قوسين بهذا الشكل وبمجرد الضغط انتر ستجد الكود عمل سطر تانى فيه End sub يوجد طريقه اخرى وهى اتبع الصوره التالية توضح لك قم بالضغط على اى مكان فاضى بالفورم وادخل لمحرر الاكواد الخاص بالفورم هنبدأ بالامثله العمليه لان بالمثال يتضح لنا المقال وانا راجل عملى مش بحب النظرى 1-التحكم فى تنسيق القيم المدخله فى التكست بوكس بعدد صحيح شاهد الكود Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0") End Sub السطر الاول عرفنا انه الاعلان عن الكود وسوف يتم تنفيذه فى وقت تحديث التكست بوكس أى بعد الانتهاء من الادخال والانتقال او الخروج من التكست الى اى عنصر اخر على الفورم والسطر التانى هو الكود اللى هيتم تنفيذه شرح الكود ( السطر التانى ) شاهد الصوره هنا نوع التنسيق "0" تم وضعه بين علامتين تنصيص وبداخله 0 يعنى تنسيق التكست بوكس بعد الادخال يكون رقم صحيح فلو فرضنا حضرتك كتبت 20.60 وخرجت من التكست بوكس ستجد القيمة اصبحت 20 فقط ولا يوجد علامه عشريه -------------------------------------------------------------------------------------------------------------------------------------------------------- 2-التحكم فى تنسيق القيم المدخله فى التكست بوكس بوضع علامه عشريه Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0.0") End Sub هنا نوع التنسيق "0.0" يكون رقم واحد بعد العلامه العشريه مثال لو حضرتك ادخلت 20 فقط ستجد التكست بوكس اصبح 20.0 ولو حضرتك دخلت 20.2 ستجد التكست بوكس اصبح 20.2 ولو حضرتك دخلت 20.50 ستجد التكست بوكس اصبح 20.5 فقط يعنى سوا دخلت رقم عشري واحد او ادخلت رقمين عشريين او لم تدخل ارقام عشريه ستجد النتيجة بعد رقم عشرى واحد طيب لو احنا عايزين رقمين بعد العلامه العشريه الموضوع بسيط جدا هنخلى التنسيق كالتالى "0.00" شاهد الكود Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0.00") End Sub لاحظتم الفرق طيب لو 3 أرقام عشريه Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0.000") End Sub ------------------------------------------------------------------------------------------------------------------------------------ 3-التحكم فى تنسيق القيم المدخله بوضع علامه العمله $ Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0" & "$") End Sub هنا تم "0" ( وهو تنسيق رقم صحيح) ثم علامه & ( تكتب من خلال الضغط على Shift+رقم 7 فوق الحروف ) ثم ثم وضع علامه العمله "$" بين اقواس تنصيص فلو حضرتك كتبت 20 ستجد $20 واحد هيقولى هو مش ممكن يكون العلامه يسار الرقم وليس يمين الرقم هقوله ممكن وليه لا هنعكس الموضوع بدل "$"&"0" هنخليها "0"&"$" Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "$" & "0") End Sub فلو حضرتك كتبت 20 ستجد النتيجة 20$ طيب ممكن نخلى علامه العمله وكمان وجود ارقام عشريه طبعا ممكن Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "$" & "0.00") End Sub فلو حضرتك كتبت 20.1 ستجد النتيجة 20.10$ ---------------------------------------------------------------------------------------------------------- 4-التحكم فى تنسيق القيم المدخله بوضع نص بجوار الرقم Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0" & "ريال") End Sub هنا تم كتابه النص بين علامتى تنصيص " ريال" فلو حضرتك كتبت 20 ستجد النتجية 20 ريال -------------------------------------------------------------------------------------------------------------------- 5-التحكم فى تنسيق القيم المدخله بوضع علامه % Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "%0") End Sub فلو حضرتك كتبت 20 ستجد النتيجة %20 ( اذا كانت لغة الكتابه بالكيبورد عربى ) أما اذا كانت لغة الكتابة انجليزى وكتبت رقم 20 ستجد النتيجة 20% فمن خلال لغة الكتابه بالكيبورد تقدر تتحكم فى مكان العلامه % هل تكون قبل الرقم أم بعده واحد هيقولى هو ممكن نجعل الرقم بعلامات عشريه مع وجود علامه % هقوله ليه بس الاحراج يا عبدالتواب شوف يا سيدى الكود التالى Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "%0.00") End Sub فلو حضرتك كتب 20.1 ستجد النتيجة 20.10% ---------------------------------------------------------------------------------------------------------------------------------------- 6-التحكم فى القيم المدخله اذا كانت سالبه توضع بين اقواس Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0;(0)") End Sub فلو حضرتك كتبت -50 ستجد النتجية (50) يعنى تحول اى رقم سالب الى بين اقواس طيب لو كان الرقم السالب فيه علامات عشريه شاهد الكود ولاحظ الفرق البسيط Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "0;(0.00)") End Sub مثال لو حضرتك كتبت-20.1 ستجد النتيجة (20.10) -------------------------------------------------------------------------------------------------------------------- 7-التحكم فى القيم المدخله اذا كانت تاريخ لو حضرتك عايز تكتب تاريخ وليكن 2015/8/6 وعايز بعد الادخال يظهر فقط اليوم Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dd") End Sub ستجد ان النتيجه 6 dd تشير الى Day يعنى اليوم **************************************************************************** لو انا عايز النتيجة 6 اللى هى اليوم تظهر فى التكست بوكس 2 ( TextBox2) Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "dd") End Sub فلو حضرتك كتبت التاريخ 2015/8/6 فى التكست بوكس 1 ستجد التكست بوكس 2 مكتوب فيه 6 ************************************************************************************************ لو عايزين نظهر الشهر فقط هنستبدل dd بـ mm وهى اختصار لكلمة (Month) Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "mm") End Sub ستجد النتجية ظاهره فى التكست بوكس 2 وهى 8 ************************************************************************************** لو عايزين نظهر السنه. هنستبدل mm بـ yyyy وهى اختصار Year Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "yyyy") End Sub ستجد النتيجة فى التكست بوكس 2 هى 2015 ***************************************************************************************** لو عايزين نظهر اليوم كتابه 06-08-2015 يطلع فقط الخميس Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "dddd") End Sub ستجد النتيجة فى التكست بوكس 2 هى الخميس ********************************************************************************** لو عايزين نظهر الشهر 06-08-2015 يظهر فقط اغسطس Private Sub TextBox1_AfterUpdate() TextBox2.Text = Format(TextBox1.Text, "mmmm") End Sub ستجد النتيجة هى اغسطس ********************************************************************** لو عايزين ننسق التاريخ المدخل يكون كالتالى 06/08/2015 Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dd/mm/yyyy") End Sub ****************************************** لو عايزين ننسق التاريخ المدخل يكون كالتالى2015/08/06 شوف الكود Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "yyyy/mm/dd") End Sub ****************************************** لو عايزين ننسق التاريخ المدخل يكون كالتالى06-08-2015 يعنى يكون العلامه بدل من / تكون - Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "yyyy-mm-dd") End Sub ****************************************** لو عايزين نجعل التاريخ كالتالى 06-08-15 ( يعنى أظهار السنه رقمين فقط Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "yy-mm-dd") End Sub هنا خلينا السنه بدل من yyyy الى yy فقط ****************************************** لو عايزين ننسق التاريخ كدا 06 أغسطس2015 Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dd mmmm yyyy") End Sub ****************************************** لو عايزين نخلى التاريخ يظهر كالتالى الخميس أغسطس 2015 Private Sub TextBox1_AfterUpdate() TextBox1.Text = Format(TextBox1.Text, "dddd mmmm yyyy") End Sub ****************************************** لوعايزين نظهر تاريخ اليوم بمجرد وضع مؤشر الماوس فى التكست بوكس Private Sub TextBox1_Enter() TextBox1.Text = Format(Now, "yyyy/mm/dd") End Sub هنا استخدمنا وقت التنفيذ الحدث Enter ****************************************** 8-التحكم فى أجبار المستخدم على ادخال ارقام فقط فى التكست بوكس Private Sub TextBox1_Change() If Not IsNumeric(Me.TextBox1.Value) Then: MsgBox " الرجاء ادخال أرقام فقط ", vbCritical, "خطأ": Me.TextBox1.Value = "": Exit Sub End Sub هنا عملنا كود فى حدث التغيير للتكست بوكس بمجرد كتابة اى حرف وليس رقم ستجد التكست بوكس يرفض الادخال ويقوم بمسح المحتوى اللى تم ادخاله وكمان يظهر رساله استخدمنا فى الكود IF Not IsNumeric ثم التكست المراد ادخال ارقام فقط ووضعه بين قوسين ثم اقفال IF بـ then ****************************************** 9-التحكم فى أجبار المستخدم على ادخال حروف فقط فى التكست بوكس نفس الكود السابق ولكن بدون Not Private Sub TextBox1_Change() If IsNumeric(Me.TextBox1.Value) Then: MsgBox " الرجاء ادخال حروف فقط ", vbCritical, "خطأ": Me.TextBox1.Value = "": Exit Sub End Sub ****************************************** **************************************************************************** ******************************************************** ************************************** الى هنا بحمد الله انتهيت من شرح الخمس محاور المتعلقه بالتكست بوكس والى لقاء اخر من حلقات علمنى كيف اصطاد وسيكون بأذن الله الكمبوبوكس1 point
-
أرجوا من الله العلى القدير أن ينال رضاكم ويستفاد منه الجميع تقبلوا خالص تحياتى دوال الاكسيل بالشرح.rar1 point
-
اخى الحبيب الفضل اولا لله سبحانه وتعالى ثم بعد ذلك للاستاذ أبا عمر جزاه الله كل الخير انم شاء الله ما انا الا رسول راسلته واوضحت وشرحت المشكله وبينت بوضوح طلبك بعد ان بائت كل محاولاتى بالفشل للاستاذ القدير والمعلم الجليل أبا عمر ويعلم الله اثقلت عليه وتحملنى بكل حب وحلم ود وفاجئنى بتلك النتيجه الطيبة ماشاء الله وطلبت منه رفعها فى الموضوع اخبرنى قائلا وكان هذا رده الكريم قم أنت برفعها للمشاركة أنا وأنت واحد المهم أن قُضيت حاجة أخينا السائل. من يستحق الشكر بعد رب العباد سبحانه وتعالى هو هذا الاخ الحبيب والمعلم الجليل والاستاذ القدير اسال الله ان يرزقه كل الخير ان شاء الله وان يجمعنا واياه ومن جمعنا بهم الله فى الدنيا واحببناهم دون ان نساله فى الجنه ولا يحرمنا منهم ونحن نسأله ان شاء الله1 point
-
كل كلمات الشكر وكل التقدير لا تكفينا حتى نعطه حقه الاستاذ الجليل والمعلم القدير أبا عمر ناقشت معه هذا الموضوع عبر الرسائل الخاصة ولم يتأخر ولم يتهاون فى تنفيذ مطلب الاخ الكريم ابو عبير سأرفع المرفق كما قام به الاستاذ أبا عمر بناء على طلبه جزاه الله عنا كل الخير المرفق بتعديل الاستاذ أبا عمر اتمنى اضافة الموضوع الى مكتبة امثلة الاكسس الخاصة بالموقع لان الموضوع هذا بحثت عنه مرار وتكرارا وفقط يصبح الحل حصرى فى منتدانا الكريم بفضل الله سبحانه وتعالى ثم الاستاذ الجليل والمعلم القدير أبا عمر جزاه الله كل الخير ابا عمر.rar1 point
-
للعلم افضل حل هو حل الاستاذ jjafferr فى المشاركة رقم #16 انا لم انتبه اليها من قبل ولكن عند استعراض الموضوع بكل المشاركات جيدا وجدت هذه المشاركة الرائعه للاستاذ الجليل والمعلم القدير الاستاذ جعفر انا اخر شئ وصلت له قبل البحث فى مشاركات الاعضاء والاساتذة فى هذها الموضوع هو تصغير الشاشة لتكون خلف النموذج ولكن باختلاف حجم الشاشة قد تظهر مرة اخرى ولما عثرت على مشاركة الاستاذ الجليل والمعلم القدير الفنان جعفر وجدت انها هى الحل ولكن السؤال الان الاهم هو هل يمكن بالفعل تضمين هذا الكود بأى طريقة فيكون ضمن كائنات القاعده سواء كان كود فى حدث او وحدة نمطية1 point
-
أخي الغالي بارك الله فيك وفي ذريتك أخي أشكر لك إهتمامك وحرصك . الله لا يحرمك الأجر ولا يحرمنا مشاركاتك . أخي هذا حل ليس عملي . ننتظر من الإخوة حل برمجي لهذه المشكلة إن شاء الله . أخي مرة أخرى أشكرك على متابعتك معنا لهذه المشكلة . تقبل فائق تقديري واحترامي .1 point
-
السلام عليكم ورحمة الله وبركاتة المرفق عبارة عن addin يقوم باضافة tool تقوم بتغير الخط من صغير الى كبير و من كبير الى صغير وتغير اول حرف كبير والباقى صغير كما فى مشاركتى السابقة بدون كتابة اكواد وبها اضافة تجعل جميع الحروف كبيرة مع اختلاف حجم خط اول حرف CaseChange.zip1 point
-
الحمد لله رب العالمين اللهم وفقنا لما تحبه وترضاه وأجعل عملنا خالصاً لوجهك الكريم ولا تحرمنا الأجر والمثوبة. قائد المشروع / المهندس _ محمد طاهر ليس تنصلاً من المسؤلية خلاص ولا يهمك أنا النائب وما تشيلش هم القيادة كلنا يد واحدة عمل الخير ليس فيه إلزام فللجميع مطلق الحرية من يرغب المشارك فأهلا به متى ما شاء يشارك ومتى ما شاء ينسحب من المشاركة. سررة كثيراً بإنظمام أهل الخبرة كذلك القدرات المختلف فأهل الخبرة ينيرون لنا طريقنا وأهل الخبر المتباينة نأخذ بأيديهم ويأخذون بأيدينا قد يفيدوننا ويستفيدون يفيدوننا بأرائهم وإقتراحاتهم ويستفيدون من البرنامج كونه متكامل وقد يشمل على أغلب ما يطرح من استفسارات . بإذن الله سوف يتم هذا العمل ، صراحة مشاركات كثيرة في العمل الجماعي لا تنتهي وكلنا يعرف ذلك ولكن العزيمة موجودة والإمكانيات متاحة والأمور يسيره ولحمد لله وبوجود الجميع للتعاون وتبادل الخبرات سوف يكتب لهذا العمل النجاح بإذن الله. بارك الله في الجميع وشكراً للمهندس الأخ / محمد على تفضله بالموافقة. بالنسبة لمتطلبات المشروع فهي التالي: فتح قسم خاص باسم " قسم إعداد البرامج " ونفتتحه بهذا المشروع إذا كان ذلك سهل أو تثبيت الموضوع . سوف يمر البرنامج بعدة مراحل ولسنا مستعجلين عليه أهم شيء نصل في النهاية لعمل ممتاز . المراحل : هي أربع مراحل تقريباً. مرحلة التحليل والمناقشة. مرحلة تصميم الجداول والاستعلامات مرحلة تصميم النماذج وتشمل الشفرات البرمجية " الكود " مرحلة تصميم التقارير طبعاً مع البهارات في الأخير. فكل من يريد المشاركة يجهز ما في حقيبته من تصورات وكل واحد يتخيل أن البرنامج له شخصياً وهو صاحب محل تجاري فماذا يتمنى أن يحتويه البرنامج من سهولة في الاستخدام وقوة ودقة وخصوصاً في العمليات الحسابية. كل ذلك لا بد أن نناقشة حتى نطلع بعمل ممتاز فالبرنامج لا بد أن يكون متقن فسوف يستخدمه الكثير ويحتوي على قروش _ قروش ياجماعة الخير مش أي كلام كذلك حتى لا يدعى علينا بدلاً من أن يدعى لنا. أتمنا للجميع التوفيق1 point