Çözüldü Kopyalarken Gizli satırlar alınmasın

nasyarx

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Selamlar,
Hazırladığım çizelgeleyi aynen kopyalıyorum. Çizelgede zamanla değişiklik oldu. Şuan ki kodlarda sayfa kopyalarken (Arşivle) gizli satırlar da alınıyor. Fakat gizli satırlar alınmasın istiyorum. Yardımcı olur musunuz?
 
Aleyküm selam,

Kodlarınızı çok anlayamadım lakin Yalnızca Görünür Hücreleri Kopyalama linkinde istediğinizin basit cevabı var.

Yalnızda görünür hücreleri kopyalamak için kopyalama işlemini:
Range("A1:A4").Copy yerine Range("A1:A4").SpecialCells(xlCellTypeVisible).Copy şeklinde yazmanız yeterli olur.

Dosyanızda eğer kopyalama işlemini, e.Range(alan).Copy yapıyorsa, e.Range(alan).SpecialCells(xlCellTypeVisible).Copy olarak değiştirip dener misiniz?
 
Sorunun kaynağı, SpecialCells(....visible) mevzusu değil de birleştirilmiş hücrelerin varlığı.

Diyelim A1:A4 birleştirilmiş, 3'üncü satır da bir şekilde (elle/makroyla/filtre uygulaması nedeniyle vs) gizlenmiş durumda.

Bu durumda görünen hücreler A1, A2, A4 oluyor. SpecialCells(...Visible) diyerek kopyala komutu verildiğinde bu komut çalışamaz.

Bence izlenmesi gereken yöntem;
sayfayı (en azından D4:AS & sonsatir alanını) bütün olarak kopyalayıp,
kaynak sayfadaki satırların SpecialCells(xlCellTypeVisible) ile kesişip kesişmediğinin denetimden geçirilip,
kaynak sayfada görünmeyen hücrelerin satırlarının hedef sayfada silinmesi.

.
 
Sn. @nasyarx

Madem bundan önceki mesajda izlenmesi gereken yöntem diye açıklama yazdım kod önerimi de yazayım dedim.
Mevcut kodda yer alan;
ay.[D4].PasteSpecial Paste:=xlPasteValues: ay.[D4].PasteSpecial Paste:=xlPasteFormats
satırının hemen altına aşağıdaki satırların eklenmesi yeterli olur gibi duruyor.
Bir-iki kenarlık sıkıntısı var galiba ama bunu da EKDERS sayfasındaki kenarlık ayarlarını gözden geçirerek halledersiniz sanırım.

VBA:
İçeriği görüntülemek için giriş yapmalısınız
(3 satır)
 
Ömer bey,
Bu şekilde sonuç verdi. alt kısımlar çıkmadı.
 

Ekli dosyalar

  • Image 2.webp
    Image 2.webp
    35.5 KB · Görüntüleme: 6
  • GÜN HESAPLAMA örnek (1) (1).xlsm
    GÜN HESAPLAMA örnek (1) (1).xlsm
    2.9 MB · Görüntüleme: 4
O kısmın silinme sebebi ; a değişkeninin tespit edildiği, kodun yukarı kısmındaki ilgili satır ve
sütun genişliklerinin düzenlendiği For...Next döngüsünden sonraki With ay....End with içerisindeki yapı.

-- Kodun üst tarafındaki a değişkeni başka yerde gerekmiyorsa, kodun üst taraflarındaki
ax = .[K2] + 1: a = WorksheetFunction.Match(ax, .[D:D], 0)
satırını
ax = .[K2] + 1: a = e.Cells(Rows.Count, 5).End(3).Row
şeklinde değiştirin.

-- With ay....End with kısmını da şöyle değiştirin.

VBA:
İçeriği görüntülemek için giriş yapmalısınız
(4 satır)
 
Tamirat zor iş @nasyarx
Olması gerekeni (ney silinecek, ney silinmeyecek) bilmediğim için tahmin yürütüyorum.
O zaman üstte a değişkenine ait satırı eski haline getirin ama With ay ..... End With içerisindeki
ikinci satırda yer alan .Rows(a & ":" & st).Delete: .Rows("7:8").Delete kısmını (o satırın gerisi kalsın) kısmını devre dışı bırakın.
 
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
8
Üst