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

Moosak

أوفيسنا
  • Posts

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

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

  • Days Won

    55

كل منشورات العضو Moosak

  1. أستاذ حمدي .. غير هذه إلى : strMSG = " || *" & Me.myname.Value & "*" & " ||" & vbcrlf & "|| *" & Me.msg.Value & "*" & " ||" & vbcrlf & "|| *" & Me.attach.Value & "* ||" & vbcrlf & "|| " & "المرسل : *" & Me.sub
  2. مجال الاجتهاد مفتوح للجميع 🙂 أنا مشغول جدا هذي الفترة .. 🌹
  3. أتوقع بسبب التعديلات المستمرة من أكثر من شخص .. الكود فيه تكرارات للأوامر لذلك هو يرسل أكثر من مرة
  4. لا يزال البرنامج يخبرك أنك لم تضف الدالة التالية لبرنامجك 🙂 : ' =================================(وهذه دالة لجعل الواتسأب يقبل السطور الجديدة في النص المرسل) Function ReplaceLineBreaks(text As String) As String ReplaceLineBreaks = Replace(text, vbCrLf, " %0a ") ReplaceLineBreaks = Replace(ReplaceLineBreaks, Chr(10), " %0a ") ReplaceLineBreaks = Replace(ReplaceLineBreaks, Chr(13), " %0a ") End Function أضفها في الأسفل تماما ( أسفل جميع الأكواد ) في نفس الصفحة مثلا .. وجرب من جديد
  5. أخي أحمد .. تجنب تسمية حقول الجدول بأرقام فقط .. أو أسماء تبدأ بأرقام .. تسبب لك مشاكل 🙂 أنا أضفت "c" قبل رقم كل حقل وعدلت الكود قليلا .. وشغال زي العسل .. Me.الراتب = DLookup("c" & Me.a2, "Degree", "GradeNO=" & Me.a1) وأعتقد كان شغل الأستاذ أبو أحمد مضبوط بعد 🙂👌🏼
  6. غير هذا : إلى : Dim strMSG As String strMSG = " || *" & Me.myname.Value & "*" & " || *" & Me.msg.Value & "*" & " || *" & Me.attach.Value & "* || " & "المرسل : *" & Me.sub strMSG = ReplaceLineBreaks(strMSG) Set IE = CreateObject("InternetExplorer.Application") IE.Navigate "whatsapp://send?phone=" & rs!phone_number & "&text=""*" & strMSG & "*" & "& app_sent =0" وهذا : إلى : objClipboard.SetText ReplaceLineBreaks(Me.msg)
  7. للأسف ما استطعت تشغيله .. يظهر لي أخطاء ولا يعمل ..
  8. أستاذ حمدي نسيت تشيل كود الدالة وتخليه في أي موديول عندك 🙂 وما دام مربع النص معاك اسمه MSG أيضا .. أفضل لك أن تغير اسم المتغير لاسم ثاني (strMSG) مثلا ... وذلك لتجنب حصول أخطاء في الكود
  9. وعليكم السلام أستاذ حمدي .. في زر الارسال .. وقبل ما يشتغل الكود اللي يفتح الواتسأب .. تستبدل النص اللي حترسله ولنفرض أنه موجود في مربع النص Me.MsgText تستبدله بالنص الجديد اللي حتعطيك إياه الدالة اللي ذكرتها سابقا كما يلي : تعرف متغير جديد اسمه MSG علشان تحفظ فيه النص المراد إرساله بعد الاستبدال هكذا : Dim MSG as String MSG = ReplaceLineBreaks(Me.MsgText) وبعدها تخلي الواتسأب يرسل لك النص اللي متخزن في المتغير MSG .. 🙂
  10. شكرا لك عمي جعفر ، كنت أعاني من هذي المشكلة وما عارف كيف أحلها .. 😅 والحين بعد ما عرفت .. عملت هذي الدالة لاستبدال فواصل الفقرات بالرمز "%0a" واللي تقوم بعمل السطر الفاصل بين الفقرات كما يريده الواتسأب : ' =================================(وهذه دالة لجعل الواتسأب يقبل السطور الجديدة في النص المرسل) Function ReplaceLineBreaks(text As String) As String ReplaceLineBreaks = Replace(text, vbCrLf, " %0a ") ReplaceLineBreaks = Replace(ReplaceLineBreaks, Chr(10), " %0a ") ReplaceLineBreaks = Replace(ReplaceLineBreaks, Chr(13), " %0a ") End Function وتستخدم كالتالي قبل ما تدخل في كود الإرسال : Dim MSG as String MSG = ReplaceLineBreaks(Me.MsgText) جربتها في برنامج مرسال الواتسأب ونجحت ولله الحمد 😊
  11. من الصور لاحظت أن هناك فقرتين قبل الفقرة التي تبدأ برقم .. والكود يفحص دائما الفقرة الثانية .. 🙂 في هذي الحالة الكود يحتاج إلى تعديل ليبحث عن أول فقرة تبدأ برقم .. وربما يمكن الاستعانة بالأكواد السابقة لتحقيق ذلك .. والموجودة في هذا الموضوع :
  12. وإذا أحببت أن تجعله كروتين منفصل لتناديه في وسط أكوادك السابقة حولته لك هكذا : Sub SelectText(ctrlTextBox As TextBox) ' Declare variables Dim TxtBoxControl As TextBox Dim txt As String Dim i As Integer Dim start As Integer Dim iEnd As Integer ' Defined The text box Set TxtBoxControl = ctrlTextBox ' Get the text from the text box txt = TxtBoxControl.Value ' Find the start of the first paragraph start = 0 ' Find the end of the first paragraph iEnd = InStr(1, txt, vbCrLf) 'Debug.Print iEnd ' Check if a paragraph break was found If iEnd > 0 Then ' Check if the next character after the paragraph break is a number 'Debug.Print "(" & Mid(txt, iEnd + 2, 1) & ")" If IsNumeric(Mid(txt, iEnd + 2, 1)) Then ' Select the text from the start of the first paragraph to the start of the second paragraph TxtBoxControl.SetFocus TxtBoxControl.SelStart = start TxtBoxControl.SelLength = iEnd - start End If End If Set TxtBoxControl = Nothing End Sub والآن يمكنك مناداته في كودك هكذا : Call SelectText(Me.nass2) فيقوم بعملية التحديد 🙂
  13. بالفعل كان لا يعمل وبحاجة إلى تعديلات بسيطة 😁 وهذا هو الكود المعدل : Private Sub SelectBtn_Click() ' Declare variables Dim TxtBoxControl As TextBox Dim txt As String Dim i As Integer Dim start As Integer Dim iEnd As Integer ' Defined The text box Set TxtBoxControl = Me.nass2 ' Get the text from the text box txt = TxtBoxControl.Value ' Find the start of the first paragraph start = 0 ' Find the end of the first paragraph iEnd = InStr(1, txt, vbCrLf) 'Debug.Print iEnd ' Check if a paragraph break was found If iEnd > 0 Then ' Check if the next character after the paragraph break is a number 'Debug.Print "(" & Mid(txt, iEnd + 2, 1) & ")" If IsNumeric(Mid(txt, iEnd + 2, 1)) Then ' Select the text from the start of the first paragraph to the start of the second paragraph TxtBoxControl.SetFocus TxtBoxControl.SelStart = start TxtBoxControl.SelLength = iEnd - start End If End If Set TxtBoxControl = Nothing End Sub وضعته على زر .. وكتبت اسم مربع النص في أول الكود وهذه هي النتيجة : 🙂
  14. وعليكم السلام ورحمة الله وبركاته 🙂 بالذكاء الاصطناعي .. ولم أجربه بعد 😅 وظيفة الكود فقط التركيز على المربع النص المطلوب ثم تحديد النص من أول الفقرة وحتى أول فقرة تبدأ برقم .. ( حسب الوصف الذي أعطيته إياه ) جربه وأخبرنا بالنتيجة 🙂 Sub SelectText() ' Declare variables Dim txt As String Dim i As Integer Dim start As Integer Dim end As Integer ' Get the text from the text box txt = Me.TextBox1.Value ' Find the start of the first paragraph start = 1 ' Find the end of the first paragraph end = InStr(start, txt, vbCrLf) ' Check if a paragraph break was found If end > 0 Then ' Check if the next character after the paragraph break is a number If IsNumeric(Mid(txt, end + 1, 1)) Then ' Select the text from the start of the first paragraph to the start of the second paragraph Me.TextBox1.SetFocus Me.TextBox1.SelStart = start Me.TextBox1.SelLength = end - start End If End If End Sub
  15. أعتقد أنك تقصد هذا الموضوع 🙂 :
  16. الحمدلله جربته والأمور طيبة 🙂 فقط بقي إضافة تنبيهات التحقق من تعبئة جميع الحقول الأساسية مثل ( المبلغ - عدد الأقساط - تاريخ البداية - .... ) لأنها قد تعطي نتائج خاطئة أو رسائل خطأ .. 🙂
  17. أخي محمد البرناوي الحبيب 🙂 مما لاحظته على هذا الكود أنه بمجرد الانتقال للسجل الجديد يقوم بتفعيله .. فإذا قرر المستخدم عدم إضافة السجل سيبقى فارغا .. مما سينتج العديد من السجلات الفارغة في الجدول مع تكرار نفس العملية .. لذلك أقترح أن تضيف الكود الخاص بك في حدث ( قبل الإدراج Before Insert ) أو استخدام الكود الذي أدرجته سابقا : في حدث عند الفتح .. وهذا سيحل الإشكال 🙂
  18. أخي حمدي يمكنك استخدام هذه الدالة للتحقق من وجود إنترنت من عدمه 🙂 Private Declare PtrSafe Function InternetGetConnectedState Lib "wininet.dll" ( _ ByRef lpdwFlags As Long, _ ByVal dwReserved As Long _ ) As Boolean ' Returns True if there is an active Internet connection, False otherwise Function IsInternetConnected() As Boolean Dim flags As Long IsInternetConnected = InternetGetConnectedState(flags, 0) End Function Sub test() If IsInternetConnected() Then MsgBox "There is an active Internet connection." Else MsgBox "There is no active Internet connection." End If End Sub الدالة IsInternetConnected() ترجع لك True إذا الانترنت موجود و False إذا الشبكة مقطوعة
  19. رائع أخي أحمد يعمل بكفائة ما شاء الله .. 🙂 فقط لاحظت أنه ما ينقص قيمة المقدم من مجموع المبلغ .. بل يبني مباشرة على قيمة المبلغ كاملا .. وربما أكون مخطئ .. جربها أنته 🙂
  20. وعليكم السلام ورحمة الله وبركاته 🙂 مشاركة مع أخي البرناوي .. أو أكتب السطر هكذا في حدث عند الفتح للنموذج : Me.id_customer.DefaultValue = [Forms]![frm_main]![id]
  21. وعليكم السلام ورحمة الله وبركاته 🙂 هذا هو كود التحقق للصيغة التي طلبتها : Like "*" & "/" & Year(Date()) وأما بالنسبة للجزئية الثانية ، جرب هذا الكود : If Not Me.TextBox Like "*" & "/" & Year(Date) Then Me.TextBox = Me.TextBox & "/" & Year(Date) End If
  22. ممتاز ما شاء الله عليك 🙂 استخدم دالة mod لإضافة الباقي للقسط الأخير 🙂
  23. لا الذكاء الصطناعي شغال على قد حاله 😅 ( على قدر المعطيات ) كان ما متعرف على أنه الفقرة بادية من سطر جديد .. فأنا قمت بضغط Enter قبل الفرة الثانية واشتغل زين 🙂
  24. وعليك السلام أخي أحمد 🙂 ما يقوم به البرنامج هو تقسيم مجموع ( إجمالي المبلغ - المقدم ) / عدد الأقساط .. ( 5000000 - 0 ) / 45 = 111111.111111 ثم يقوم بأخذ الفواصل من الأقساط (0.111111) ويضرها في عدد الأقساط ثم يضيف مجموع هذه الفواصل للقسط الأخير 🙂 فسيكون (0.111111 * 45 ) = 4.999999 ثم يضاف هذا للقسط الأخير فتكون قيمته 4.999999 + 111111 = 111116 ومثل ما قال أخي أبو بسملة @ابو بسمله قم بحذف الأقساط وإضافتها من جديد بسبب وجود خطأ . ولا تنسى تغيير العملة في مصدر بيانات حقل المبلغ لعملة بلدك 🙂 برنامج الأقساط - موسى.rar
  25. البرنامج بالفعل يقوم بذالك .. لاحظ أن القسط الأخير أكبر من الأقساط الأخرى 🙂
×
×
  • اضف...

Important Information