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

نجوم المشاركات

  1. متقاعد

    متقاعد

    الخبراء


    • نقاط

      22

    • Posts

      583


  2. أ / محمد صالح

    أ / محمد صالح

    أوفيسنا


    • نقاط

      14

    • Posts

      4,431


  3. Moosak

    Moosak

    أوفيسنا


    • نقاط

      14

    • Posts

      1,997


  4. عبد اللطيف سلوم

    عبد اللطيف سلوم

    06 عضو ماسي


    • نقاط

      3

    • Posts

      1,948


Popular Content

Showing content with the highest reputation on 30 يول, 2022 in all areas

  1. ممكن عمل ذلك ولكن الاجراء الصحيح ان يكون لدينا جدول للقيم الثابتة للبرنامج على كل حال في زر الامر نضع الكود Dim x As String x = BB DoCmd.OpenForm "form1", acDesign Forms!form1!AA.DefaultValue = x DoCmd.close acForm, "form1", acSaveYes DoCmd.OpenForm "form1" معنى الامر حسب ترتيب الاسطر احجز متغيير نصي اسمه اكس قيمة المتغيير اكسس تساوي المكتوب في حقل bb افتح النموذج في عرض التصميم اجعل القيمة الافتراضية للحقل aa تساوي المتغيير x اغلق النموذج مع حفظ التغيير اعد فتح النموذج ----------------------------- ملاحظة 1 هذا الكود لن يعمل اذا كانت القاعدة بصيغة Accde او mde ملاحظة 2 عند الرغبة كتابة نص للقيمة الافتراضية نكتب في حقل bb النص هكذا 'منتهي' اما الارقام فتكتب بشكل عادي تحياتي والملف مرفق قيمة افتراضية.accdb
    4 points
  2. السلام عليكم اخواني الاعزاء كود بسيط لمنع التكرار نحتاجة في معظم برامجنا مرفق قاعدة البيانات حدث قبل التحديث منع التكرار.accdb
    3 points
  3. سبق ان تم ايضاح ذلك ⬇️ بل يوجد لكن الفكرة باختصار تتطلب وجود حقل في جدول يتم تحديثة بالقيمة الافتراضية كلما قمنا بتغييرها ويبقى الحقلين aa و bb غير منضمة bb يحدث القيمة و aa يحصل على القيمة الافتراضية باستخدام DLookup او احدى شقيقاتها ولكن ننتظر رأي الاساتذة ربما لديهم افكار افضل
    3 points
  4. السلام عليكم ورحمة الله وبركاته اسعد الله اوقاتكم بالنسبة لي انا استخدم الطريقة التالية اضيف جدول باسم options اضع فيه اعدادات و القيم الافتراضية التي اريدها للكائنات في النموذج الاصلي استخدم الدالة dlookup لاحضار القيمة الافتراضية للكائنات بهذه الطريقة يستطيع المستخدم تحديد القيم الافتراضية كما يشاء وبسهولة
    3 points
  5. احسنت استاذنا العزيز الحقيقة كلما شاهدت مشاركة لك تذكرت اخ وصديق عزيز اقتعني بالعودة ثم اختفى 😃 اسأل الله ان يعود سالما غانما تحياتي
    3 points
  6. تظل في عيني مهندس .. ومن كبار المهندسين 😊 وليست الهندسة هنا شهادة تعليمية ( ورقية ) .. ولكنها مكانة علمية وقيمة واجب علينا تقديرها 👍🏼😉 نعم مهندسنا العزيز كما قلت .. وما كان تعليقي إلا إضافة لما تفضلت به .. والمقصد هو توضيح الصورة للمبرمج وتوسيع الأبعاد لما يمكن أن يواجه لاحقا ووضع السيناريوهات المختلفة للأمر 🙂 تحياتي وتقديري 🌹
    3 points
  7. أحسنت مهندسنا العزيز 🙂 ولكن ربما نضطر لوضع الأسطر البرمجية التي استغنينا عنها الآن لاحقاً عندما نريد أن نستخدم قيمة الحقل لتفنيد نوع البيانات 😅
    3 points
  8. تمام شكرا لكم جميعا واخص بالشكر السيد / moosak والسيد احمد الفلاحجى الحمد لله تم الوصل للحل شكرا جدا لاهتمامك السيد / derbali ammar
    3 points
  9. ايضا اذا اردنا التعامل مع حقل كحقلي نصي ويقبل جميع التنسيقات وبدون زيادة عدد اسطر الكود Dim x As String x = Nz(BB, "") DoCmd.OpenForm "form1", acDesign Forms!form1!AA.DefaultValue = "'" & x & "'" DoCmd.close acForm, "form1", acSaveYes DoCmd.OpenForm "form1" الملف مرفق قيمة افتراضية(2).accdb
    3 points
  10. احسنت استاذنا الفاضل @Moosak والحقيقة لم احرص في مشاركتي على احترازات نوع الحقول لكون الطريقة في الاساس ليست عمليه ولن تعمل عند تحويل القاعدة وانما وضعت المشاركة ردا على سؤال الاستاذ مراد واشرت بوضوح الى انها ليست الاجراء الصحيح تحياتي
    3 points
  11. مشاركة مع معلمنا الكبير @مبرمج سابق ، ولحل قضية نوع البيانات المدخلة هذا تعديل بسيط على الكود ليستقبل أرقام أو نصوص أو تواريخ بدون الحاجة لوضع الأقواس أو ال # : 🙂 Dim dv As String dv = Nz(BB, " ") DoCmd.OpenForm "form1", acDesign Select Case dv Case IsNumeric(dv): [Forms]![form1]!AA.DefaultValue = dv Case IsDate(dv): [Forms]![form1]!AA.DefaultValue = "#" & dv & "#" Case Else [Forms]![form1]!AA.DefaultValue = "'" & dv & "'" End Select DoCmd.close acForm, "form1", acSaveYes DoCmd.OpenForm "form1", acNormal قيمة افتراضية.accdb
    3 points
  12. كلنا نفتقده .. أعاده الله إلينا سالما غانما 😊
    2 points
  13. ياهلا بالاستاذ موسى الحقيقة انا لست مهندس كنت مبرمج ثم تدرجت في هذا المجال الى ان انهيت مساري الوظيفي بطلب التقاعد نعود للموضوع دائما عندما اضع مشاركة لا اشير الى انها حل بديل وانما كطريقه اخرى للحل وعندما يكون هناك اكثر من حل وجميعها تؤدي للمطلوب فانني افضل حينها الاخذ بمبدأ اوكام اما بشأن ما نريده لاحقا فهناك دائما حلول ولكن لكل حدث حديث تحياتي وتقديري 🌹
    2 points
  14. وعليكم السلام ورحمه الله وبركاته اتفضل ان شاء الله يكون ما تريد اضغط عالزر للحصول على العدد بالتوفيق Database1(1).accdb
    2 points
  15. القيم الثابتة هي مجموعة من الحقول تحتوي على بيانات نحتاج الى استخدامها في انحاء متفرقة من البرنامج مثال لدينا برنامج للمدرسة ونرغب في توزيعة او بيعة لعدة مدارس هل نقوم بكتابة اسم المدرسة وعنوانها وارقام الاتصال واسم المدير والمنطقة التعليمية وووو الخ في كل التقارير والنماذج الخ او اذا كان برنامج للفواتير هل نكتب كل مرة اسم المؤسسة وعنوانها والرقم الضريبي ونسبة الضريبة والحد الاعلى للحسم ... الخ الاجابة لا وانما يكون لدينا جدول لهذه الحقول ونموذج لادخال بيانات لهذا الجدول ويقوم المستفيد من البرنامج بادخال هذه البيانات عند اول استخدام للبرنامج فقط ساحول تبسيط الامر انت مثلا عملت برنامج لمدرسة اسمها مدرسة أكودة الاعدادية وترغب في وضع اسم المدرسة على التقارير بدون استخدام هذه القيم انت ستقوم بفتح التقرير في وضع التصميم ثم تستخدم حقل نص او عنوان وتكتب اسم المدرسة ولو اردت بيعة على مدرسة اخرى ستقوم بهذا التعديل اليدوي وهكذا كل مرة اما عند استخدام القيم كل المطلوب ان نضع حقل نصي لاسم المدرسة يحصل على قيمته من جدول القيم وبالتالي يقوم مدير المدرسة بكتابت اسمها مرة واحدة في الجدول وسيظهر الاسم في التقرير هذا هو المقصود بالقيم الثابتة تحياتي
    2 points
  16. عليكم السلام ورحمة الله وبركاته هذا كود تحديد مجلد يمكنك توظيفه كما تشاء With Application.FileDialog(msoFileDialogFolderPicker) If .Show = -1 Then [A1] = .SelectedItems(1) End With ويتم تخزين المسار الذي تم تحديده في الخلية A1 كما هو في الكود بالتوفيق
    2 points
  17. موعدنا اليوم مع تطبيق ضمن سلسلة ما خف وزنه وغلا ثمنه لأحبابي أعضاء وزوار منتدى أوفيسنا تطبيق يساعدك في إنشاء رسائل msgbox بصورة احترافية فقط اختر الأزرار والعنوان ونص الرسالة والأيقونة وباقي الخيارات ثم اضغط على زر تجربة لمشاهدة كود الرسالة ثم قم بنسخ الكود لبرنامجك ويمكنك استخدام الثوابت والقيم في كتابة الكود وفي الأخير لا ينقصني سوى دعاؤكم msgboxbuilder.rar
    1 point
  18. التصميم فكرة مش مجرد برنامج ___البوربوينت أكثر من مجرد إنشاء شرائح العرض التقديمي يوجد أدوات وطرق جديدة لاستخدام PowerPoint لهواة رسم وتحريك الروسومات اتعلم موشن جرافيك بالبوربوينت l رسم وتصوير بالكاميرا https://youtu.be/95RmLp4QoYw
    1 point
  19. كل عام هجرى وانتم طيبين شرح فورم الاكسل للجداول الجاهزة الدخول بسرى وفورم اضافة وتعديل وحذف وبحث الفيديو
    1 point
  20. جميل جدا اخي ابو اشرف وممكن بطريقة اخرى ⬇️ Dim rs As Recordset Set rs = Me.RecordsetClone rs.FindFirst "[nn] = " & Me.nn If Not rs.NoMatch Then Cancel = True MsgBox "هذة القيمة مكررة" Else End If rs.Close تحياتي
    1 point
  21. بالاضافة لما تفضل به اساتذتي الكرام ... واثراء للموضوع ..يمكنك عمل الجمع دون ان يسبب لك في اخطاء من خلال عمل جمع للحقول في استعلام .. IIf([تاريخ بدء المشروع]="NA";1;0)+IIf([تاريخ انتهاء المشروع]="NA";1;0)+........
    1 point
  22. للحصول على المطلوب يمكنك استعمال هذه المعادلة في الخلية I6 للحصول على أقل تاريخ مقابل لهذا الاسم =MINIFS(B:B,C:C,H6) أو هذه المعادلة للنسخ القديمة =MIN(IF(C:C=H6,B:B)) وفي الخلية J6 للحصول على أكبر تاريخ مقابل لهذا الاسم =MAXIFS(B:B,C:C,H6) وهذه للنسخ القديمة =MAX(IF(C:C=H6,B:B)) وبالنسبة لعدد ايام العمل بين التاريخين على اعتبار الجمعة فقط هي العطلة نستخدم هذه المعادلة =NETWORKDAYS.INTL(I6,J6,16) بالتوفيق
    1 point
  23. يرجى مراجعة الاعدادات فالاشعارات تصلني حاليا بصورة طبيعية و قد وصلني اشعار حالا بردك الاخير
    1 point
  24. وعليكم السلام ورحمة الله اخي الكريم حاول انشاء صفحتين وادخل فيهما بعض البيانات كما تتصورهما تم اعد رفع الملف تحياتي
    1 point
  25. ضع هذا السطر في أول الكود : If IsNull(Me.كود_المشروع) Then Exit Sub هكذا : Private Sub btnCount_Click() If IsNull(Me.كود_المشروع) Then Exit Sub x = Me.كود_المشروع strSql = "SELECT [MAIN-TABLE].*, [MAIN-TABLE].[كود المشروع] " & _ "FROM [MAIN-TABLE] " & _ "WHERE [MAIN-TABLE].[كود المشروع]=" & x Dim rs As Recordset Set rs = CurrentDb.OpenRecordset(strSql) i = 0 For y = 0 To rs.Fields.Count - 1 If rs.Fields(y).Value = "NA" Or rs.Fields(y).Value = Chr(34) & "NA" & Chr(34) Then i = i + 1 End If Next Me.txtCount = i End Sub
    1 point
  26. بعد إذن مهندسنا @احمد الفلاحجي وإجابة على سؤالك 🙂 .. ضع السطر التالي عند حدث في الحالي للنموذج : Private Sub Form_Current() btnCount_Click End Sub
    1 point
  27. الحقيقة اخي لا اعلم ما المشكلة لديك ... جرب المرفق على اجهزة اخرى ... جتى نعلم هل المشكلة من جهازك ام ماذا ؟؟
    1 point
  28. ما يقصده الأستاذ @احمد الفلاحجي هو أن تلغي خاصية التجميع أو الإجماليات من تصميم الاستعلام :
    1 point
  29. من بعد اذن اساتذتي الافاضل اعتقد هذا مطلبك New Microsoft Excel Worksheet (2).xlsx
    1 point
  30. أهلاً وسهلاً بك أخي العزيز نافع هذا أمر سيكون فيه الكثير من الثغرات، وقد تناقشنا فيه سابقاً وبينت عواقبه وسلبياته [الجديد في التحديث 8.00]: 1- في الجداول، تم إضافة خاصية (إزالة المكررات ضمن الخلية الحالية ثم ترتيب محتوياتها تصاعدياً)، والتي ستحذف لك المكررات ضمن الخلية، سواء أكانت نصوصاً أم أرقاماً، وبعد ذلك ستُرتب لك المحتويات تصاعدياً، وستفصل بينها بفاصلة. 2- في الجداول، ثم إضافة خاصية (إزالة المكررات ضمن خلايا العمود الحالي ثم ترتيب محتوياتها تصاعدياً)، والتي ستحذف لك المكررات ضمن كل خلية من خلايا العمود الذي فيه مؤشر الفأرة، سواء أكانت نصوصاً أم أرقاماً، وبعد ذلك ستُرتب لك المحتويات تصاعدياً، وستفصل بينها بفاصلة. الخدمتان السابقتان تتكاملان مع خدمة (دمج محتويات عدة خلايا مع إضافة فاصلة بينها)، فبعد أن تدمج محتويات عدة خلايا، يمكنك أن تعمل على إزالة المكررات فيها وترتيبها تصاعدياً. 3- في خدمة (التعامل مع العبارات المميزة بلون ما) أُضيفت خاصية (تمييز عبارات من ملف نصي)، حيث يُمكِنك إنشاء ملف نصي فيه عبارات، كل عبارة في سطر مستقل، ثم اختيار هذا الملف لتمييز عباراته الموجودة ضمن المستند الحالي بلون ما تختاره.
    1 point
  31. استاذنا ومعملنا الكبير / @مبرمج سابق اشكرك وتسلم ايدك فانت خير معلم لنا شرح واضح والان فهمت قصدك وعرفت السبب جزاك الله كل خير وجعله فى ميزان حسناتك وبارك الله فيك
    1 point
  32. معلومة جيدة . مشكور استاذ .. ماذا تعني بجدول القيم القيم الثابتة للبرنامج ... رجاءا افدنا بالمعلومة بمثال ان امكن نحن نريد التعلم و الاستفادة من حضرتكم جعلها االه في ميزان حسناتك
    1 point
  33. بارك الله فيك وجزاك الله كل خير انا تعبتك كتير معايا احسنت صنعا وبارك الله فيك
    1 point
  34. بارك الله فيك هذا هو المطلوب بالضبط ان شاء الله في ميزان حساناتك
    1 point
  35. عليكم السلام ورحمة الله وبركاته حسب فهمي للمطلوب جرب تغيير هذا السطر For Cell = startRow To .Range(myArray(x) & startRow).End(xlDown).Row Step 2 إلى For Cell = startRow To .Range(myArray(x) & Rows.Count).End(xlUp).Row Step 2 بالتوفيق
    1 point
  36. لو فتحت الموقع في أحد المتصفحات لديك وقمت بالنقر بالزر اليمين للفارة على العدد 8.24 وأخترت فحص Inspect من القائمة سوف تظهر لك وسوم هتشمل التي تتحتوي عليها الصفحة مع التأشير على الوسم الذي يحتوي على عدد النقاط. كما في الصورة الوسم الذي يحتوي على النقاط هو الوسم الثاني ضمن أبناء الوسم الأب المعرف ضمن spaceit_pad، وبما أن الأبناء هي عبارة عن مصفوفة، وترتيب المصفوفة يبدأ بالرقم صفر فسوف يكون رقم الوسم الذي يحتوي على النقاط هو (1) وبناء عليه سيكون تعديل الشفرة على النحو التالي Case "score" Me.Score = t(1) '' السابقة '---------------------------------------------------- Case "score" Me.Score = el.Children(1).innerText '' التعديل
    1 point
  37. أهلا @محمد احمد لطفى لا يخفى أن مستندات هتشمل HTML مبنية على وسوم مترابطة هرمياً، وأن لهذه الوسوم رتب في هذا الهرم، وهي الآباء والأبناء والإخوة، وهذه الرتب قد تتداخل في بعضها البعض.. والمقصود من هذه التقدمة هو تسهيل الوصول إلى البييانات المضمنة داخل هذه الوسوم بطريق سهلة ومبسطة.. يمكن الوصول إلى البيانات بأحد الخصائص التالية Dim Tag,Class,Name,Id With WebBrowser1.Document ' أكثر هذه الخصائص تحديد Id=.getElementById("...") ' أقلها اتساعا وأقربها تحديدا For Each Name in .getElementsByName("...") Name Next ' تتوسع أفقيا أي في رتبة الأخوة For Each Class in .getElementsByClassName("...") Class Next ' أكثرها إنتشار For Each Tag in .getElementsByTagName("...") Tag Next end with أغلب هذه الخصائص تعيد مصفوفة غرضية ماعدا الأولى منها... نأتي على تطبق هذا على قاعدة البيانات Private Sub أمر11_Click() Dim el As IHTMLElement Dim t For Each el In WD.getElementsByClassName("spaceit_pad") t = Split(el.innerText, ":") Select Case t(0) Case "score" Me.Score = t(1) Case "rating" Me.Rating = t(1) Case "genres" Me.Genres = t(1) Case "theme" Me.Theme = t(1) End Select Next End Sub أرجو أن يكون بإمكانكم اكتشاف طريقة معالجة البيانات..
    1 point
  38. السلام عليكم يرجى التجربة الان
    1 point
  39. السلام عليكم أخي الحبيب / هاني نتفق جميعا أننا نعرف بعضنا من خلال المنتدي المبارك ولانعرف بعض علي أرض الواقع (إلا قليلا) إذن لايمكن أن يتقدم من يريد المساعدة لمساعدة عضو ويترك الآخر لأسباب بينهما شخصية فلابد أن تسأل نفسك وهذا ما أوجهه لنفسي ولجميع الأعضاء عندما يكون لديهم أسئلة مالذي يجعل من يريد المساعدة يتقدم لمساعدة عضو ويترك الآخر أو يتقدم لموضوع ويترك الآخر؟ هذا سؤال مهم ولابد للجميع الإنتباه لهذا ، سأجيب من وجهة نظري ولكم جميعا التعليق بما تشاؤون أري أن الأسباب لهذا كثيرة وسأذكر منها فقط 3 أسباب رئيسية 1. المجيب لايعرف عن الموضوع ويخشي أن يضلل السائل كأن يسأل السائل سؤالا محاسبيا متخصصا أو سؤالا هندسيا متخصصا أو كأن يسأل السائل أن الإجابة بالأكواد والمجيب لايجيد الأكواد أنا مثلا أبعد عن الفورم لأن غيري كثيرين بارعين فيها ويحلونها بسرعة 2. عدم وضوح السؤال كأن يسأل السائل عن شيء ليس موجودا بالملف ، مثل حالتك هنا في السؤال عن مايدفعه العميل ومايتبقي عليه ولايوجد بالملف كله بجميع ورقاته أي إشارة لما دفعه العميل وماتبقي عليه غير في السؤال فقط ، فكيف 3. السؤال ليس سؤال بل موضوع كبير يستنزف وقت المجيب كأن يسأل السائل أريد عمل برنامج يحسب كذا ويستدعي كذا ويطبع كذا ويخزن في شكل ... في نفس الوقت هنا لن يتقدم للإجابة إلا من لديه وقت كبير، أنا مثلا أري في هذه الحالة أن أفيد بهذا الوقت الكبير 5 او 6 سائلين لعلك لابد أن تعيد طريقة طرح الموضوع أو السؤال فأنت تبذل وقت كبير في المتابعة والإلحاح بدون ان تبذل وقت لإعادة السؤال فعارض السؤال كمندوب المبيعات الذي يعرض سلعته فالمندوب الجيد يسأل نفسه ويلوم نفسه اولا إن لم تباع سلعته أرجو أن يتسع صدرك لردي هذا وتأخذه بمأخذ إيجابي ولاتأخذه سلبيا فلاتظن مثلا أنني أتنصل ، فقد فتحت ملفك هذا عشرات المرات لكني في كل مرة أفتحه أجد نقص هائل من البيانات مثلا أنت وضعت في صفحة العملاء 3 أعمدة فقط هكذا اسم العميل تاريخ فواتيره دين العميل اذا اشترى وتبقى عليه جزء من ثمن الفاتورة وتطلب ترحيل الفواتير لهذه الورقة من صفحة الفاتورة التي بها 7 أعمدة م الصنف العدد الوحدة سعر الوحدة اجمالى ملاحظات طلبت منك قبل ذلك أن تضع النموذج الذي تريده يدويا ، بمعني ضع بيانات حقيقية أو وهميه في ورقة الفاتورة ثم إنقلها يدويا لصفحة العملاء ، حتي يفهم المجيب أي عمود سيترحل لأي مستقبل ، أظنك لوعملت ذلك منذ شهور كان خلص الموضوع ونقطة أخري التي أشرت لك في أول ردي إليها السؤال عن شيء ليس موجودا بالملف ، مثل مايدفعه العميل ومايتبقي عليه ممكن تضيف أنت كما يتراءي لك في صفحة الفاتورة مثلا بين عمود اجمالى و عمود ملاحظات عمودا جديدا به ماتم دفعه مثلا الصنف الأول 120ج إجمالي ، دفع منها 100 فقط ، أين سنضع هذا البيان تقبل مني هذا وأعد صياغة السؤال ، وقد وضعت الرد هنا وليس علي رسالة خاصة لكي يستفيد باقي الإخوة الذين لايجدوا تفاعلا مع أسئلتهم وليشاركنا من أراد فموضوعك أصبح قديم جدا ومن المحزن ألا تستقر علي حل له حتي الآن أظنك بإذن الله تتفهم ذلك ولنعمل جميعا علي العبور للخطوة التالية تقبل ودي وإحترامي لشخصكم الكريم أخوك / طارق محمود
    1 point
  40. أخي الكريم الطريقة الأخيرة هي الأدق حسابياً ولكن نظام المرتبات يطلب أول رقمين بعد العلامة وهذا يتم بدالة trunc وإذا استعملت الطريقة الأخيرة و الدالة في المجموع فلن تكون النتائج دقيقة كما ينبغي والأفضل والصواب استعمال trunc في الجميع
    1 point
  41. أخي الكريم الجزيرة كود activeprinter هو الخاص بتنشيط طابعة معينة للطباعة عليها ولا يوجد غيره لعمل ذلك فإما أن يكون الخطأ في اسم الطابعة أو في اتصال الطابعة بالجهاز وتأكد أنه تظهر أسفل رمز الطابعة كلمة ready (جاهز) قبل الطباعة ولمعرفة اسماء الطابعات الموصلة بالجهاز يمكنك استعمال هذا الكود Private Const PRINTER_ENUM_LOCAL = &H2 Private Const PRINTER_ENUM_CONNECTIONS = &H4 Private Declare Function EnumPrinters Lib "winspool.drv" _ Alias "EnumPrintersA" _ (ByVal flags As Long, _ ByVal name As String, _ ByVal Level As Long, _ pPrinterEnum As Any, _ ByVal cdBuf As Long, _ pcbNeeded As Long, _ pcReturned As Long) _ As Long Private Declare Function StrLen Lib "kernel32" _ Alias "lstrlenA" _ (ByVal Ptr As Long) _ As Long Private Declare Function StrCopy Lib "kernel32" _ Alias "lstrcpyA" _ (ByVal RetVal As String, _ ByVal Ptr As Long) _ As Long Private Function CopyStringFromPtr(ByVal pSource As Long) As String CopyStringFromPtr = Space$(StrLen(pSource)) StrCopy CopyStringFromPtr, pSource End Function Public Function GetPrinterNames() As Variant Dim fSuccess As Boolean, lBuflen As Long, lFlags As Long Dim aBuffer() As Long, lEntries As Long Dim iCount As Integer, aPrinters() As String lFlags = PRINTER_ENUM_LOCAL Or PRINTER_ENUM_CONNECTIONS Call EnumPrinters(lFlags, vbNullString, 1, 0, 0, lBuflen, lEntries) ReDim aBuffer(lBuflen \ 4) fSuccess = EnumPrinters( _ lFlags, _ vbNullString, _ 1, _ aBuffer(0), _ lBuflen, _ lBuflen, _ lEntries) <> 0 If fSuccess And lEntries > 0 Then ReDim aPrinters(lEntries - 1) For iCount = 0 To lEntries - 1 aPrinters(iCount) = CopyStringFromPtr(aBuffer(iCount * 4 + 2)) Next GetPrinterNames = aPrinters End If End Function Public Sub GetPrinterList() Dim aPrinters As Variant, i As Integer aPrinters = GetPrinterNames If IsArray(aPrinters) Then For i = 0 To UBound(aPrinters) Debug.Print aPrinters(i) Next End If End Sub لذلك يجب أولا التأكد من توصيل الطابعة وجاهزيتها وثانيا اسمها الصحيح ثم تستعمل activeprinter وفقنا الله وإياكم لكل خير
    1 point
  42. إذا كان الأمر كذلك فيمكنك استعمال الدالة trunc =trunc(a1*10%,2) حيث a1 هو الرقم المراد ضربه في 10% و ال 2 هو عدد الأرقام على يمين العلامة العشرية
    1 point
  43. أخي الكريم مجدي يونس في أي خلية بالضبط صادفت ذلك؟؟!! ففي الملف المرسل مني يتم قص أول رقمين بعد العلامة العشرية بدون تقريب في نسبة ال 10% وال 30% ومن الطبيعي ألا ينتج رقم به ثلاثة أرقام على يمين العلامة العشرية من حاصل جمع أرقام هي في الأصل رقمين على يمين العلامة ............. لا تقلق الآلية التي يمشي بها الملف صحيحة وإن صادفت ذلك فأين وجدته للوصول للحل وفقنا الله وإياكم لكل ما يحب ويرضى
    1 point
  44. جرب أن تستعمل المسار الكامل Application.ActivePrinter="EPSON LQ-690"
    1 point
  45. ما نص رسالة الخطأ؟ أو يمكنك تصويرها بزر print screen
    1 point
  46. أخي الكريم الجزيرة تتم الطباعة على الطابعة الافتراضية لا على طابعة أخرى مهما يكون عدد الطابعات الموصل بالجهاز ولا ستعمال طابعة غير الافتراضية يجب تنشيطها أولا باستعمال ActivePrinter = "EPSON LQ-690" ثم أمر الطباعة
    1 point
  47. بارك الله لك أخي يحياوي على اجتهادك وبحث وحرصك على إفادة إخوانك ولمن لا يجيد الإنجليزية هذا رابط لترجمة الكتاب http://translate.google.com.eg/translate?sl=auto&tl=ar&js=n&prev=_t&hl=ar&ie=UTF-8&layout=2&eotf=1&u=http%3A%2F%2Fwww.xlpert.com%2Ftoc.htm أتمنى أن يفيدنا جميعاً
    1 point
  48. الحمد لله على عمل البرنامج مع جميع الإخوة اللهم علمنا ما ينفعنا وانفعنا بما علمتنا
    1 point
  49. الاخوة الاعضاء تحية طيبة لكم جميعا هذا ملف وجدته في الانترنت و قمت بتعديلات بسيطة عليه جميل جدا و ممتع و حبيته اشارككم فيه و اشوف شو رايكم Justice.rar
    1 point
×
×
  • اضف...

Important Information