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

ترحيل واستدعاء بيانات فاتورة


إذهب إلى أفضل إجابة Solved by طارق محمود,

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

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

وكيف يتم استدعاء الفاتورة مرة اخرى مع الشرح

ولو شرح فيديو يبقى تمام

عارف ان طلبى كبير

انا اسف

مرفق ملف

فاتورة جديدة .rar

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

السلام عليكم

شرح مفصل لكود الترحيل

أولا يتم تحديد المطلوب كالتالي:

في الورقة 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

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

مشكور استاذ طارق على هذا العمل العظيم

ولى سؤال

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

والمطلوب هو

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

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

أستاذ طارق

جزاك الله خيرا على تلبية طلباتنا

هل لي أن اطلب منكم ما يلي:

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

وشكراً لكم

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

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

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

اخى فى الله أ/ طارق

جزاك الله خيرا على هذا العمل العظيم

ولى سؤال لو سمحت

هل يمكن عند استدعاء فاتوره والتعديل عليها ان ترحل الفاتوره المعدله مكانها وليس فى اخر الصفحه

وشكرا لسعه صدركم

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

السلام عليكم

أخي العزيز / star knights

هل لي أن اطلب منكم ما يلي:

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

ممكن إن شاء الله لكني مشغول جدا هذه الأيام وأشارك في المشاركات السريعة فقط

إن أمكنك الإنتظار وإلا يتدخل احد الأخوة الأعزاء

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

السلام عليكم

أخي العزيز / محمد السيد الشاطر

لو الفاتورة انا عملها عبارة عن فورم والطباعة للفاتورة هى طباعة الفورم نفسه وانا عايز اخذ نسخة من الفورم فى كل مرة تحفظ فى الارشيف افدنا افادك الله

ممكن إن شاء الله لكن أيضا ، إن أمكنك الإنتظار وإلا يتدخل احد الأخوة الأعزاء

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

السلام عليكم

أخي العزيز / aly elhedewy

هل يمكن عند استدعاء فاتوره والتعديل عليها ان ترحل الفاتوره المعدله مكانها وليس فى اخر الصفحه

تفضل المرفق

فاتورة جديدة5.rar

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

استاذ طارق باراك الله فيك جزاك كل خير

المرحلة الثانية وهى ازى ارحل بيانات هام فى الفاتورة مثل التاريخ رقم الفاتورة قيمة الفاتورة الى حساب كل عميل

يعنى ولو عندنا كشف حساب العملاء يتكون من اسم العميل

مدين دائن الرصيد البيان ورقم المسنتد التاريخ

وعاوز بيانات الفاتورة على حساب كل عميل حسب الاسم

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

  • 2 weeks later...
  • أفضل إجابة

السلام عليكم

أخي الصدِّيق

المرحلة الثانية وهى ازى ارحل بيانات هام فى الفاتورة مثل التاريخ رقم الفاتورة قيمة الفاتورة الى حساب كل عميل

يعنى ولو عندنا كشف حساب العملاء يتكون من اسم العميل

مدين دائن الرصيد البيان ورقم المسنتد التاريخ

وعاوز بيانات الفاتورة على حساب كل عميل حسب الاسم

طبعا يتم هذا الأمر من صفحة DATA

هذا هو الكود


Sub Shift()

Sheets("Data").Activate

LR_C = [E60000].End(xlUp).Row


For r = 4 To LR_C

    'المرور علي أسماء العملاء ، إن وجد ورقة بالإسم ذهب لبرنامج الكتابة عليها

    'وإن لم يجد ، يتم تكوين ورقة جديدة بالإسم ثم يذهب للكتابة عليها

    clnt = Cells(r, "D"): cl_Cod = Cells(r, "E"): cl_addr = Cells(r, "F")

    If clnt = "" Then GoTo 20

    For i = 1 To Sheets.Count

        If Sheets(i).Name = clnt Then GoTo 10

    Next i


     'برنامج تكوين ورقة جديدة بإسم العميل

    Sheets("sample").Visible = True

    Sheets("sample").Copy after:=Sheets(Sheets.Count)

     With Sheets(Sheets.Count)

        .Name = clnt

        .[B1].Value = cl_Cod

        .[B2].Value = clnt

        .[D2].Value = cl_addr

    End With

    Sheets("sample").Visible = xlVeryHidden

    Sheets("Data").Activate


10       'برنامج الكتابة علي ورقة موجودة بإسم العميل


        If r <> LR_C Then n_LR = Cells(r, 2).End(xlDown).Row - 1: GoTo 15

        n_LR = [H10000].End(xlUp).Row

15

        LR = Sheets(clnt).[D60000].End(xlUp).Row + 1

        Range("B" & r & ":C" & r).Copy (Sheets(clnt).Cells(LR, 1))

        Range("G" & r & ":K" & n_LR).Copy (Sheets(clnt).Cells(LR, 3))


20

Next r

End Sub

أنظر المرفق

فاتورة جديدة6.rar

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

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

أستاذي وسيدي الفاضل طارق محمود حفظك الله

جزاك الله خير الجزاء ورضي عنك

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

مقترح.rar

والله المستعان والموفق

أبوأنس

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

  • 2 months later...

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

ا/ طارق

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

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

ولك جزيل الشكر والتقدير،،،

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

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

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

Important Information