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

طلب كود فيجوال لنسخ ولصق بالقيم


abu_hassan63

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

اسادة/ الفاضل

بعد التحية 

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

بشرط محدد وتكرر العملية في كل تصفية والتي تختلف كل مرة عن الأخرى حسب الشرط للتصفية

مع جزيل الشكر ميما يلي الكود الموجود لدي

Sub copy_paste_value()
'
' Macro2 Macro
'

'
    ActiveSheet.Range("$A$2:$U$9").AutoFilter Field:=1, Criteria1:=">0"
    Range("B4:Q4").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        
End Sub

 

Module1.rar

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

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

اخي الفاضل

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

ولا يتم استبدا الدوال للصفوف المخفية مع التصفية

جرب هذا الكود

Sub az1()
'
' 16/02/2018   AZ
'
    Dim RN As Range
    Range("$A$2:$U$9").AutoFilter Field:=1, Criteria1:=">0"
    Range("A2:U9").SpecialCells(xlCellTypeVisible).Select
    For Each RN In Selection
    If RN.HasFormula = True Then
    RN = RN.Value
    End If
    Next
    
    
End Sub

 

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

السلام عليكم

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

 

Sub filter()
Dim filterRule As Variant

Dim FindString As String
Dim Rng As Range

Dim testRange As Range
Dim targetWorksheet As Worksheet

ActiveSheet.Range("$A$1:$E$10").AutoFilter Field:=1, Criteria1:=ActiveSheet.Range("M1").Value

FindString = ActiveSheet.Range("M1").Value
If Trim(FindString) <> "" Then
    With ActiveSheet.Range("A:A")
        Set Rng = .Find(What:=FindString, _
                    After:=.Cells(.Cells.Count), _
                    LookIn:=xlValues, _
                    LookAt:=xlWhole, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False)
        If Not Rng Is Nothing Then
            With ActiveSheet
                .Cells(Rng.Row, 2).Select
                Set testRange = .Range(.Cells(Rng.Row, 2), .Cells(Rng.Row, ActiveSheet.Range("N1").Value))
            End With
            testRange.Select
            Selection.Copy
            Selection.PasteSpecial xlPasteValues
            Application.CutCopyMode = False
        Else
            MsgBox "Nothing found with '" & FindString & "'"
        End If
    End With
End If
End Sub

 

Dynamic filtering.xlsm

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

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

أتقدم بالشكر من الأخ احمد زمان والأخ بروجامرز

وكود الأخ بروجامرز مناسب لطلبي أكثر وأكرر الشكر الجزيل له 

وبارك الله بكم جميعا

تم تعديل بواسطه abu_hassan63
رابط هذا التعليق
شارك

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