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

كود فلترة


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

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

محتاج كود فلترة من شيت 1 الي شيت 2 بناء علي القائمة المنسدلة الملونة باللون الأصفر في شيت 2

ابتداء من C22 الي  AD

ولكم جزيل الشكرتجربة.xlsm

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

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

Sub test()
Dim wb As Workbook, WS As Worksheet, dest As Worksheet
Set wb = ThisWorkbook: Set WS = wb.Sheets("Sheet1"): Set dest = wb.Sheets("Sheet2")

Dim j&, col&, ligne&, r As String
Dim Rng As Range:   col = 12: r = dest.[B19]
ligne = WS.Cells(Rows.Count, col).End(xlUp).Row
  
 With Application
    .ScreenUpdating = False
dest.Range("C22", Range("AD" & Rows.Count).End(4)).ClearContents
    
For j = 22 To ligne
If UCase(WS.Cells(j, col)) = r Then
            
    Set Rng = WS.Range(WS.Cells(j, 3), WS.Cells(j, 30))
        dest.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Resize(1, 28).Value = Rng.Value
      End If
    
    Next j
If Application.WorksheetFunction.CountA(dest.Range("C22:AD22")) = 0 Then
     MsgBox "غير موجود" & " / " & r, vbOKOnly + vbCritical + vbDefaultButton1 + vbApplicationModal, "انتباه"
End If
   .ScreenUpdating = True
  End With
End Sub

 

 

تجربة 2.rar

تم تعديل بواسطه محمد هشام.
  • Like 2
  • Thanks 1
رابط هذا التعليق
شارك

 ملاحظة في حالة قمت بحدف عناوين الاعمدة سيتم نسخ البانات بعد اخر خلية فارغة في عمود C  ولتثبيت اللصق في الصف 22 ما عليك هو تعديل الصفوف التالية 

For j = 22 To ligne
If UCase(WS.Cells(j, col)) = r Then
    Set Rng = WS.Range(WS.Cells(j, 3), WS.Cells(j, 30))
       If dest.[C22] = Empty Then
        dest.[C22].Resize(1, 28).Value = Rng.Value
       Else: dest.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Resize(1, 28).Value = Rng.Value
       End If
      End If
''''''''''''''''''''''''''''''او''''''''''''''''''''''''''''
Dim dlr As Long
For j = 22 To ligne
If UCase(WS.Cells(j, col)) = r Then
  dlr = dest.Cells(Rows.Count, "C").End(xlUp).Row
     If dlr < 21 Then dlr = 21
    Set Rng = WS.Range(WS.Cells(j, 3), WS.Cells(j, 30))
        dest.Range("C" & dlr).Offset(1).Resize(1, 28).Value = Rng.Value
      End If
    
    Next j

 

  • Like 1
  • Thanks 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