اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

  1. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      9

    • Posts

      12,204


  2. ابو ياسين المشولي

    • نقاط

      4

    • Posts

      1,752


  3. Ali Mohamed Ali

    Ali Mohamed Ali

    المشرفين السابقين


    • نقاط

      3

    • Posts

      11,630


  4. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      3

    • Posts

      8,723


Popular Content

Showing content with the highest reputation on 21 سبت, 2018 in all areas

  1. اتفضل اتمنى يكون المطلوب اخفاء.accdb
    2 points
  2. ليس مثل برنامج وورد لكن تقريبا شبه ذلك عند الضغط سيحذف 5 حروف الاخيرة كل مرة وتقدر تتغير الرقم 5 الى اي رقم تريد اليك الكود Private Sub writing_KeyDown(KeyCode As Integer, Shift As Integer) Select Case True Case ((Shift = acCtrlMask) And (KeyCode = vbKeyZ)) KeyCode = 0 With writing .SelStart = Len(.Text) - 5 .SelLength = Len(.Text) DoCmd.RunCommand acCmdDelete End With End Select End Sub Database1.accdb
    2 points
  3. السلام عليكم طبيعي انك تحدد وتحذف وتنقل من جدول الى جدول ، ولكن العمليات هذه غير صحيحة في بيئة المبرمج المحترف ، في قواعد البيانات من الخطأ ان تحذف بيانات تم ادخالها بحجة نقلها الى موقع آخر . الحل : يأتي في البداية عند التصميم اطلعت على الجدولين فوجدتهما متشابهين تماما .. يعني جدولين مكررين .. فلماذا لا يكون العمل على جدول واحد ، فسجل المشتروات هو نفسه سجل المبيعات ولكن سنفرق بينهما عن طريق حقل يميز كل واحد عن الاخر ... تصور انه يكفيك لتحقيق فكرتك هذه ان تعمل تحديث لحقل قيمته صفر بحيث يصبح =1
    2 points
  4. ممكن ليه لا ؟ يوجد موضوع هنا للاستاذ جعفر يستخدم فيه كاميرا الموبايل واعتقد كاميرا الحاسب من هذا النوع جرب وحاول ولا تيأس
    2 points
  5. بارك الله فيك اخي علي لكن السؤال كان ان تدرج كل النتائج في خلية واحدة بالنسبة للمعادلات عندك فهي رائعة لكن اسمج لي بهذا التعديل في الاعمدة H & I & J 1-اذ لا ضرورة لادراج معادلة خاصة في كل عامود منها معادلة واحدة (تكفي) تكتب في H5 وتسحب يساراً و نزولاً (Ctlr+Shift+Enter) 2-تصغير حجم نطاق البحث للدالة Index من 3 أعمدة ( C & D & E ) الى عامود واحد ( C) ثم (D) ثم (E) 3 - مغادلة IFERROR انا لا احبذها لانها تلزم الاكسل على اجراء العمليات الحسابية أولاً ثم اذا كان هناك خطأ يعطينا فراغ لذلك اسعمال if rows()> countif افضل لانه عندما يتجاوز عدد الصفوف حد معين ( في هذه الحالة كم مرة وردت خضروات في النطاق) يتوقف اكسل عن حساب المغادلة و يغطي فراغ رأساً مما يوفر اعباء اضافية على البرنامج وزيادة في حجم الملف دون سبب لذلك انصح دائما ياسنعمال if rows()> countif بدل IFERROR الا اذا كان لا مفر من ذلك بعد كل هذا الشرح المعادلة =IF(ROWS(H$5:H5)>COUNTIF(C$5:C$100,$H$3),"",INDEX($B$5:$B$100,SMALL(IF(C$5:C$100<>"",IF(C$5:C$100=$H$3,ROW(C$5:C$100)-ROW(C$5)+1)),ROWS(H$5:H5))))
    2 points
  6. السلام عليكم ورحمه الله وبركاته مرفق طيه برنامج صلاحيات المستخدمين الإصدار 3 حيث تم زيادة بعض الخصائص به تتيح حريه اكبر في التعامل مع الملف وقبل اى شيء فلولا أساتذة هذا المنتدى العظيم ما كان لهذا البرنامج ان يظهر او يتطور فمنهم وجدت الدعم ومنهم تعلمت ولا زلت طالبا مبتدئا انهل من علمهم الغزير وفقهم الله وبارك في جهدهم وجعله علم صالح ينتفع به --- اللهم امين اسماء الدخول على البرناج الدعم الفنى - كلمه السر 1111 مستخدم 1 - كلمه السر 2222 شرح بسيط للبرنامج وامكانياته وما هو الجديد عليه تعتمد فكرة البرنامج على اضافه عدة مستويات للصلاحيات على الملف فهو كقالب تقوم بادراج الصفحات التي ترغب بادراتها فيه ويتعرف عليها تلقائيا بمجرد إعادة فتح الملف المستخدم باسم الدعم الفني هو الادمن لهذا الملف وقد تم ربط كافه الصلاحيات بالباسورد الخاصه به مستوى الصلاحيه على الصفحه 4 مستويات مشاهدة فقط ---- للاطلاع فقط دون التعديل مخفى ---- لاخفاء الصفحه عن هذا المستخدم مدخل بيانات - لتحديد أعمدة معينه يتم التعديل عليها وباقى المستند غير متاح وذلك من خلال وضع حرف T في اول خليه اعلى العمود كما يابصفحه 2 وجرب الدخول بالمستخدم 1 ستحلاظ ان صفحه واحد للمشاهدة فقط وصفحه 2 تم تحديد صفه مدخل بيانات ويتم التعديل فقط فى الاعمدة التى تعلوها حرف T ويمكنك اخفاء هذا الضف عن اعين المستخدم ويعمل بشكل طبيعي مشاهدة وتعديل -- هي صلاحيات كامله على الصفحه يمكنك تحديد اى من هذه الصلاحيات لكل صفحه منفصله عن الأخرى لكل مستخدم بصورة منفصله وذلك من خلال الاتى في شاشه الدخول ضع الدعم الفني واكتب كلمه السر وهى 1111 ولا تضغط دخول اى ستجد ان ازار تم تفعليها - اضغط على زر تعديل صلاحيات واختار المستخدم من الكومبوبكس وستجد صلاحياته تظهر اسفل منها افتح كل قائمه وحدد الصلاحيه التي ترغبها لكل مستخدم مع مراعاة ان تكون كلها مشاهدة وتعديل للمستخدم الدعم الفنى يظهر اسفل الفورم اربعه اختيارات وهى الجميع مخفى - الجميع مشاهدة وتعديل - الجميع مشاهدة فقط - الجميع مدخل بيانات ( هذه الاختيارات فقط لتساعدك في ملىء صلاحيات الصفحات حيث تختار ما يغلب على الصلاحيه للمستخدم وتقوم بتعديل الاستثناء فقط مع ملاحظه انه لا يتم التفعيل الا بعد الضغط على زر الحفظ وفى حاله الضغط على زر اضافه مستخدم جديد فانه يجب أولا تسجيل الاسم وكلمه السر الافتراضيه والضغط على زر اضافه مستخدم سيفتح فورم إعطاء الصلاحيات ومن ثم تحدد كما بالخطوة السابقه ملحوظه - كلمات السر يجب ان تكون ارقام فقط - حيث وضع هذا الشرط لعدم تعقيد كلمه السر والدخول في حساسيه الحروف واللغه -- وهكذا يظهر زر اخر فيه تعديل بيانات المستخدمين وحيث يمكنك تعديل اسم مستخدم او حذفه من البرنامج كما يمكنك اظهار أسماء المستخدمين وكلمات السر من خلال وضع علامه صح وسيظهر شاشه لادخال كلمه السر وهنا ضع كلمه سر الدعم افنى سيظهر كومبوبكس فيه أسماء المستخدمين وكلمات السر بجانب كل منهم كل هذه الأشياء يتم التعامل معها قبل الدخول على البرنامج من الشاشه الافتتاحيه وبعد الدخول الى البرنامج توجد بعض الخصائص امكانيه تعديل كلمه السر للمستخدم التنقل بين الصفحات من خلال زر التنقل يقوم البرنامج بعمل حفظ تلقائي عند الخروج حتى لو لم تقوم بالحفظ ما هو الجديد في هذا الإصدار زر صلاحيات اضافيه وفيه الخصائص التاليه امكانيه احضار صفحات من خارج الملف وارفاقها امكانيه نسخ الصفحات المضافه وحفظها في ملفات منفصله لكل منها حذف الصفحات من الملف ترتيب الصفحات تصاعديا وتنازليا فك حمايه المستند وتفعيل الحمايه اظهار واخفاء اشرطه الأدوات للاكسيل المثال المرفق : مستخدم 1 بكلمه سر 2222 صلاحياته هي صفحه رقم 1 مشاهده فقط صفحه رقم 2 - مدخل بيانات -- يمكن الكتابه فقط في الاعمدة التي في اعلاها حرف T صفحه رقم 3 مشاهدة وتعديل باقى الصفحات من 4 الى 7 مخفيه عن مستخدم 1 والكل يظهر مع مستخدم الدعم الفني يجب مراعاة ان صفحه MYDATE يجب ان تكون مخفيه عن جميع المستخدمين نظرا لانه يتم تخزين أسماء المستخدمين وكلمات السر والصلاحيات على الصفحات في هذه الصفحه تلاحظ ان يتم تحديد صفحه MYACCOUNT بصفه مخفى ولكنها تظهر مع المستخدم العادى وذلك فقط اذا حددتها مشاهدة وتعديل فانك ستعطى لهذا المستخدم صلاحيه اضافه مستخدم جديد فقط دون باقى صلاحيات الدعم الفني التي تكون في الفورم الرئيسي برنامج صلاحيات المستخدمين اصدار 3.rar
    1 point
  7. وعليكم السلام ورحمه الله وبركاته العفو اخي حسن وجزاك الله كل حير نحن هنا اخي نتعاون فيما بيننا نفيد ونستفيد
    1 point
  8. اذا تستخدم قواعد MDB فمن شريط المهام /ادوات/ خيارات/ عرض اما الاصدارات الاحدث فانقر على ملف ثم /خيارات ليظهر لك مربع حوار اختر منه قاعدة البيانات الحالية ثم انقر على زر : خيارات التنقل س : هل فحصت الفأرة .. فقد يكون السبب في خصائص الفأرة
    1 point
  9. وعليكم السلام ورحمة الله تفضل الملف المرفق فيه ما تريده.... بن علية حاجي Raport.xlsm
    1 point
  10. السلام عليكم ورحمة الله تم التعديل على ملفك حسب ما فهمت من المطلوب بإضافة شيتات مساعدة (معلومات - بيانات) وإضافة المعادلات المناسبة لكل من شيت "البيانات" (الأعمدة الملونة بالأصفر) والشيتات الثلاثة: "دخول"، "خروج"، "الخلاصة"... ملاحظات: * شيت "معلومات" تُحجز فيه معلومات المؤسسة والأقسام (الخلايا الملونة بالأصفر) * شيت "بيانات" تحجز فيه البيانات الخاصة بالدخول والخروج على حد سواء... * كل الشيتات محمية بالكلمة السرية: hb لمنع مسح المعادلات بالخطأ... * تجدني، إن شاء اله في الخدمة، لأي استفسار أو طلب آخر.... أرجو أن تفي الغرض المطلوب... بن علية حاجي حركة دخول وخروج التلاميذ.xlsm
    1 point
  11. أهلا سلمان.. هناك حل باستخدام صفحة html، وكنت أود أن أضع لك تجربتي لكني لم أتمكن من فتح قاعدة البيانات المرفقة على الأوفس 2007 للأسف...
    1 point
  12. محاولة و لكن بالمعادلات ... ملاحظة .. ألغيتُ المعيار الرابع لأنه متعلق بالاسماء التي تريد جلبها فرز بثلاث معايير.xlsm
    1 point
  13. أهلا بك اخ كريم فى المنتدى تفضل ComboBox.xlsm
    1 point
  14. بارك الله فيك طريقة حلوة بس لا تساعدني لكن فكرة ممتازة ورائعة مشاء الله جعلها الله في ميزان حسانتك بارك الله فيك طريقة حلوة بس لا تساعدني لكن فكرة ممتازة ورائعة مشاء الله جعلها الله في ميزان حسانتك
    1 point
  15. مشكور على ردك العطر ممكن ترفق لنا مثال لنرى طريقتك حتى طريقة الأخ حلبي رائعة ناقصه شئ فقط
    1 point
  16. غالبا يأتي ضمن المنتج كتيب او ورقة عبارة عن باركودات تتضمن تعليمات لضبط القراءة حسب رغبة العميل وتختلف هذه الاعدادات من منتج الى آخر ومن مصنع الى آخر تجد في بعضها ضبط الصوت ، وزمن الاشارة اذا كان القارىء يقرأ آليا ، والتحويل من يدوي الى آلي وغيرها الكثير وتجد احدها يعيد ضبط القارىء الى اعدادات المصنع ( كل ما سبق يتم بمجرد تمرير القارىء على الباركود ) وغالبا هذه التعليمات واضحة وسهلة ولا تحتاج الى معلم
    1 point
  17. السلام عليكم مشاركة مع احبتي اخوي حربي مشكلتك في ترتيب الاوامر فالكود بدأ بالترقيم ثم الحساب ثم ادراج التواريخ وطبعا الحساب مبني على التواريخ يعني الصحيح يبدأ بالترقيم ثم التواريخ ثم الحساب Prog42.rar
    1 point
  18. السلام عليكم الاستاذ سليم جزاكم الله خيرا التعديل اكثر من رائع وهو المطلوب بالفعل حفظكم الله واعطاكم الصحة والعافية لكم وافر احترامي وتقديري
    1 point
  19. بعد اذن استاذى سليم هناك فى الملف معادلتين للتطبيق النوع.xlsx
    1 point
  20. استبدل الماكرو الى هذا Option Explicit Sub filter_More_critertias() With Application .ScreenUpdating = False .Calculation = xlCalculationManual End With Dim laste_row, New_last_row% Dim S_sh As Worksheet: Set S_sh = Sheets("data") Dim T_sh As Worksheet: Set T_sh = Sheets("Summary") Dim My_Table As Range: Set My_Table = S_sh.Range("b5").CurrentRegion laste_row = T_sh.Cells(Rows.Count, 3).End(3).Row If laste_row < 5 Then laste_row = 4 T_sh.Range("q6").Formula = "=data!I6=1" My_Table.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=T_sh.Range("Q5:q6"), _ CopyToRange:=T_sh.Range("b" & laste_row + 1) '=============================== With T_sh .Range("q6").Clear .Columns("i").Clear .Sort.SortFields.Clear .Sort.SortFields.Add Key:=Range("H6") _ , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:= _ "الاول,الثاني,الثالث", DataOption:=xlSortNormal With .Sort .SetRange Range("B5").CurrentRegion .Header = xlYes .Apply End With '======================= End With Remove_Dup New_last_row% = T_sh.Cells(Rows.Count, 3).End(3).Row If Cells(New_last_row, 3) = "رقم الحساب" Then Cells(New_last_row, 3).EntireRow.Delete End If '======================= With Application .ScreenUpdating = True .Calculation = xlCalculationAutomatic End With End Sub '======================= Sub Remove_Dup() Sheets("Summary").Range("b5").CurrentRegion.RemoveDuplicates _ Columns:=Array(2, 3, 4, 5, 6, 7), Header:=1 End Sub الملف Tarhil_Unique.xlsm حمّل جزء بسيط من الملف ( 10 الى 15 اسم فقط ) و ليس 1200 اسم لاجراء اللازم
    1 point
  21. اتفضل حسب طلبك كتابة المبلغ.accdb
    1 point
  22. وعليكم السلام نعم يمكن 1- تستخدم الوحدة النمطية الخاصة بالتاريخ الهجري ( ابحث عنها فهي موجودة في غالب الامثلة في هذا المنتدى) 2- يفضل جعل نوع حقل التاريخ الهجري نصيا السبب لتلافي التعارض .. فبعض التواريخ لا يقبلها اكسس اذا كان الحقل وقت/تاريخ
    1 point
  23. السلام عليكم ورحمة الله عطل جهازي قبل كم يوم والبارحة باليل تم تصليحه ... واليوم انا عملت له تحديثات وفي العصر اقدرت ان افتح الموقع واليوم انا نزلت المرفق لكن بعد ما اشتغلت عليه لكن الحمد لله لانك وصلت للمطلوب لكن لماذا بطريقة مركبة ؟ ماذا تريد ان يعمل لك كل واحد منهم ؟
    1 point
  24. شكرا أستاذ @ِABUTALAL2015 تم الاقتراب من حل طلب الاخ @سلمان الشهراني متبقي بعض الاضافات بالنسبة لك بارك الله فيك عملت مجهود رائع وانا معاك في ذلك ..
    1 point
  25. اخي الكريم ... من وجهة نظري .. هذه الطريقة معقدة نوع ما .. والسبب هو بعد انشاء الامر في نموذج T .. ستجد صعوبة في زرع الكود على الامر وارتباطه .. ولاكن من الافضل ان يتم انشاء الامر مسبقا .. بعدد الشقق او الغرف او ... الخ ❗ قد يكون هناك طريقه لعمل ذلك ... ولاكني للاسف لا ادركها .. وكما ذكرت سلفاً .. بحثت في المواقع الاجنبية والعربية ولم اجد الحل على انظمة الاكسس (للأسف) على العموم .. انا اضفت ايضا اضافات جديدة وهي : امكانية اضافة الامر في نفس النموذج مع اضافة السجل في جدول asd بحيث يتم انشاء الامر في نموذج T بناء على اضافة سجل جديد في الجدول asd.. كما اتمنى من الاخوة الكرام في هذا المنتدى العظيم ... ان يشاركو في هذا الموضوع لانه في غاية الاهمية .. وتقبلوا تحياتي ابو طلال Microsoft Access قاعدة بيانات جديد.rar
    1 point
  26. أستاذ @ِABUTALAL2015 شكرا على جهدك شفت الملف الاخير هل ممكن تطوير الكود بحيث يكون الاضافة في نفس النموذج ويكون في الزر اسم وصورة الشقة
    1 point
  27. اضفت بعض التعديل على انشاء الزر في نموذج t ارجو الاطلاع علية Microsoft Access قاعدة بيانات جديد.rar
    1 point
  28. وعليكم السلام رحمة الله على العلامة الكبير عماد الحسامى-عالم من علماء الإكسيل التى مازالت اعماله منارة لنا فى تعلم الإكسيل تفضل البرنامج لعله يكون افادة للجميع وصدقة جارية على روحه الكريم الباسورد هو : 123 نظام الحسامي للمخازن-123.xls
    1 point
  29. وهي الطريقة التي استخدمها في اعمالي وحدة نمطية وكود للربط داخل النموذج انسخ الكود التالي والصقه في وحدة نمطية عامة Public Function CheckLinks(ByVal strDBPassword As String) As Boolean On Error GoTo CheckLinksErr Dim tdf As TableDef Dim strNewMDB As String Dim fd As FileDialog For Each tdf In CurrentDb.TableDefs If UCase(Left(tdf.Name, 6)) <> "COMPAS" Then If Len(tdf.Connect) > 0 And tdf.Fields.Count = 0 Then If Len(strNewMDB) = 0 Then Call MsgBox("مطلوب قم بتحديده واختياره (اسم قاعدة الجداول لديك) ملف البيانات", vbCritical) Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .AllowMultiSelect = False .InitialFileName = CurrentDBFolder() .Filters.ADD "Access Database File (*.mdb)", "*.mdb", 1 .TITLE = "Select Back-End Data File" .ButtonName = "Link Tables" If .Show = False Then Exit Function Else strNewMDB = .SelectedItems(1) End If End With End If If (IsNull(strDBPassword) = True) Or (strDBPassword = "") Then tdf.Connect = ";DATABASE=" & strNewMDB Else tdf.Connect = ";DATABASE=" & strNewMDB & ";PWD=" & strDBPassword End If tdf.RefreshLink End If End If Next tdf CheckLinks = True CheckLinksDone: Exit Function CheckLinksErr: MsgBox "Error #" & err.Number & ": " & err.Description, vbCritical Resume CheckLinksDone End Function Public Function CurrentDBFolder() As String Dim strPath As String strPath = CurrentDb.Name Do While Right$(strPath, 1) <> "\" strPath = Left$(strPath, Len(strPath) - 1) Loop CurrentDBFolder = strPath End Function ثم الصق الكود التالي في حدث التحميل لنموذج البداية On Error Resume Next If CheckLinks("") = False Then Call Quit End If Dim tdfs As DAO.TableDefs Dim tdf As TableDef Dim sSourceDB As String Dim sBackupDB As String Dim backDBName As String Set tdfs = CurrentDb.TableDefs Set tdf = tdfs(tdfs.Count - 1) sSourceDB = Right(tdf.Connect, Len(tdf.Connect) - 10) backDBName = Dir(Mid(tdf.Connect, 11)) sBackupDB = Mid(tdf.Connect, 11, Len(tdf.Connect) - (Len(backDBName) + 10)) ' وفي المثال تطبيق للمقال ملحوظة : اذا لم يعمل المثال على الوجه الأكمل انظر في المكتبات link_be.rar
    1 point
  30. فكرة البرنامج: عمل برنامج اكسيل يستوعب الكثير من البيانات باقل مساحه وبدون عناء فى استخدام الصيغ والمعادلات او الاكواد فى VBA وفى نفس الوقت يعرض العديد من التقارير . وهذا النموذج من البرنامج مجرد فكره ويمكن اعداد برامج شبيه له كما يناسب احتياجك . لاتنسونا بصالح دعاؤكم تحميل وشرح البرنامج http://excelfinancial1.blogspot.com.eg/2016/04/dashbord-sales.html تحميل ملف التطبيق sales.rar
    1 point
  31. السلام عليكم ورحمة الله وبركاته الاساتذة الكرام جزاكم الله خيرا الحقيقة انا شاهدت ملف للاستاذ العالم العلامة الاستاذ الفاضل عبد الله باقشير حفظه الله ودام عزه واعلى الله مقامه على هذا الرابط http://www.officena.net/ib/index.php?showtopic=29935# وهو ترحيل فاتورة الى ملف اخر للعملاء وكان رائعا لكن اردت ان اعدل عليه ولو قليلا ليتناسب مع ملفي ولكن هناك اختلاف من حيث الشرط ( ناجح) وغيره من طلباتي التي تختلف عن الكود المذكور ولكن اردت ان اوصل الفكرة حول امكانية ادراج السنة الدراسية والدور من خلية واحدة كما في كود العلامة الاستاذ ابو علي دام عزه حيث يقوم الكود بادراج التاريخ من خلية واحده (J6 ) في عمود ( A ) وحاولت ان اطبق ملف الاستاذ ابو احمد عبد الله المجرب حفظه الله واعطاه الصحة والعافية على هذا الرابط http://www.officena.net/ib/index.php?showtopic=41919&page=8#entry304066 لكن الشرط الذي وضعه الاستاذ ابو احمد هو ورقة ناجح وانا اردت الكود ان يرحل البيانات الى ورقة البيانات وكذلك مسح البيانات من ورقة النتائح اي ترحيل دون بقاء البيانات المرحله وكذلك صادفتني مشكلة في عمود المجموع حيث فيه معادلة الجمع بشرط والكود يرحل المعادلة كاملة وهذا يجعل القيم لاتظهر لوجود الشرط الذي عملته في ورقة النتائج وارفقت ملف فيه التطبيق لما بينته اعلاه وفيه كود الاستاذ الفاضل ابو احمد جزاه الله خيرا ارجو ابداء المساعدة لتجهيز كود جديد او تعديل الكود الموجود ليرحل القيم دون المعادلات جزاكم الله خيرا وزادكم من فضله علما وشرفا تقبلوا فائق احترامي وتقديري الترحيل الى ورقة البيانات.rar
    1 point
  32. السلام عليكم شرح مفصل لكود الترحيل أولا يتم تحديد المطلوب كالتالي: في الورقة Data يوجد 10 أعمدة (B:K) تحتاج لنقل البيانات إليها من الورقة (Invoice) من الخلايا التالية بالترتيب كما يلي البيانات الخمسة الأولي البيان 01 وبه - رقم الفاتورة - بالخلية E7 البيان 02 وبه - التاريخ - بالخلية D8 البيان 03 وبه - اسم العميل - بالخلية D9 البيان 04 وبه - كود العميل - بالخلية F9 البيان 05 وبه - العنوان - بالخلية D10 أما البيانات الخمسة التالية فيتم التعامل معها طريقة أخري ، لأنها ليست في خلية واحدة أوعدد ثلبت من الخلايا البيان 06 إذن التسليم ، وحسب شكل الفاتورة قد يكون هناك أكثر من إذن تسليم واحد البيان 07 البيان ، وهذا أيضا محتمل أن يكون أكثر من واحد البيان 08 الكمية ، وهذه أيضا مثلهما البيان 09 السعر ، وهذا كذلك البيان 10 القيمة ، وهذه أيضا ثانيا للتعامل مع هذه البيانات الخمسة الأخيرة فلابد من معرفة كم صنف في هذه الفاتورة وأدق عمود لهذا الغرض هو عمود الكمية ، إذ يتم تحديد عدد الأصناف أو البيانات عن طريق أنه من الخلية E30 مثلا بالقفزللأعلي حتي يجد خلية بها بيانات وتكون هذه هي آخر كمية بالفاتورة فيسجل رقم هذا السطر LR إختصارا لـ Last Row ثم يبدأ في نقل البيانات الخمسة الأخيرة من السطر 12 إلي هذا السطر LR ثم يخيرك في مسح بيانات الفاتورة أم لا هذا هو الكود Sub Tarheel() 'قراءة البيانات الخمسة الأولي Dim d(5), x(5, 30) d(1) = [E7]: d(2) = [D8]: d(3) = [D9]: d(4) = [F9]: d(5) = [D10] 'نقل البيانات الخمسة الأولي للورقة داتا With Sheets("Data") DR = .[H10000].End(xlUp).Row + 1 'آخر صف بيانات جاهز لاستلام بيانات جديدة بالورقة داتا For i = 1 To 5 .Cells(DR, i + 1) = d(i) Next i End With LR = [E30].End(xlUp).Row 'قراءة ونقل البيانات الأربعة الأخيرة Range("C12:G" & LR).Copy Sheets("Data").Select Range("G" & DR).Select Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False [F2].Select Sheets("Invoice").Select Reply = MsgBox("تم ترحيل الفاتورة بحمد الله" & Chr(10) & "هل تريد مسح البيانات منها", vbYesNo) If Reply <> 6 Then Exit Sub Range("C12:F" & LR).ClearContents [E7] = [E7] + 1 Range("D8:D10, F9").ClearContents End Sub مرفق الملف وبه الجزء الأول (كود الترحيل) ولاحقا إن شاء الله كود الإستدعاء فاتورة جديدة .rar
    1 point
  33. أولأ أعتذر عن التاخير لظروف كثيره اجتمعت معا : ********************************************** أحب أن أطرح هنا فكرة جديدة تهدف إلى تجاهل همزة الألف عند الكتابة لأن بعضهم يعتبر الهمزة مشكلة لأنه أحياناً يدخل ألف مهموزة أو بدون همزة مثل ( أحمد - احمد ) وتهدف الفكرة إلى تجاهل الألف المهموزة و الممدودة و استبدالها بألف بدون همزة .. في الوحدة النمطية العامة أضف : Function ForTrAlfbet(Astr As Variant) As String Dim L1 As String, L2 As String, NewStr As String If Nz(Astr, "") = "" Then Exit Function Astr = CStr(Astr) L1 = Mid(Astr, 2, Len(Astr)) L2 = Mid(Astr, 1, 1) Select Case Asc(L2) Case 194, 195, 197: L2 = Chr(199) Case Else: L2 = L2 End Select NewStr = L2 & L1 ForTrAlfbet = NewStr End Function ' Asc(" آ ") = '194 ' Asc(" أ ") = '195 ' Asc(" إ ") = '197 ' Asc(" ا ") = '199 و في حدث بعد التحديث للعنصر أضف : Private Sub First_Name_AfterUpdate() First_Name = ForTrAlfbet(Nz(First_Name)) End Sub ******** اقتباس للأخ / فينوس
    1 point
×
×
  • اضف...

Important Information