• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

dinamik bir alanı seçip kopyalama

Katılım
30 Ağustos 2013
Mesajlar
67
Excel Vers. ve Dili
office 2016 tr
merhaba,

excelde verilere filtre uyguladıktan sonra F ve K sütunu arasındaki verileri en üst satırın bir altından başlayarak ilk 5 satırı seçip kopyalamam gerekiyor. normal şartlarda F2:F6 K2:K6 arasındakileri seçmem gerekiyor fakat filtre uygulandığı için en üstteki satırlar örneğin F176 oluyor. Bu satırlar dinamik yani. bunu her seferinde satır sayıları ne olursa olsun üstten 2. ve 6. satır arasındaki verileri seçmemi sağlayan bir kolaylık var mıdır?

http://i.hizliresim.com/NEBrvk.png

Kod:
    Range("B1").Select
    Selection.AutoFilter
    ActiveSheet.Range("[COLOR="DarkRed"]$A$1:$O$14212[/COLOR]").AutoFilter Field:=2, Criteria1:=Array( _
        "11", "12", "13", "14", "15", "16", "21", "22", "23", "24", "26", "27", "31", "32", "33", "34" _
        , "35", "41", "42", "43", "44", "45", "46", "51", "52", "53", "54", "55", "61", "62", "63", _
        "92"), Operator:=xlFilterValues
    ActiveSheet.Range("[COLOR="darkred"]$A$1:$O$14212[/COLOR]").AutoFilter Field:=15, Criteria1:="1"
    ActiveWindow.SmallScroll Down:=-6
    Range("[COLOR="darkred"]F71:K170[/COLOR]").Select
 
Kodları sizin programa göre düzenleyiniz.


Kod:
Sub ilkbessec()
    Dim rngAF As Range, rngCell As Range, lCnt As Long, lRow As Long
    Const lStart As Long = 2
    Const lMax As Long = 5
       
    With ActiveSheet
        Set rngAF = .AutoFilter.Range.Offset(1, 0) _
            .Resize(.AutoFilter.Range.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible)
        For Each rngCell In rngAF
            lCnt = lCnt + 1
            lRow = rngCell.Row
            If lCnt = lMax Then Exit For
        Next rngCell
        .Range("F" & lStart & ":K" & lRow).Select
    End With
     
End Sub
 
yanıtınız için çok teşekkürler. kod tam istediğim gibi çalışıyor.
yalnız bir şey daha sormak istiyorum, yazdığınız kodu 6 defa kullanmam gerekiyor, 6 farklı filtre uygulanacak ve her sefer sizin gönderdiğiniz kod kullanılacak fakat sanırım bu haliyle bir kez kullanılabiliyor, hata veriyor aynı şekilde ikinci kez kullandığımda.
nasıl aşabilirim bunu?
 
yanıtınız için çok teşekkürler. kod tam istediğim gibi çalışıyor.
yalnız bir şey daha sormak istiyorum, yazdığınız kodu 6 defa kullanmam gerekiyor, 6 farklı filtre uygulanacak ve her sefer sizin gönderdiğiniz kod kullanılacak fakat sanırım bu haliyle bir kez kullanılabiliyor, hata veriyor aynı şekilde ikinci kez kullandığımda.
nasıl aşabilirim bunu?

Bu kod filtre uygulanmış bir veride ilk 5 sonucu seçek.

Siz başka bir prosedür ile filtre uygulayıp, o prosedür içinde bu kodları çağıracksınız.

call ilkbesec gibi.
 
Geri
Üst