Soru Sekmelerden makro ya da formüller yardımıyla veri çekme

Katılım
21 Ocak 2008
Mesajlar
321
Excel Vers. ve Dili
Excel 2013 / Türkçe
Basit bir örneğini eklediğim, müşteri carilerini tuttuğum bir dosyam var. En sağdaki "Ozet" sekmesinde, tüm hücrelerdeki değerler, ilgili sekmelerden, elle referans göstererek oluşturmuş olduğum formüllerle çekiliyor.

Orjinal dosyamda 200 küsür müşteri carisi saklanmakta.

Ozet sayfasında bakiyesi sıfır olan firmaların listelenmesini istemiyorum. Ayrıca her yeni müşteri ekleme işlemi sırasında, yeni sekmelerden "Ozet" sekmesine veri çekmek de oldukça angarya olmakta.

Excelin, formül ya da makro yardımıyla tüm bu işlemleri otomatik olarak yapabileceğini düşündüm.

Yani formül ya da makro şu 2 işi otomatik olarak yapabilir mi?

a) Yeni bir müşteri için cari sekme oluşturduğumda, o müşteriye ait kaydı ve verileri "Ozet" sayfasına otomatik olarak çekebilir mi?
b) "Ozet" sekmesinde, sadece bakiyesi "sıfırdan büyük" olan müşterileri otomatik olarak listeleyebilir mi? (Örnek dosyada 10. satırdaki "E" isimli müşterinin otomatik olarak listelenmemesi gibi)


 

qlue01

Altın Üye
Katılım
17 Kasım 2024
Mesajlar
7
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
17-11-2025
Merhaba,

Aşağıdaki makroyu Cari sayfasında ki bir butona atayıp dener misiniz ?

NOT : Cari sayfası her zaman sonuncu (en sağdaki) sayfa olmalıdır. Makro kodu buna göre işlem yapacaktır. Soldan başlayarak en sağda ki sayfa hariç tüm sayfaların bilgilerini, en sağda ki sayfada toplayacaktır.


Kod:
Sub veri_getir()
    Dim sayfasayi As Integer
    Dim scari As Worksheet
    Dim i As Integer
    Dim s As Integer
    Dim sonsat As Integer
    Dim sonsat2 As Integer
    sayfasayi = ThisWorkbook.Sheets.Count
    Set scari = ThisWorkbook.Sheets(sayfasayi)
    For i = 1 To sayfasayi - 1
        sonsat2 = scari.Range("C15000").End(3).Row + 1
        If Sheets(i).Cells(5, 11) <> 0 Then
        scari.Cells(sonsat2, 2) = Sheets(i).Cells(2, 3)
        scari.Cells(sonsat2, 3) = Sheets(i).Cells(5, 6)
        scari.Cells(sonsat2, 4) = Sheets(i).Cells(5, 10)
        scari.Cells(sonsat2, 5) = Sheets(i).Cells(5, 11)
        Else
        End If
    Next i
    sonsat = scari.Range("B15000").End(3).Row
    For s = 6 To sonsat
        If scari.Range("E" & s) = "0" Then
                scari.Range("B" & s & ":E" & s).Value = ""
        Else
        End If
    Next s
End Sub
 
Katılım
21 Ocak 2008
Mesajlar
321
Excel Vers. ve Dili
Excel 2013 / Türkçe
Çalıştı, ilginize çok çok teşekkürler ediyorum.

Bu saate kadar dönemediğim için özür dilerim, bütün gün dışardaydım, ancak bakabildim...
 
Üst