Çözüldü Filtreli veride, yalnızca görünen satırlara işlem yapma

Katılım
9 Şubat 2022
Mesajlar
124
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
09-02-2027
Veri filtreli iken, yalnızca görünen satırlara veri yapıştırmak mümkün mü?
Yani veriyi yapıştırdığımda, (örneğin A sütunu olsun) filtrelenmiş /gizli hücrelere işlem yapılmamasını nasıl sağlayabiliriz?
"Özel git" de yalnızca görünen satırlara işlem yap seçeneği var ama nasıl kullanıldığını anlamadım. Makrolu bir çözüm de olabilir.

Çözüm: Ömer Bey'in bu konuda makrosu hallediyor:
Adımlar: 1-Önce (kopyalayacağınız) veriyi normal kopyalayın.
2-makroyu çağırın, yapıştırılacak yeri soracak ve boyutları aynı olmak zorunda.


Kod:
Sub Filtreli_Veride_Görünen_Hücrelere_Yapistir()

    Dim a As Range, alan As Range, b As Range, dizi(), k As Long, i As Long
  
    For Each b In Selection
        ReDim Preserve dizi(k)
        dizi(k) = b.Value
        k = k + 1
    Next b
  
    On Error Resume Next
    Set alan = Application.InputBox("Alan Secin", "Yapıştırma Yapılacak Alan", Type:=8)
    If alan Is Nothing Then
        MsgBox "Alan Seçmelisiniz"
        Exit Sub
    End If
  
    If alan.SpecialCells(xlCellTypeVisible).Count <> k Then
        MsgBox "Kopyalanacak Alan İle Seçilen Alanın Boyutu Aynı Olmalı", , "excel.web.tr"
        Exit Sub
    End If
  
    For Each a In alan.SpecialCells(xlCellTypeVisible)
        a = dizi(i)
        i = i + 1
    Next a
  
End Sub
 
Son düzenleme:
Katılım
9 Şubat 2022
Mesajlar
124
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
09-02-2027
Çok teşekkürler dost hocam, bu videoda benim de sıklıkla kullandığım bir methodla işin etrafından dolanarak çözüme ulaşıyor.
Özetle, hücreleri renklendiriyor, sonra renge göre sıralatıp başa alıyor, bu şekilde veri sıralı olduğu için yapıştırabiliyor.
Güzel ancak dolaylı bir çözüm. Bir kaç yüz binlik satırlarla, gün içerisinde defalarca uğraştığım için,
Bana daha doğrudan, belki makro ile yapılan bir çözüm gerekiyor.
Mesela Bul ve Seç Menüsünden "Sadece Görünür Hücreler" Seçilebiliyor ancak yapıştırmayı nasıl yapacağız?
 
Son düzenleme:
Katılım
16 Eylül 2023
Mesajlar
10
Excel Vers. ve Dili
2019-tr
Sheets("sayfa2").Range("A3:O5002").ClearContents
Sheets("sayfa1").Select
Range("A3:O5002").SpecialCells(xlCellTypeVisible).Copy

Sheets("sayfa2").Range("A1").PasteSpecial Paste:=xlPasteValues
 
Katılım
9 Şubat 2022
Mesajlar
124
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
09-02-2027
Sheets("sayfa2").Range("A3:O5002").ClearContents
Sheets("sayfa1").Select
Range("A3:O5002").SpecialCells(xlCellTypeVisible).Copy

Sheets("sayfa2").Range("A1").PasteSpecial Paste:=xlPasteValues
Seaman hocam, bu kodlar, filtreli verilere başka sayfaya aktarmaya yarıyor gibi. İstenilen filtreli veriye, yapıştırma işlemi.
Korhan Bey, arşiv konularında böyle bir husus göremedim.
Yukarıdaki dolaylı çözümü pratikleştiren bir makro üzerine çalışıyorum, sonuca ulaşırsam yazarım.
 
Son düzenleme:
Katılım
15 Mart 2005
Mesajlar
353
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Örnek olması açısından

C++:
Sub Copy_FilteredCells()
    Dim rng1 As Range, rng2 As Range
    Dim copyRng As Range, pasteRng As Range
    
    Application.ScreenUpdating = False
    
    '**** Verileri filtre yapılmış olarak farz ediyorum ****
    '**** Sheet2'deki A sütunundaki verileri Sheet1'deki filtre yapılmış verilerin C sütununa kopyalar ****
    
    Set copyRng = Sheet2.Range("A1:A" & Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row)
    Set pasteRng = Sheet1.Range("C2:C" & Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row)
    
    For Each rng1 In copyRng
        rng1.Copy
        For Each rng2 In pasteRng
            If rng2.EntireRow.RowHeight > 0 Then
                rng2.PasteSpecial
                Set pasteRng = rng2.Offset(1).Resize(pasteRng.Rows.Count)
                Exit For
            End If
        Next
    Next
    Application.CutCopyMode = False
    
    Set copyRng = Nothing:  Set pasteRng = Nothing
    
    Application.ScreenUpdating = True
    
End Sub
 
Katılım
9 Şubat 2022
Mesajlar
124
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
09-02-2027
Paylaştığım linkte sanırım bir sorun olmuş. Linki yeniledim.
2. mesajda Ömer Bey şöyle demiş, bunu denemiştim ama yapamamıştım, tekrar deneyeyim.
Veriyi kopyalayın
Filtrelenmiş alanı seçin / F5 / Özel / Yalnızca görünen hücreler seçeneğini seçin ve tamam ile işlemi bitirin.
Ayrıca, daha önceki konularda bu link paylaşılmış
Burada makro ile çözüm üretilmiş ancak, makronun linki silinmiş.

dost hocam makro için teşekkür ederim. Üstte yazdığınız kod işi çözecek gibi duruyor ancak makronun kopyalanacak hücreleri ve yapıştırılacak hücreleri bizden alması daha uygun olurdu. Bunu evrensel kullanıma uyarlamayı deneyeceğim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,549
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ömer beyden alıntı yaptığınız bölümün üstünde işlemin olması için gereken kilit noktayı da aşağıdaki gibi yazmış.

Eğer kopyaladığınız veri tek bir hücre ise;

Yine aynı başlık altında başka bir başlıkta makrolu çözüm hazırladığını da belirtmiş. Oradaki linke tıklarsanız makrolu çözüm dosyasında erişebilirsiniz.
 
Katılım
9 Şubat 2022
Mesajlar
124
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Altın Üyelik Bitiş Tarihi
09-02-2027
Ömer beyden alıntı yaptığınız bölümün üstünde işlemin olması için gereken kilit noktayı da aşağıdaki gibi yazmış.

Eğer kopyaladığınız veri tek bir hücre ise;

Yine aynı başlık altında başka bir başlıkta makrolu çözüm hazırladığını da belirtmiş. Oradaki linke tıklarsanız makrolu çözüm dosyasında erişebilirsiniz.
Teşekkürler üstad, 1. mesajı bu yönde güncelledim.
 
Üst