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

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

قام بنشر

السادة الاعضاء المحترمين

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

المصنف1.xlsx

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

تفضل اخي 

Sub CopyData()
    Dim src As Worksheet, f As Worksheet
    Dim Clé As String, foundCell As Range
    Dim Cnt As Long, i As Integer
    Dim Cpt As Boolean
    
    Set src = ThisWorkbook.Sheets("ورقة1")
    Set f = ThisWorkbook.Sheets("ورقة2")
    Clé = src.[D3].Value
    
    If src.[D3].Value = "" Then
        MsgBox "يرجى ادخال الرقم الخاص"
        Exit Sub
    End If
    
    Set cellRange = Union(f.Range("F4"), f.Range("D21"))
    Set srcRng = src.Range("D11:D" & src.Cells(src.Rows.Count, "D").End(xlUp).Row)
    Set foundCell = srcRng.Find(What:=Clé, LookIn:=xlValues, LookAt:=xlWhole)
    
    If Not foundCell Is Nothing Then
        Cnt = foundCell.Row
    
        Cpt = False
        For i = 7 To 18
            If src.Cells(Cnt, i).Value <> "" Then
                Cpt = True
                Exit For
            End If
        Next i
        
        If Cpt Then
        f.Range("d9:d" & f.Rows.Count).ClearContents
            f.[F3].Value = Clé
            For i = 7 To 18
                f.Cells(9 + (i - 7), 4).Value = src.Cells(Cnt, i).Value
                f.[F2].Value = src.Cells(Cnt, 3).Value
            Next i
            
            SumCol = Application.WorksheetFunction.Sum(f.Range("D9:D20"))
            cellRange.Value = SumCol
            
            MsgBox "تم نسخ البيانات بنجاح", 64
        Else
            MsgBox "خلايا التقييم فارغة", 48
         End If
     Else
        MsgBox "لم يتم العثور على الرقم الخاص في قاعدة البيانات", 16
    End If
End Sub

 

المصنف1 v2.xlsb

تم تعديل بواسطه محمد هشام.
قام بنشر

السيد محمد هشام

بعد التحية

ارجو التغيير حسب الجدول المرفق , مع الشكر الكبير على اهتمامك

تقييم.xlsb

قام بنشر

نعم والغاء القيم في العمود d

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

قام بنشر

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

  • أفضل إجابة
قام بنشر
Sub CopyData()
    Dim src As Worksheet, dest As Worksheet
    Dim Clé As String, foundCell As Range
    Dim tmp As Long
    Dim cnt As Boolean
    Dim i As Integer
    Dim sumRange As Range
    Dim totalCell As Range
    
    Set src = ThisWorkbook.Sheets("ورقة1")
    Set dest = ThisWorkbook.Sheets("ورقة2")
    
    ' الحصول على القيمة من الخلية D3
    Clé = src.Range("D3").Value
    
    ' التحقق من إدخال قيمة في الخلية D3
    If Clé = "" Then
        MsgBox "يرجى إدخال الرقم الخاص", vbExclamation
        Exit Sub
    End If
    
    ' تحديد نطاق البحث والعثور على الخلية
    'ورقة1 (D)' الى اخر خلية بها بيانات في عمود
    Set srcRng = src.Range("D11:D" & src.Cells(src.Rows.Count, "D").End(xlUp).Row)
    Set foundCell = srcRng.Find(What:=Clé, LookIn:=xlValues, LookAt:=xlWhole)
    
    ' التحقق من العثور على القيمة
    If Not foundCell Is Nothing Then
        tmp = foundCell.Row
        
        ' التحقق من وجود بيانات في الصف
        cnt = False
        For i = 7 To 18
            If src.Cells(tmp, i).Value <> "" Then
                cnt = True
                Exit For
            End If
        Next i
        
        If cnt Then
            ' مسح محتويات عمود (J) في ورقة 2
            dest.Range("J9:J" & dest.Rows.Count).ClearContents
            
            ' نسخ البيانات إلى عمود (J)
            For i = 7 To 18
                dest.Cells(9 + (i - 7), 10).Value = src.Cells(tmp, i).Value
            Next i
            dest.[F2].Value = src.Cells(tmp, 3).Value
            dest.[F3].Value = Clé
            ' حساب مجموع القيم في العمود (J) وإدخاله في الخلية F4 و j21
            Set sumRange = dest.Range("J9:J20")
            Set totalCell = Union(dest.Range("F4"), dest.Range("j21"))
            totalCell.Value = Application.WorksheetFunction.Sum(sumRange)
            
            MsgBox "تم نسخ البيانات بنجاح ", vbInformation
        Else
            MsgBox "خلايا التقييم فارغة", vbExclamation
        End If
    Else
        MsgBox "لم يتم العثور على الرقم الخاص", vbCritical
    End If
End Sub

 

تقييم v3.xlsb

  • Like 1
قام بنشر

السلام عليكم

كل الشكر والتقدير استاذ محمد هشام

هذا هو المطلوب

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