• DİKKAT

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

Çözüldü Kod İsteği

Katılım
17 Aralık 2008
Mesajlar
780
Excel Vers. ve Dili
Microsoft 365
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
 
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
 
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
 
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

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?
 
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.
 
Muzaffer Ali Bey;

Çok özür dilerim, tarihi kopyalıyor, neden farkedemedim hala anlamadım.
 
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
 
Geri
Üst