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

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

قام بنشر

السلام عليكم اخواتى محتاج مساعدتكم فى تكملة كود 

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

ثاننيا عايز خلية  total invoice previous  

لما اعمل مستخلص جديد  ينسخ  قيمة خليه دى من المستخلص القديم

وشكرا ليكم اتمنى المساعدة

invoice 1 v3 - Copy.xlsm

قام بنشر (معدل)

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

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

Sub ِAdd_New_Invoice()
        
        Dim Old_Invoice
        Dim New_Invoice
        Dim Previous_Value
        Dim R
        
        
        Old_Invoice = ActiveSheet.Name
         
         '    الاحتفاظ بقيمة المستخلص الحالى لاستخدامها لاحقا
         Previous_Value = ActiveSheet.Range("D43")
        
1:      New_Invoice = InputBox("الرجاء إدخال  رقم المستخلص ", " رقم المستخلص ")
        
   'فحص المدخلات والتأكد ان المستخدم قام بادخال رقم
       If Val(New_Invoice) < 1 Then
            
           R = MsgBox("لم يتم إدخال رقم: هل تريد إعادة المحاولة ؟", vbRetryCancel)
            If R = vbRetry Then GoTo 1 Else Exit Sub
       End If
       
       
  'فحص المدخلات والتأكد من عدم تكرار اسم الشيت
      
       For Each ws In ActiveWorkbook.Worksheets
        
            If New_Invoice = ws.Name Then
                R = MsgBox(" الرقم موجود مسبقا: هل تريد إعادة المحاولة ؟", vbRetryCancel)
                If R = vbRetry Then GoTo 1 Else Exit Sub
            End If
       Next
       
        'رسالة التأكيد

           
        R = MsgBox(" لقد قمت بإدخال البيانات التالية: " & vbNewLine & "" & vbNewLine & "رقم المستخلص :  " & New_Invoice, vbOKCancel + vbQuestion + vbMsgBoxRight, "تأكيد اضافة ورقة")
       
        If R <> vbOK Then Exit Sub
        
'        البدء فى العمل
           
        ActiveSheet.Copy Before:=Sheets(1)
        
        ActiveSheet.Name = New_Invoice
              
        Sheets(New_Invoice).Range("c2").Value = New_Invoice
       
      ' نسخ قيم الخلايا فى عمود إجمالى الكميات للمستخلص السابق
      Sheets(Old_Invoice).Range("K11:K41").Copy
      
       ' لصق قيم الخلايا فى عمود الكميات السابقة للمستخلص الجديد
      
      Sheets(New_Invoice).Range("G11:G41").PasteSpecial Paste:=xlPasteValues
      
       ' مسح قيم الخلايا فى عمود الكميات الحالية للمستخلص الجديد
      
      Sheets(New_Invoice).Range("I11:I41").ClearContents
      
      ' كتابة قيمة المستخلص السابق
      Sheets(New_Invoice).Range("D44").Value = Previous_Value
      
      
      Sheets(New_Invoice).Range("D44").Select
           
   
End Sub

 

تم تعديل بواسطه أسامة البراوى

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