Çözüldü Kod İsteği

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
776
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Merhaba;

Aşağıdaki kod ile filtre sonucu çıkan verileri kopyalayıp bir başka sayfaya yapıştırıyorum.
Filtre sonucu veri çıkarsa sorunsuz çalışıyor ama veri yoksa yapıştırma kodunda hata veriyor.

Bu hatayı almayacağım şekilde kodu düzeltebilir misiniz ?

ActiveSheet.Range("$A$1:$E$50000").AutoFilter Field:=2
ActiveSheet.Range("$A$1:$E$50000").AutoFilter Field:=3, Criteria1:="<0", _
Operator:=xlAnd
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveSheet.Next.Select
Range("B40000").Select
ActiveSheet.Paste
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,759
Excel Vers. ve Dili
Excel 2019 Türkçe
Kodların başına aşağıdaki satırı ekleyip deneyin.
Kod:
If WorksheetFunction.CountA(Columns(1)) < 1 Then MsgBox "filtrelenecek veri yok": Exit Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,674
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Verdiğiniz kod B40000 hücresine kopyalıyor herhangi bir yanlışlık yok değil mi..

Aşağıdaki kodu deneyiniz.
Kod:
Sub Filtrele_Kopyala()
    With Range("A1:E" & Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row)
        .AutoFilter 3, "<0"
        If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
            Range("A2").Resize(Cells(Rows.Count, "A").End(xlUp).Row).Copy ActiveSheet.Next.Range("B40000")
        End If
    End With
    Me.ShowAllData
End Sub
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
776
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Kodları denedim ama istediğim sonuçlara ulaşamadım.
Ekte örnek bir dosya hazırladım.
C sütununda tutarların bir kısmını eksi yapıp, makroyu çalıştırınca Sayfa2 ye A hücresine tarihi kopyalamalı.
Aynı şekilde C sütununda tutarlar eksi değilken de makro hata vermeden çalışmalı
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,674
Excel Vers. ve Dili
2019 Türkçe
Sizin yazdığınız kod kopyalanan tarihleri B40000 hücresine kopyalıyor. Bunu önceki mesajımda da söyledim. Ben de kodu ona göre yazdım sorunsuz çalışıyor.

Ne yapmak istediğinizi iyi anlayabilmek için şunları sorayım.
1- Kopyalanan tarihler nereye yapıştırılacak?
2- Kopyalamadan önce eski veriler Sayfa2 den silinecek mi yoksa önceki verinin altına mı kopyalanacak?
3- Sadece A sütunundaki tarihler mi kopyalanacak?
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
776
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
1 - Sayfa2 de A2 hücresine yapıştırılacak
2 - Sayfa2 de eski veri olmayacak, dolayısı ile silme işlemide yok.
3 - C ve E sütunundaki verilerde kopyalanacak. Tarih verisi kopyalanırsa eğer diğerlerini kendim hallederim diye yazmadım.
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
776
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Muzaffer Ali Bey;

Çok özür dilerim, tarihi kopyalıyor, neden farkedemedim hala anlamadım.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,674
Excel Vers. ve Dili
2019 Türkçe
Gene soru işaretleri var.
Tam olarak yapmak istediğiniz şeyi anlatsanız aslında daha doğru olur.

Aşağıdaki kodu deneyin.
Kod:
Sub Filtrele_Kopyala()
    Dim SonSatir As Long
    With Range("A1:E" & Cells(Rows.Count, "A").End(xlUp).Row)
        .AutoFilter 3, "<0"
        If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
            SonSatir = Cells(Rows.Count, "A").End(xlUp).Row
            Range("A" & SonSatir & ",C" & SonSatir & ",E" & SonSatir).Copy Worksheets("Sayfa2").Range("A2")
        End If
    End With
    Me.ShowAllData
End Sub
 
Üst