بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation since 09/14/25 in all areas
-
::: السلام عليكم ورحمة الله وبركاته ::: أسمحولي أن أقدم لكم هذه الهدية 🎁 البسيطة والمميزة والرائعة من مميزات هذا الإضافة: - عرض الملاحظات المهمة والتذكيرات مثل ( إجتماع ، اختبار ، تدوين أفكار ، كتابة مسودات، التذكير بالمواعيد ، .... الخ ) على واجهة برنامجك. - تتوائم مع البرامج ذوات المستخدمين المتعددين (كل مستخدم بملاحظاته الخاصة به). - تصميم رائع وألوان جميلة . - سهلة الاستخدام . رابط الشرح على اليوتيوب : تحميل الملف: Notes.accdb :: ولا تنسوني ووالدي من صالح دعواتكم 🙂 ::8 points
-
السلام عليكم طبعا الفكره قديمه واحد الاخوه كان عامل مثلها ولاكن انا عدلت عليها بطريقه تكون سهلة وبسيطة وبدون اي شرح اليكم الببرنامج رسائل.zip6 points
-
ساعة بعقارب كان طلبها استاذنا @الحلبي وأضفت عليها أصوات للثواني يعمل الاختيار الاول عند تشغيل الفورم ويمكن تغيير صوت الثواني من الليستبوكس .كذلك صوت الساعة(كوكو) يعمل مع ظهور صورة عصفور بعدد رنات تساوي عدد الساعة الصحيح مثلاً الساعة 01:00:00 رنة واحدة وظهور العصفور مرة واحدة ..... وهكذا الى الساعة 12:00:00 بعدد 12 رنة وظهور العصفور 12 مرة . اليكم المرفق كامل مفتوح المصدر . Cuckoo_Clock.rar5 points
-
مشاركة بعد اذن اساتذتي . تفضل استاذ @عالم الهندسة مرفق كامل ... اذا يلبي طلبك !!! .ووافني بالرد عالم الهندسة-1.rar4 points
-
4 points
-
وعليكم السلام ورحمة الله وبركاته .. استخدم هذه المعادلة كفكرة مبدأية في الخلية O3 ، ثم اسحب للتطبيق حتى X3 ( في نطاق الجدول 2 ) =IFERROR(INDEX($B$3:$B$22,AGGREGATE(15,6,ROW($B$3:$B$22)-ROW($B$3)+1/(COUNTIF($E$3:$N$3,$B$3:$B$22)=0),COLUMNS($O$3:O3))),"") جرب وأخبرنا بالنتيجة4 points
-
وعليكم السلام ورحمة الله وبركانه اليك التصحيج Sub Filter_Class2() Dim WSdest As Worksheet: Set WSdest = Sheets("TI3DAD") Dim D1 As Object, D2 As Object, D3 As Object, D4 As Object Dim I As Long, x As Long, Y As Long, m As Long, z As Long Dim Réf As Variant, ky As Variant, Rng As String Set D1 = CreateObject("Scripting.Dictionary") Set D2 = CreateObject("Scripting.Dictionary") Set D3 = CreateObject("Scripting.Dictionary") Set D4 = CreateObject("Scripting.Dictionary") x = 0: Y = 0: m = 0: z = 0 With WSdest Application.ScreenUpdating = False .Range("M4:V32,X4:AG32,AI4:AR32,AT4:BC32").ClearContents I = 7 Do While I <= .Rows.Count If .Cells(I, 2) <> "" Then Rng = Left(Trim(.Cells(I, 2).Value), 1) Réf = Application.Transpose(.Cells(I, 2).Resize(, 13).Value) Réf = Application.Transpose(Réf) Select Case Rng Case "4" D4(z) = Join(Réf, "*") z = z + 1 Case "3" D3(Y) = Join(Réf, "*") Y = Y + 1 Case "2" D2(x) = Join(Réf, "*") x = x + 1 Case "1" D1(m) = Join(Réf, "*") m = m + 1 End Select I = I + 1 Else Exit Do End If Loop m = 4 If D4.Count > 0 Then For Each ky In D4.Keys .Cells(m, "M").Resize(, 13).Value = Split(D4(ky), "*") m = m + 1 Next ky End If m = 4 If D3.Count > 0 Then For Each ky In D3.Keys .Cells(m, "X").Resize(, 13).Value = Split(D3(ky), "*") m = m + 1 Next ky End If m = 4 If D2.Count > 0 Then For Each ky In D2.Keys .Cells(m, "AI").Resize(, 13).Value = Split(D2(ky), "*") m = m + 1 Next ky End If m = 4 If D1.Count > 0 Then For Each ky In D1.Keys .Cells(m, "AT").Resize(, 13).Value = Split(D1(ky), "*") m = m + 1 Next ky End If .Range("M4").CurrentRegion.Value = .Range("M4").CurrentRegion.Value .Range("X4").CurrentRegion.Value = .Range("X4").CurrentRegion.Value .Range("AI4").CurrentRegion.Value = .Range("AI4").CurrentRegion.Value .Range("AT4").CurrentRegion.Value = .Range("AT4").CurrentRegion.Value Application.ScreenUpdating = True End With End Sub 1تعداد.xlsm4 points
-
Private Sub txtserch_Change() Dim r As Long, lastRow As Long, txt As String, ColArr, i As Integer Dim tmps As Double, xPrice As Double, xPieces As Double If ComboBox1.Value = "" Or ComboBox2.Value = "" Or Trim(txtserch.Value) = "" Then ListBox1.Clear Exit Sub End If txt = UCase(Trim(txtserch.Value)) TextBox1 = "": TextBox2 = "": TextBox3 = "" ListBox1.Clear ColArr = Array("التاريخ", "اللون", "كيلو", "متر", "قطع", "العميل") With ListBox1 .AddItem ColArr(0) For i = 1 To UBound(ColArr) .list(.ListCount - 1, i) = ColArr(i) Next i End With lastRow = WS.Cells(WS.Rows.Count, "A").End(xlUp).Row For r = 2 To lastRow If UCase(Left(WS.Cells(r, criterion).Text, Len(txt))) = txt Then With ListBox1 .AddItem WS.Cells(r, "A").Text .list(.ListCount - 1, 1) = WS.Cells(r, "D").Text .list(.ListCount - 1, 2) = WS.Cells(r, "E").Value .list(.ListCount - 1, 3) = WS.Cells(r, "G").Value .list(.ListCount - 1, 4) = WS.Cells(r, "H").Value .list(.ListCount - 1, 5) = WS.Cells(r, "I").Text End With tmps = tmps + Val(WS.Cells(r, "E").Value) xPrice = xPrice + Val(WS.Cells(r, "G").Value) xPieces = xPieces + Val(WS.Cells(r, "H").Value) End If Next r TextBox1 = Format(tmps, "#,##0.00") TextBox2 = xPrice TextBox3 = Format(xPieces, "#,##0") End Sub mohamed1 V3 .xlsm4 points
-
3 points
-
وعليكم السلام ورحمة الله وبركاته .. بدايةً وأنت تعلم أنه كثيراً ومراراً وتكراراً ننصح بأن نبتعد عن التسميات العربية للعناصر والمكونات داخل قاعدة البيانات .. أيضاً بالنسبة لي شخصياً ( والأمر ليس ملزماً ) أن لا أجعل القوائم المنسدلة ( الكومبوبوكس ) داخل حقول الجداول ، بل داخل النماذج بحيث يكون بدلاً من اسم العميل داخل كل حقل في الجدول ، أن يكون رقمه المعرف به . وذلك سيعكس عليك عند انشاء الاستعلامات الإحصائية والتقارير السهولة في الحصول على المعلومة . ناهيك عن أن حجم السجل مع التكرار سيكون أكبر من القيمة الرقمية ( كمعرف رقم المعميل على سبيبل المثال ) . على العموم .. المهم في الموضوع هو أنني قمت بإنشاء استعلام لجمع الفواتير لكل عميل ، واستعلام آخر لجمع السندات لكل عميل ، واستعلام أخير يأتيك بالتفاصيل داخل التقرير ، في المرفق التالي ، حيث يتم اختيار اسم العميل ثم زر افتح تقرير العميل . date.zip3 points
-
لحضرتكم بعض الارقام للعمل لوحه المفاتيح مفاتيح الأسهم KeyCode = 37 ' السهم لليسار ← KeyCode = 38 ' السهم للأعلى ↑ KeyCode = 39 ' السهم لليمين → KeyCode = 40 ' السهم للأسفل ↓ مفاتيح الوظائف KeyCode = 112 ' F1 KeyCode = 113 ' F2 KeyCode = 114 ' F3 KeyCode = 115 ' F4 KeyCode = 116 ' F5 KeyCode = 117 ' F6 KeyCode = 118 ' F7 KeyCode = 119 ' F8 KeyCode = 120 ' F9 KeyCode = 121 ' F10 KeyCode = 122 ' F11 KeyCode = 123 ' F12 مفاتيح التحكم KeyCode = 27 ' ESC KeyCode = 13 ' Enter KeyCode = 32 ' Space KeyCode = 9 ' Tab KeyCode = 8 ' Backspace KeyCode = 46 ' Delete KeyCode = 36 ' Home KeyCode = 35 ' End KeyCode = 33 ' Page Up KeyCode = 34 ' Page Down KeyCode = 45 ' Insert مفاتيح الأرقام KeyCode = 48 ' 0 KeyCode = 49 ' 1 KeyCode = 50 ' 2 KeyCode = 51 ' 3 KeyCode = 52 ' 4 KeyCode = 53 ' 5 KeyCode = 54 ' 6 KeyCode = 55 ' 7 KeyCode = 56 ' 8 KeyCode = 57 ' 93 points
-
وعليكم السلام ورحمة الله وبركاته .. معلمنا الفاضل ، أسعد الله مسائك . قد مررت بهذا السؤال مسبقاً وكنت لا أعلم سببه ، ولكني اكتشفت السبب بالصدفة 😅 موضحاً في الصورة التالية :- وأعتقد أن السبب في هذا يعود الى أن الجداول مرتبطة بـ SQL Server أو قاعدة بيانات خارجية . والمرجح عندي سابقاً لأنني كنت أقوم بتثبيت نسختين من أوفيس ( 64 بلإصدار أعلى = 2019 ، و 32 بإصدار 2010 ) فقد يكون هو أحد الأسباب . مع أنني غير متأكد من الإحتمال الثاني حقيقةً . هذا والله أعلم3 points
-
وعليكم السلام ورحمة الله وبركاته .. بما أن الأستاذ @منتصر الانسي قد فتح باب المشاركات مع المعلم @ابوخليل ، اسمحولي أشارك بفكرة ثانية .. حيث أمكنت المستخدم من التوزيع العشوائي أو المتسلسل ED.zip3 points
-
تفضل أخي الكريم مرفق بهذا ملفك الأصلي بعد تصفيته من جميع الكائنات الغير ضرورية وتنفيذ كل ماهو مطلوب تحياتي db1.rar3 points
-
أخواني وأساتذتي ومعلمينا ( دون استثناء ) بعد محاولات في فهم المشكلة التي أرّقت الكثيرين من مستخدمي آكسيس ( مطورين ومبرمجين أو مستخدمين عاديين ) ، كنا نلاحظ أنه ومع تحديد لغة إدخال عربية لعناصر مثل مربعات النص أو غيرها . فأن آكسيس يقوم بإجبار الويندوز على إضافة لغة لوحة مفاتيح خاصة بالعربية التي تم إنشاء قاعدة البيانات عليها . وقد قمت بطرح فكرة بسيطة تقليدية مبنية على باتش يعمل بتحديد اللغة العربية التي يريدها المستخدم حسب دولته في هذا الموضوع تثبيت لغة لوحة المفاتيح في ويندوز . إلى أن تم فهم آلية آكسيس وعلاقته المتينة في الذاكرة التي يحجزها عند تشغيله ؛ فيتعامل معها كمساحته الخضراء داخل ويندوز ويفعل بها ما يحلو له . ولكن وبفضل الله تم كسر هذه المساحة الخضراء وجعلها مساحة خضراء مزروعة بحصريات منتديات أوفيسنا . الفكرة أداة تعمل عند حسب رغبتك عزيزي القارئ ( مع الويندوز أو بشكل يدوي ) تقوم على مراقبة تخطيطات لوحات المفاتيح الحالية ، وبالتالي لا تسمح لأي برنامج بأن يقوم بالتعديل عليها كيفما يشاء دون الحاجة إلى الخروج من النظام أو اغلاق آكسيس أو حتى التدخل والتعديل في مشاريع آكسيس الموجودة . لنتعرف أولاً على شكل و واجهة الأداة :- شرح ما تفعله الأداة بمكوناتها :- :- هذا الجزء سيعرض لك لغات لوحات المفاتيح التي تم تثبيتها في جهازك . :- هذا الزر وظيفته إزالة اي تخطيط تحدده في القائمة السابقة . :- هذا الزر وظيفته إخفاء مراقب لوحات المفاتيح بجوار الساعة . :- السماح للتطبيق بالعمل عند تشغيل ويندوز . :- مساحة مخصصة لعرض الأحداث . ✔ صورة توضيحية لعمل الأداة :- ✔ لإجراءاتكم في التجربة AccessLayoutMonitor.zip3 points
-
وعليكم السلام ورحمة الله تعالى وبركاته .. أحد الكتب الإلكترونية التي شاركه أحد الأخوة سابقاً تعلم آكسيس.pdf3 points
-
وعليكم السلام ورحمة الله وبركاته الملف المرفق مقال لجداول 3 كلمة السر للاول111 والثاني 222 والثالت 333 يمكن تعديلها من الكود ويمكنك قفل محرر الاكواد بكلمة سر فكرة الكود عند الدخول على الصفخة يتم حماية الجدوال كلها بكلمة سر هي master يمكن تعديلها من الكود للجداول 3 يختار الشخص جدوله يطالب بكلمة سر يكتبها فيتعامل مع جدولة وباقي الجداول محمية يمكنك تعديل نطاف الجداول في الكود اتمنى ان تجد في الملف طلبك تحياتي حماية جدوال متعددة كل جدول بكلمة سر.xlsb3 points
-
تقضل استاذي @الحلبي اليك مرفق به 5 ساعات اختار كما تحب . ووافني بالرد . . AnalogClock.zip3 points
-
سبحان الله، الموضوع كان نشط وبمجرد شاركت أنا فيه نام وخمد!! نفس الفكرة ولكن من خلال زر ارقام النتائج عربي_05.xlsm3 points
-
وعيكم السلام ورحمة الله وبركاته ,, جرب هذه الفكرة البسيطة ، في زر داخل الورقة "2025" ، تم استخدام الكود التالي :- Sub Btn_Tr_Click() Dim wsSource As Worksheet Dim lastRow As Long, i As Long Dim cityName As String Dim wsTarget As Worksheet Dim sourceRow As Range Dim targetRow As Range Dim targetLastRow As Long Dim isDuplicate As Boolean Dim col As Variant Dim keyCols As Variant Dim copiedCount As Long, skippedCount As Long Dim skippedList As String Dim pasteType As XlPasteType Dim userChoice As VbMsgBoxResult Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.DisplayAlerts = False userChoice = MsgBox("هل ترغب في الترحيل مع التنسيق الكامل" & vbCrLf & _ "اضغط 'نعم' للترحيل مع التنسيق ، أو 'لا' للترحيل بالقيم فقط", vbYesNoCancel + vbQuestion + vbMsgBoxRight, "") If userChoice = vbCancel Then GoTo Cleanup If userChoice = vbYes Then pasteType = xlPasteAll Else pasteType = xlPasteValues End If Set wsSource = ThisWorkbook.Sheets("2025") lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row keyCols = Array(1, 2, 3, 4, 5, 6) For i = 3 To lastRow cityName = Trim(wsSource.Cells(i, 2).Value) If cityName <> "" Then On Error Resume Next Set wsTarget = ThisWorkbook.Sheets(cityName) On Error GoTo 0 If Not wsTarget Is Nothing And wsSource.Cells(i, 2).Value = wsTarget.Name Then Set sourceRow = wsSource.Range(wsSource.Cells(i, 1), wsSource.Cells(i, 10)) isDuplicate = False For targetLastRow = 3 To wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row Set targetRow = wsTarget.Range(wsTarget.Cells(targetLastRow, 1), wsTarget.Cells(targetLastRow, 10)) isDuplicate = True For Each col In keyCols If sourceRow.Cells(1, col).Value <> targetRow.Cells(1, col).Value Then isDuplicate = False Exit For End If Next col If isDuplicate Then Exit For Next targetLastRow If Not isDuplicate Then targetLastRow = wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row + 1 sourceRow.Copy wsTarget.Range("A" & targetLastRow).PasteSpecial Paste:=pasteType Application.CutCopyMode = False copiedCount = copiedCount + 1 End If Else skippedCount = skippedCount + 1 skippedList = skippedList & "- " & cityName & vbCrLf End If End If Next i MsgBox "? تم الترحيل بنجاح" & vbCrLf & _ copiedCount & ":عدد الصفوف المنسوخة " & vbCrLf & _ skippedCount & ": عدد الصفوف التي تم تجاهلها " & IIf(skippedCount > 0, vbCrLf & ": المدن التي تم تجاهلها " & vbCrLf & skippedList, ""), vbInformation + vbMsgBoxRight, "" Cleanup: Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.DisplayAlerts = True End Sub TR 2025.zip3 points
-
إلى كل من ساهم في إنجاح فكرتي ، والتي ترتكز على تطوير فكرة التفعيل من خلال الإنترنت ( دون الحاجة إلى أي رمز تفعيل يتلقاه المستخدم أو العميل من خلال مطور ومبرمج قاعدة البيانات ) . وقد تم من خلال التجارب التي شاركتموني إياها الحصول على جميع الأخطاء ، وحلها بشكل كامل وجذري بإذن الله . وقد تم تحديث الملفين السابقين ( للإصدارين 64 و 32 ) ليتعاملا مع الأخطاء المكتشفة سابقاً . فعلى من يرغب باستمرار دعمه بتجربة الملف بعد إصلاح الأخطاء فله وللجميع جزيل الشكر على دعمه لي . الملف بإصدار النواة التي توافق إصدار الأوفيس لديك .. سخة تعمل على النواة 64 :- Officena 64.zip سخة تعمل على النواة 32 :- Officena 32.zip المشاركة إختيارية وليست إجبارية ، ولا عتب على من لا يرغب ، يكفينا أنه أنار المنتدى بمروره الكريم ، وسيتم تفعيل اشتراك أي مستخدم تلقائياً لحذف ملفات التفعيل السابقة ، استخدم ملف الحذف التالي حسب إصدار الأوفيس لديك . Clear64.zip أو Clear32.zip3 points
-
نعم استاذى الفاضل Foksh صدفت وشكرا لتنبيهك كما اشكر صاخب السؤال الفاضل soik225998 على تنبيهنا للامر تم معالجة الامر ان شاء الله المرشحين2.xlsb3 points
-
وعليكم السلام ورحمة الله تعالى وبركاته أخي @mohamedyousef ردا على استفساركم بخصوص توقف البحث عن رقم الإذن في الفورمات (رقم 10-3- 4) نحيطكم علما أنه قد تم دمج جميع النماذج السابقة في يوزرفورم موحد جديد بإسم (UserForm2) يشمل كافة أنواع البيانات: الوارد - المنصرف - المرتجع لتنفيذ عملية البحث الآن يرجى اتباع الخطوات التالية: 1) اختيار إسم الورقة (الوارد / المنصرف / المرتجع) من القائمة الأولى 2) إختيار عمود البحث (رقم الإذن أو غيره) من القائمة الثانية 3) إدخال قيمة البحث في خانة البحث (txtserch) ستظهر النتائج مباشرة في الجدول أدناه مع إجماليات الكميات والأسعار هذا التحديث جاء لتسهيل العمل وتوحيد الواجهة بدل إستخدام عدة نماذج منفصلة ويجب أن يعمل بالشكل المطلوب بالتوفيق........ ملاحظة: تم الاستغناء عن النماذج السابقة (نموذج 3 و 4 و 10) mohamed1 V2.xlsm3 points
-
2 points
-
سلام عليكم اخي ابو مروان اولا اعتذر على هذا التاخر لقد جربت الكود وكان جيد جداا واشكرك مرة اخرى على العمل واشكر كل اعضاء هذا الموقع الرائع وجزاكم الله خيرا والسلام عليكم ورحمة الله تعالى وبركاته2 points
-
💣 التحديث الجديد الآن بإضافة التحكم بمستوى الصعوبة داخل اللعبة . حيث تبدأ اللعبة الآن بالمستوى المبتدئ ( العادي ) ، ويمكن لللاعب التنقل بين المستويات بشكل غير مقيد بإعادة اللعبة . يعني لو كنت في المستوى المبتدئ والمرحلة رقم 7 ، وأردت تجربة المستوى المتوسط لنفس المرحلة ، فإن ذلك متاح لك الآن بسهولة . 💣 توفير زر لإعادة تشغيل اللعبة للمستوى الحالي للبدء من المرحلة الأولى . 💣 تفاعل مرئي مع الرسائل عند انفجار لغم بعبارات متنوعة تظهر في أسفل شريط اللعبة . 💣 صورة لشرح بسيط لواجهة اللعبة :- 💣 تحميل اللعبة للنواتين :- 64 :- Minesweeper v 2.0 64.zip 32 :- Minesweeper v 2.0 32.zip2 points
-
الآن انتبهت الأرملة هذه على قيد الحياة ههههههه المتوفى زوجها2 points
-
بالعكس ، يسعدنا مشاركتكم وباقي الأساتذة والخبراء في أي موضوع . الساحة لكم لضيق الوقت ، وأنتم جديرين بالثقة دون أي شك أستاذ خليفة2 points
-
2 points
-
بارك الله فيك وجزاك الله خير استاذي الفاضل @Foksh الف شكر لك ياغالي لقد ابدعت في فكرتك وهي اقرب لما اعنيه بالضبط وكل الشكر لك استاذي الفاضل @منتصر الانسي فكرتك ايضا جميله وتؤدي نفس الغرض اللي اريده والشكر موصول لاستاذي الغالي @ابوخليل تحياتي واحترامي لكم جميعا🌹🌹🌹2 points
-
2 points
-
بعد إذن أخي @ابوخليل قمت بعمل حل بسيط أرجو أن تستفيد منه ملاحظتي لك أنه يجب أن يكون مصدر بيانات النموذج هو الجدول أو إستعلام تحديد بسيط وليس كما كنت عاملة إستعلام تجميع فهذا يجعل بيانات النموذج غير قابلة للتعديل قمت بإضافة حقل وقت الإنتهاء كفكرة إضافية ولتوضيح كيف أن وقت إنتها شخص هو وقت إيتداء الشخص الذي يليه كل مرة تقوم بفتح النموذج سيتم مسح بيانات الثلاثة أعمدة لغرض المثال فقط ويمكنك مسح حدث عند التحميل تحياتي ED.rar2 points
-
Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyEscape Then Unload Me KeyCode = 0 End If End Sub عليكم السلام و رحمة الله و بركاتة جرب هذا الكود2 points
-
السلام عليكم ورحمة الله ملف غير مكتمل ولا ادري ارتباط الصفخة بزر الزيادة والنفصان وخيارات الطباعة على كل حال اليك الملف سفيان1 2025-2026.xls2 points
-
2 points
-
من مقتنياتي : Microsoft Access 2010 Bible https://drive.google.com/file/d/1ccVfMNH4xnGQLctqcMyObKG23JYiQ2yb/view?usp=sharing وفي المرفقات : الدوال الخاصة ببرنامج الآكسس.doc VBANotesForProfessionals.pdf 🙂2 points
-
2 points
-
اعتقد أني وجدت الحل وبكل صدق لولا تشخيص الأخ @Foksh لسبب المشكلة ما كنت لأستطيع التوصل له فجزاه الله كل خير أثناء بحثي عرفت أنه توجد دالة API إسمها ActivateKeyboardLayout تقوم بتغيير لغة لوحة المفاتيح وفقاً لكود اللغة لكل دولة فقمت بنسخها وأنشأت وحدة نمطية وعرفت فيها هذه الدالة فيها كدالة عامة قمت بإضافة تعداد بأكواد اللغة العربية لجميع الدول العربية بالإضافة للغة الإنجليزية (الولايات المتحدة لمن تعمل أنظمتهم بتخطيط لوحة المفاتيح en_US أو المملكة المتحدة لمن تعمل أنظمتهم بتخطيط لوحة المفاتيح en_UK) وقمت بإنشاء دالة عامة لربط ActivateKeyboardLayout بهذه القائمة لتظهر قائمة الدول أثناء الإدخال لتسهيل تحديد الدولة والحقيقة بعد تجربتها فاجأتني النتيجة لم يظهر لي أي تخطيط لغة إضافي رغم أن اللغة تتغير حسب كل مربع نص اثناء التنقل خلال النموذج أترك لكم المثال الذي قد وضحت فيه بعض الأمور المطلوبة من كل من يريد تجربته (من خارج اليمن طبعاً 😅) تحياتي Keyboard Layout.rar2 points
-
السلام عليكم أخي الكريم ، وأهلاً بك في عالمنا الإلكتروني أوفيسنا .. أود لفت انتباهك إلى أن زر ، تم إيجاده كي يتمكن صاحب الموضوع من تعليم موضوعه عند إيجاده للحل المناسب بأنه وجد الحل . وهذا الزر يستخدم عادةً للإجابة التي رأى أنها حققت مطلبه ( بغض النظر عن الصحة أو تعدد الإجابات ) . وهنا يقع الكثير من الأخوة الأعضاء المنتسبين في مشكلة بسيطة ، هي أنه يقوم بالنقر على الزر لإجابته وليست للإجابة التي حلت مشكلته ( مشاركة الأخوة والأساتذة ) . لذا متأملاً منك تصويب الخطأ الغير مقصود باختيار الإجابة التي حلت مشكلتك . سيتم الغاء إجابتك لنفسك وأنت عليك تصويب الوضع2 points
-
أخواني وأساتذتي ومعلمينا ( دون استثناء ) بعد قراءتي لموضوع الأخ @mohammed farhat في هذا الموضوع :- ازالة لوحة المفاتيح العربية الزائدة الناتجة عن اعدادت اللغة لتشغيل الاكسيس تبادر لي استخراج فكرة من مشروعي السابق ( تغيير لغة النظام في Unicode ) ، بحيث كانت فعلاً مشكلة تؤرق مطوري ومبرمجي آكسيس . حيث كانت النتيجة من تعداد الملفات التي نقوم بتحميلها تؤدي إلى إضافة أكثر من لغة في لوحات المفاتيح في نسخة الويندوز الخاصة بالمطور . وهنا يجدر بي الذكر إلى أن أحد أهم الأسباب أن بعض ملفات قواعد البيانات التي نقوم بتحميلها تأتي مرفقة بإعدادات لغة أو تخطيط لوحة مفاتيح مخصصة حسب جهاز المصدر ، خاصة إذا تم إنشاؤها أو تعديلها على أنظمة تشغيل بلغات مختلفة . فعند تشغيل الملف ، قد يقوم النظام تلقائياً بإضافة تلك اللغات لتوافق التنسيق أو الترميز المستخدم . وهنا ذَهبَت بي الحلول بعد تعددها إلى إنشاء باتش يجبر الويندوز عند التشغيل لإستعادة لوحات المفاتيح التي تهم المطور وهي عادةً :- اللغة الإنجليزية + اللغة العربية الخاصة ببلده . وفي التالي صورة من الموضوع الأصلي لشكل لوحات المفاتيح الغير مرغوب بها :- وسيلاحظ المستخدم إنه سيضطر للضغط على مفاتيح التبديل بين لغات لوحة المفاتيح اكثر من مرة للوصول الى اللغة التي يريدها . ومن هنا خرجتُ بفكرة الباتش الذي ما علينا إلا تشغيله مرة واحدة فقط لا غير ، واختيار البلد الذي نرغب بتثبيت لغة لوحة مفاتيحها ، من خلال الواجهة التالية :- لاحظوا أنني قمت بإضافة الدول العربية فقط لا غير ( الفكرة قابلة للتطوير لاحقاً للغات أخرى ثابتة ) . فمثلاً ولنفترض أنني اريد تثبيت لوحة المفاتيح العربية للأردن ، فسنختار رقم 3 ( كمثال ) ثم مفتاح الإدخال Enter فقط . وسيتكفل الباتش بترتيب الأمور بحيث عند كل تشغيل للويندوز سيتم تثبيت فقط اللغة الانجليزية والعربية للأردن كما في المثال . الباتش يعمل بصمت من خلال الأكواد التالية ، وقد تم إضافة شرح بسيط لكل حدث تلافياً من الخوف من أي ملفات أو خطوات غامضة :- ::attrib +r "%~f0" @echo off @echo off mode con:cols=75 lines=35 setlocal enabledelayedexpansion for /f %%a in ('echo prompt $E^| cmd') do set "ESC=%%a" set "blue=%ESC%[1;34m" set "green=%ESC%[1;32m" set "cyan=%ESC%[1;36m" set "red=%ESC%[1;31m" set "yellow=%ESC%[1;33m" set "magenta=%ESC%[1;35m" set "reset=%ESC%[0m" echo. echo %blue%**********************************************%reset% echo %green%*** ***%reset% echo %cyan%*** %yellow%FFFFF%red%F %magenta%OOO %blue%KK KK %green%SSSS %cyan%HH HH %cyan%***%reset% echo %yellow%*** %red%FF %magenta%O O %blue%KK KK %green%SS %cyan%HH HH %yellow%***%reset% echo %red%*** %magenta%FFFFF %blue%O O %green%KKK %cyan%SS %yellow%HHHHHH %red%***%reset% echo %magenta%*** %blue%FF %green%O O %cyan%KK KK %yellow%SS %red%HH HH %magenta%***%reset% echo %blue%*** %green%FF %cyan%OOO %yellow%KK KK %red%SSSSS %magenta%HH HH %blue%***%reset% echo %green%*** ***%reset% echo %cyan%********************%yellow%2 %red%0 %magenta%2 %blue%5%cyan%*******************%reset% echo. :: باقي الكود يبقى كما هو... echo Select the Arabic country to add its keyboard layout: echo 1 - Egypt echo 2 - Saudi Arabia echo 3 - Jordan echo 4 - Iraq echo 5 - Morocco echo 6 - UAE echo 7 - Syria echo 8 - Lebanon echo 9 - Tunisia echo 10 - Algeria echo 11 - Kuwait echo 12 - Bahrain echo 13 - Oman echo 14 - Qatar echo 15 - Libya echo 16 - Sudan echo 17 - Yemen set /p choice=Enter the number of your choice (1-17) or 'X' to remove startup task: :: التحقق إذا كان المستخدم يريد إزالة المهمة if /i "%choice%"=="X" ( echo. echo Removing startup task... :: حذف المهمة المجدولة schtasks /Delete /TN "KeyboardShutdownFix" /F 2>nul :: حذف الملفات من مجلد Startup if exist "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\KeyboardFix.bat" ( del "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\KeyboardFix.bat" ) if exist "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\RunHidden.vbs" ( del "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\RunHidden.vbs" ) echo Startup task removed successfully! echo. echo Closing automatically in: timeout /t 1 /nobreak >nul & echo 3... timeout /t 1 /nobreak >nul & echo 2... timeout /t 1 /nobreak >nul & echo 1... exit /b ) set "localeID=" set "localeName=" if "%choice%"=="1" set localeID=00000C01& set localeName=ar-EG if "%choice%"=="2" set localeID=00000401& set localeName=ar-SA if "%choice%"=="3" set localeID=00002C01& set localeName=ar-JO if "%choice%"=="4" set localeID=00000801& set localeName=ar-IQ if "%choice%"=="5" set localeID=00001801& set localeName=ar-MA if "%choice%"=="6" set localeID=00003801& set localeName=ar-AE if "%choice%"=="7" set localeID=00002801& set localeName=ar-SY if "%choice%"=="8" set localeID=00003001& set localeName=ar-LB if "%choice%"=="9" set localeID=00001C01& set localeName=ar-TN if "%choice%"=="10" set localeID=00001401& set localeName=ar-DZ if "%choice%"=="11" set localeID=00003401& set localeName=ar-KW if "%choice%"=="12" set localeID=00003C01& set localeName=ar-BH if "%choice%"=="13" set localeID=00002001& set localeName=ar-OM if "%choice%"=="14" set localeID=00004001& set localeName=ar-QA if "%choice%"=="15" set localeID=00001001& set localeName=ar-LY if "%choice%"=="16" set localeID=00002C01& set localeName=ar-SD if "%choice%"=="17" set localeID=00002401& set localeName=ar-YE if not defined localeID ( echo. echo Invalid selection. Exiting... timeout /t 3 /nobreak >nul exit /b ) echo Applying keyboard settings immediately... reg delete "HKCU\Keyboard Layout\Preload" /f >nul 2>&1 reg delete "HKCU\Keyboard Layout\Substitutes" /f >nul 2>&1 reg add "HKCU\Keyboard Layout\Preload" /v 1 /t REG_SZ /d 00000409 /f reg add "HKCU\Keyboard Layout\Preload" /v 2 /t REG_SZ /d %localeID% /f reg add "HKCU\Keyboard Layout\Substitutes" /v %localeID% /t REG_SZ /d %localeID% /f set psFile=%TEMP%\UpdateLang.ps1 echo $langList = Get-WinUserLanguageList > "%psFile%" echo $langList.Clear() >> "%psFile%" echo $langList.Add("en-US") >> "%psFile%" echo $langList.Add("%localeName%") >> "%psFile%" echo Set-WinUserLanguageList $langList -Force >> "%psFile%" powershell -ExecutionPolicy Bypass -File "%psFile%" set "shutdownScript=%TEMP%\KeyboardShutdownFix.bat" echo @echo off > "%shutdownScript%" echo reg delete "HKCU\Keyboard Layout\Preload" /f >nul 2^>^&1 >> "%shutdownScript%" echo reg delete "HKCU\Keyboard Layout\Substitutes" /f >nul 2^>^&1 >> "%shutdownScript%" echo reg add "HKCU\Keyboard Layout\Preload" /v 1 /t REG_SZ /d 00000409 /f >> "%shutdownScript%" echo reg add "HKCU\Keyboard Layout\Preload" /v 2 /t REG_SZ /d %localeID% /f >> "%shutdownScript%" echo reg add "HKCU\Keyboard Layout\Substitutes" /v %localeID% /t REG_SZ /d %localeID% /f >> "%shutdownScript%" echo exit >> "%shutdownScript%" set "taskName=KeyboardShutdownFix" set "taskXml=%TEMP%\ShutdownTask.xml" echo ^<?xml version="1.0" encoding="UTF-16"?^> > "%taskXml%" echo ^<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"^> >> "%taskXml%" echo ^<RegistrationInfo^> >> "%taskXml%" echo ^<Description^>Fix keyboard layout before shutdown^</Description^> >> "%taskXml%" echo ^</RegistrationInfo^> >> "%taskXml%" echo ^<Triggers^> >> "%taskXml%" echo ^<SessionStateChangeTrigger^> >> "%taskXml%" echo ^<Enabled^>true^</Enabled^> >> "%taskXml%" echo ^<StateChange^>SessionLock^</StateChange^> >> "%taskXml%" echo ^</SessionStateChangeTrigger^> >> "%taskXml%" echo ^</Triggers^> >> "%taskXml%" echo ^<Principals^> >> "%taskXml%" echo ^<Principal id="Author"^> >> "%taskXml%" echo ^<UserId^>%USERDOMAIN%\%USERNAME%^</UserId^> >> "%taskXml%" echo ^<LogonType^>InteractiveToken^</LogonType^> >> "%taskXml%" echo ^<RunLevel^>HighestAvailable^</RunLevel^> >> "%taskXml%" echo ^</Principal^> >> "%taskXml%" echo ^</Principals^> >> "%taskXml%" echo ^<Settings^> >> "%taskXml%" echo ^<MultipleInstancesPolicy^>IgnoreNew^</MultipleInstancesPolicy^> >> "%taskXml%" echo ^<DisallowStartIfOnBatteries^>false^</DisallowStartIfOnBatteries^> >> "%taskXml%" echo ^<StopIfGoingOnBatteries^>false^</StopIfGoingOnBatteries^> >> "%taskXml%" echo ^<AllowHardTerminate^>true^</AllowHardTerminate^> >> "%taskXml%" echo ^<StartWhenAvailable^>false^</StartWhenAvailable^> >> "%taskXml%" echo ^<RunOnlyIfNetworkAvailable^>false^</RunOnlyIfNetworkAvailable^> >> "%taskXml%" echo ^<IdleSettings^> >> "%taskXml%" echo ^<StopOnIdleEnd^>true^</StopOnIdleEnd^> >> "%taskXml%" echo ^<RestartOnIdle^>false^</RestartOnIdle^> >> "%taskXml%" echo ^</IdleSettings^> >> "%taskXml%" echo ^<AllowStartOnDemand^>true^</AllowStartOnDemand^> >> "%taskXml%" echo ^<Enabled^>true^</Enabled^> >> "%taskXml%" echo ^<Hidden^>false^</Hidden^> >> "%taskXml%" echo ^<RunOnlyIfIdle^>false^</RunOnlyIfIdle^> >> "%taskXml%" echo ^<WakeToRun^>false^</WakeToRun^> >> "%taskXml%" echo ^<ExecutionTimeLimit^>PT5M^</ExecutionTimeLimit^> >> "%taskXml%" echo ^<Priority^>7^</Priority^> >> "%taskXml%" echo ^</Settings^> >> "%taskXml%" echo ^<Actions Context="Author"^> >> "%taskXml%" echo ^<Exec^> >> "%taskXml%" echo ^<Command^>"%shutdownScript%"^</Command^> >> "%taskXml%" echo ^</Exec^> >> "%taskXml%" echo ^</Actions^> >> "%taskXml%" echo ^</Task^> >> "%taskXml%" schtasks /Delete /TN "%taskName%" /F 2>nul schtasks /Create /TN "%taskName%" /XML "%taskXml%" /F set "startupBat=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\KeyboardFix.bat" set "vbsFile=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\RunHidden.vbs" echo @echo off > "%startupBat%" echo reg add "HKCU\Keyboard Layout\Preload" /v 1 /t REG_SZ /d 00000409 /f >> "%startupBat%" echo reg add "HKCU\Keyboard Layout\Preload" /v 2 /t REG_SZ /d %localeID% /f >> "%startupBat%" echo reg add "HKCU\Keyboard Layout\Substitutes" /v %localeID% /t REG_SZ /d %localeID% /f >> "%startupBat%" echo exit >> "%startupBat%" echo Set WshShell = CreateObject("WScript.Shell") > "%vbsFile%" echo WshShell.Run "cmd /c call ""%startupBat%""", 0, False >> "%vbsFile%" echo. echo Keyboard settings applied successfully! echo. echo English (US) set as default. echo Arabic layout for selected country added as secondary. echo. echo Note: The system will maintain these settings automatically echo on every startup (no window will be visible). echo. echo Closing automatically in: timeout /t 1 /nobreak >nul & echo 3... timeout /t 1 /nobreak >nul & echo 2.. timeout /t 1 /nobreak >nul & echo 1. النتيجة مرهونة بتجاربكم طبعاً 😊 . الباتش تمت تجربته على العديد من إصدارات ويندوز 10 فما فوق . أي لم يتم تجربته على الإصدارات الأقل من ويندوز 10 ❌ الفكرة غير موجودة في أي منتدى عربي أو غربي . وهذا ما يميز منتديات أوفيسنا 😎 Foksh Layout.zip 💢 تحديث جديد في هذه المشاركة .2 points
-
2 points
-
السلام عليكم ورحمة الله وبركاته تحياتي لاستاذنا ومعلمنا الفاضل أبوعيد تحياتي للاستاذ الفاضل MAHMOUD ELWY من خلال الاطلاع على الملفات التى ارفقتها لتوضيح الطلب وخصوصا ملف السائق احمد اعتفد ان هناك خطا في فيمة العهدة والمصروفات فهي مكررة وهذا ما اشار اليه استاذنا ابو عيد بعدم لتجاوب السريع من الأعضاء على مشاركتك لوجود الغموض فحسب الصورة العهدة 20000 ولبس 40000 والمصروف 5500 بدل 11000 ويتبقى مع السائق 14500 وليس 29000 هذا خسب قهمى وان كنت مخطئا فارجو توضيخ كيف اتت هذه الارقام وبتاء على فهمى السابق اليك ملفان اخدهما يتشئ ملقات جديدة لكل سائق والاخر في نفس الملف واعتقد لا يوثر ولا يسبب ثقلا للملف كل سائق ملف جديد.xlsbجميع السائقين في نفس الملف.xlsb2 points
-
2 points
-
هذا بيت القصيد لن يشعر بما صنعته له .. ولن يختلف عليه شيء المعنى ان التوقيع الأول حضور والثاني انصراف .. بناء على : معيار تاريخ اليوم .. ويمكننا جعل وقت الدوام مفتوح خلال اليوم ولا نحصره بين ساعات محددة ومنعا للتكرار الغير مقصود ( ودوما يحصل ) نجعل شرط فاصل وقت _ دقيقة مثلا _ بين التوقيع الأول والتوقيع الثاني2 points
-
السلام عليكم ورحمة الله وبركاته يمكن الاستغناء عن العمود المساعد واستبدال المعادلات في العمود v باخرى ولكنها ستكون طويلة الملف ارقام النتائج عربي2.xlsm2 points
-
رغم أني لم أجرب هذه الطريقة من قبل ولكني وبنظرة سريعة على الملف المرفق أعتقد أنه لاتوجد مشكلة فيها فقد قمت بتجربة إضافة أكثر من مليون سجل ولم يتأثر كلا من الترقيم التلقائي و حجم القاعدة بعد أن قارنت الحجم بوجود التنسيق وبدونه هناك طرق أخرى لتطبيق نفس التنسيق على أي رقم بإستخدام دالة Format فلو إفترضنا أن الحقل ID هو ترقيم تلقائي بدون اي تنسيق إضافي يمكنك الحصول على نفس النتيجة هذه في الاستعلام أو النماذج بهذا السطر Format([ID];"0000000") ويوجد هناك طرق أخرى لتخصيص الترقيم التلقائي يمكنك التعرف على بعضها في هذا الموضوع هنا وقد تجد أيضا الكثير من الطرق بالبحث في المنتدى2 points
-
معذرة خطأى فى نسخ بيانات Bad Rev Report لكن لاحظ أن عمود B أصبح معادلة فى ملف ALL Rev Report تفضل للتعديل وإضافة أية بيانات V2 Monthly Review Report.xls2 points
-
ملاحظة بسيطة للأخ @أحمد العيسى في طريقة الأخ @Foksh إعتبر أن أي رقم قومي يبدأ بالرقم 2 فسيكون صاحبه من مواليد ماقبل عام 2000 مالم فسيكون من بعد عام 2000 وهذا لم يؤخذ بالإعتبار في الدالة Date_Sex_Province صراحة لا أعلم إذا ما كانت هذه الملاحظة ذات أهمية أم لا ولكن ذكرتها كتنبيه عن الاختلاف بين الحلين فإذا كان الإختلاف مهم فسيكون تأثيره كبير تحياتي2 points
-
2 points
-
في طلبك الاول TextBox8 فقط والان تغير الطلب الى الكمبوبكس يمكن اظافة التالي الى UserForm_Initialize Dim ctrl As Control For Each ctrl In Me.Controls If TypeName(ctrl) = "ComboBox" Then ctrl.Style = fmStyleDropDownList ctrl.Locked = False End If Next ctrl برنامج المراكز الطبية 30 اغسطس.xlsm2 points