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

كود تعديل وحفظ على ما سبق حفظه


الردود الموصى بها

السلام عليكم ورحمة الله وبركاته

بداية اتقدم بخالص الشكر الى كل اساتذتى بالمنتدى على ما يقدمونه من عون

بحمد الله وتوفيقه تم الانتهاء من مرحلة اعداد الاذن وترحيله واستدعائه

الان اطلب من اساتذتى اعداد كود لكى يقوم بحفظ التعديل التام على الاذن بعد استدعائه

بحيث يتم مسح البيانات القديمة للاذن ويتم حفظ البيانات الجديدة

 

اذون.rar

رابط هذا التعليق
شارك

33 دقائق مضت, محمد عبد الناصر said:

انت عايز انك لما تخلص وتقفل البرنامج يعمل سيف مع نفسو ؟؟

لا استاذ محمد عبد الناصر

المقصود حين يتم استدعاء بيانات اذن سيكون الغرض من ذلك هو التعديل عليه

المطلوب هو محو البيانات السابق حفظها وحفظ البيانات بعد التعديل

رابط هذا التعليق
شارك

أخي الكريم عاشق الإكسيل

عندي فكرة ..حاول تعمل كود واحدة واحدة ..هتقولي الموضوع صعب ..أنا بقولك حاول .. والمحاولة جديرة بالمحاولة

فكر بروية وحاول تشوف ايه المطلوب عشان تحقق هدفك .. عايزين نبدأ مرحلة جديدة وهي إننا نعتمد على أنفسنا قدر الإمكان

أنا مش بهرب من المساعدة لكن بحاول أنهض بالأعضاء لمرحلة جديدة

فكر في خطوات للحل ..وابدأ اطرح أسئلة بسيطة إزاي تعمل دي وإزاي دي تتحقق وهكذا .. وإنت هتقدر مع الخطوات البسيطة تحقق إنك تكتب كود بالكامل ..

وأنا معاك واحدة واحدة لحد ما تقدر تكتب الكود المطلوب بنفسك ..

صدقني دي أفضل طريقة لتعلم حل المشكلات ..امسك المشكلة وقطعها حتت وابدأ اتعامل مع حتة حتة .. واسأل وحتى لو كان السؤال بسيط وتافه ..اسأل وابحث وجرب واغلط لحد ما تقدر تتعلم

وصدقني لو عملت كدا هتلاقي نفسك بتتعلم بسرعة جداً وتكون عضو فعال في المنتدى بعد فترة

أنا أول ما اتعلمت برمجة كانت بالنسبة لي طلاااااااااسم بكل ما تحمل كلمة طلاسم من معنى ..بدأت أفكر واحدة واحدة وبأسلوب بسيط إزاي لو مشكلة كبيرة أقدر أحلها.. طبعاً في البداية الموضوع بيكون صعب ودا طبيعي جدا لكن مع الوقت والممارسة والخبرة بتكتسب مهارات جديدة وكل مهارة بتتعلمها بتفيدك في حل مشكلة تانية وهكذا ..

عمري ما كنت أتخيل إني أقدر أكتب 3 سطور من الكود في البداية ولكن الحمد لله بفضل الله عزوجل تقدمت في التعلم إلى أن أصبح عندي خبرة لا بأس بها

أرجو أن يكون كلامي ليس مجرد رغي ولكن دااااااافع لعجلة التطور في المنتدى

والكلام موجه للجميع وليس لشخص واحد فقط

حاول وافشل آلاف المرات ..تأكد أن النجاح سيكون حليفك في النهاية بشرط ألا تيأس ..

images.jpg.bc0eb55b5ca8827b1db4887bd6081

  • Like 1
رابط هذا التعليق
شارك

استاذى واخى ياسر خليل

قصد حضرتك وصلنى وفعلا انا كل كود بطلبه بحاول اقلده وافهمه عشان اقدر استخدمه بعد كده

بس يمكن فعلا وربنا يعلم انشغالى فى العمل الفترة دى خصوصا انى فى فترة تقفيل ربع ( اصلى محاسب بقى ^^) وتسويات ضريبية هى اللى ماخرانى شوية

وباذن الله هانفذ الفكرة وبطرق عملية ان شاء الله

وشكرا على نصايحك دائما

رابط هذا التعليق
شارك

لا شكر على واجب أخي الغالي على نفس لقبي (أنا أول من لقب نفسه بعاشق الإكسيل..)

ابدأ على بركة الله وإن شاء الله ستجد المساعدة من إخوانك ..تعلم واحترف فن الصيد ...كفاك أسماكاً جاهزة

images.jpg.f922d603e25122ec21ab9f24da5a1

  • Like 1
رابط هذا التعليق
شارك

ولما لا تكون البداية الآن قبل بعد قليل؟

توكل على الله وابدأ في التفكير ..ضع أولى خطواتك نحو الهدف

images.jpg.626a6f9cb8389cda574c20750511a

  • Like 1
رابط هذا التعليق
شارك

أخي الكريم

في كود الاستدعاء الذي تم شرحه ..يوجد أسطر للبحث عن رقم الإذن ..بعد الاستدعاء لعمل كود جديد تقوم بالتعديل على البيانات الموجودة .. فمن الطبيعي أن يتم البحث مرة أخرى عن رقم الإذن لمعرفة رقم الصف الذي يحتويه ثم على هذا الأساس ستقوم بعملية ترحيل في نفس المكان أو الصف ..

المشكلة التي يمكن أن تقابلك هي ..هل عدد البنود للإذن يمكن أن يزيد عن عدد البنود الموجودة أم أن التعديل محصور في خلايا معينة كالمناولة أو التاريخ ؟؟؟

  • Like 1
رابط هذا التعليق
شارك

احب ان اشترك معكم فى الموضوع ولكن لايوجد لدى فكرة عن كتابة الاكواد

اعتقد ان  الكود المطلوب سوف يتضمن:

                    1- البحث عن رقم الاذن

                    2- مسح البيانات القديمة

                    3_حفظ البيانات الجديدة

ولكن هناك استفسار هل الحفظ الجديدسيكون فى نفس المكان ( السطور ) ام فى مكان جديد

رابط هذا التعليق
شارك

السلام عليكم 

أنا حابب اشارك معاكم الموضوع وبالفعل انا عملت زى ما قال استاذنا ياسر خليل الان وليس بعد قليل

الفكرة هى مسح الاذن القديم ولكن ليس Clear ولكن Delete Row

وذلك للحفاظ على ترتيب الاسطر وأماكن البيانات الموجوده ولكن

جيت عند تحيد النطاق اللى همسحه ووقفت معرفتش أفكر تانى

أنا عملت رساله بتقول الاذن موجود , عاوز تعمل أستبدال , أيوة ولا , لا   ..... مردش عليا مش عارف ليه :biggrin:

وأدينا مع بعض لحد ما نوصل

 

وشكرا

  • Like 1
رابط هذا التعليق
شارك

استاذي ياسر خليل

لدي الفكرة ولكن ليس لدي القدرة علي عمل الكود

قمت باستخدام الاسطر الموجودة في كود الاستدعاء للتاكد من وجود الاذن وتحديد اخر بيانات بها بيانات تحمل نفس رقم الاذن ولكن كيف يمكنني محوها او الكتابة فوقها

اعتقد من الاسهل محوها واستخدام نفس كود الترحيل ولكنني لم اتوصل لكود المسح بالشكل المظبوط

يرجي منك التكرم وضع الكود مع شرحه بالكامل  

رابط هذا التعليق
شارك

أخي الكريم عاشق الإكسيل

أعتذر عن التأخر في الرد ..لأنني منشغل جداً ووقتي ضيق

يمكنك البدء بفكرة كما أخبرتك ..قل فيما تفكر بشكل بسيط ومجزء وليس بشكل كلي لتجد الإجابة

قلت لك حاول بنفسك ...استفيد من كود الاستدعاء في بعض الأمور كأن تحصل على رقم الصف الموجود فيه الإذن المطلوب التعديل عليه .. كما يمكنك الحصول على آخر صف للإذن ..لتتمكن من نسخ البيانات بعد التعديل إلى مكانها الصحيح

الموضوع إن شاء الله يكون بسيط

  • Like 1
رابط هذا التعليق
شارك

استاذى ياسر خليل

صراحة لم استطع تطويع كود الاستدعاء بما يتناسب مع المطلوب

الفكرة موجودة ولكن ليست القدرة الان على عمل الكود بالشكل المطلوب

ولكن فى العموم الفكرة هى ان الاذن من المؤكد اختلاف التعديل عن الاصلى فيما يتعلق بعدد البنود

ومن هنا هناك فكرتان

الاولى

كود يمسح بيانات الاذن قبل التعديل ويتم ترحيل الاذن الجديد بعد تعديله بنفس الرقم وهذا هو الاسهل

الثانية

كود يقوم بمسح بيانات الاذن القديم ويقوم بترحيل الاذن الجديد بعد التعديل ولكن فى مكان الاذن القديم بحيث تكون الاذون مرتبة

حاولت استخدام طريقة لتنفيذ الكود الاول

ونجحت بها من خلال استخدام كود يقوم بمسح كامل الصف فى حالة وجود رقم الاذن فى النطاق

ولكن واجهتنى مشكلة اننى بحاجة الى تعديل كود الترحيل بحيث يتم وضع رقم الاذن فى كامل الصفوف بدلا من الصف الاول فقط

فلك مطلق الحرية استاذى واخى ياسر خليل

اما تساعدنى فى التعديل على كود الترحيل بحيث يقوم بكتابة رقم الاذن فى كامل الصفوف المتعلقة به

او العمل ع الحل الثانى وبالنسبة لى هو الافضل فى الاستخدام

وشكرا ع نصائحك الدائمة

رابط هذا التعليق
شارك

أخي الكريم عاشق الإكسيل

هل الإذن بعد التعديل سيكون له نفس عدد أسطر التوجيه المحاسبي أم أن عدد الأسطر يمكن أن يزيد أو ينقص ..؟

يمكن الاعتماد على عدد اسطر التوجيه المحاسبي لأنه أكبر عدد من الصفوف ويتم تخزين عدد الصفوف في متغير واستخدام هذا المتغير في إدراج الصفوف بعد حذف الصفوف القديمة ..

لمن حاول عليه أن يضع محاولاته لتصحيح الخطأ أو محاولة إيجاد بقية الحل ..

تقبلوا تحياتي

رابط هذا التعليق
شارك

 

أخي الكريم عاشق الإكسيل

كنت أتمنى أن تقوم بإضافة كود ولو بشكل مبدئي وليس كامل لتستطيع أن تقوم بالأمر بنفسك

عموماً جرب الكود التالي وشوف هل يؤدي الغرض أم أن هناك مشاكل به

Sub EditAfterRecall()
    Dim WS As Worksheet, SH As Worksheet
    Dim TargetRow As Long, LR As Long, RowsToInsert As Long
    Dim LastRow As Long, I As Long, Arr
    
    Set WS = Sheet1: Set SH = Sheet3
    
    If IsError(Application.Match(WS.[M5].Value, SH.[A1:A2000], 0)) Then
        MsgBox "رقم الإذن غير موجود في ورقة الأرشيف", 64: Exit Sub
    Else
        With Application
            .ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False
        End With
            TargetRow = Application.Match(WS.[M5].Value, SH.[A1:A2000], 0)
            LR = IIf(SH.Range("A" & TargetRow).End(xlDown).Row >= Rows.Count, SH.Range("I" & Rows.Count).End(xlUp).Row + 1, SH.Range("A" & TargetRow).End(xlDown).Row)
            
            SH.Rows(TargetRow & ":" & LR - 1).Delete Shift:=xlUp
            RowsToInsert = Application.WorksheetFunction.CountA(WS.Range("F20:F33"))
            
            SH.Rows(TargetRow).Resize(RowsToInsert).Insert Shift:=xlDown
            With SH.Rows(TargetRow).Resize(RowsToInsert)
                .Interior.Color = xlNone
                .Font.ColorIndex = xlAutomatic
                .Font.Size = 13
            End With
            
            'ترحيل البيانات
            LastRow = WS.Cells(33, "F").End(xlUp).Row
            Arr = Array("M5", "M2", "D6", "C10", "C12", "C16")
            
            For I = 0 To UBound(Arr)
                If IsEmpty(WS.Range(Arr(I))) Or LastRow < 20 Then MsgBox "البيانات غير مكتملة", vbCritical: Exit Sub
            Next I
            
            For I = 0 To UBound(Arr)
                SH.Cells(TargetRow, I + 1) = WS.Range(Arr(I))
            Next I
            
            WS.Range("P20:R" & LastRow).Copy
            SH.Range("G" & TargetRow).PasteSpecial xlPasteValues
            
            MsgBox "تم تعديل البيانات بنجاح", 64
        With Application
            .CutCopyMode = False
            .EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True
        End With
    End If
End Sub

تقبل تحياتي

images.jpg.6449ed17019b1791b75ca90cdeffc

  • Like 3
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information