• DİKKAT

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

Excel Makro DataGrid Veri Çekme

Katılım
13 Kasım 2010
Mesajlar
17
Excel Vers. ve Dili
Exel 2003
Exel 2007
Merhaba;

Ben Bir Pörtföy Oluşturmak İstiyordum Her Müşteri İçin Tek Tek Sekme Açıyordum Fakat Forumda SelectBox Değer Çekilen Bir Uygulama Gördüm Ve DataGrid Oluşturarak Yapya Karar Verdim Ama Bir Türlü Yapamadım

1 . Bu Select Box Nasıl Yapılmış (Ben Kopyala Yapıştırla Aldım) Ve Satır Sınırı Var Sanırım Bunu Sonsuz Nasıl Yapılır ?

2 Cisi Ben Ben Çektigim Sonucu A5 D3 G6 Gibi İstedigim Yerlere Nasıl Yazarım Ekte Var Yardımcı Olursanız Sevinirim

Data Sekmesindeki Veriyi Pörtföy Sekmesindeki Alanlara Nasıl Yazdırırım ?

Makro İle Yapılmayınca Veri Arttıkça Sıkıntı Oluyormuş


Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Bul As Range
    On Error GoTo Son
    If Intersect(Target, Range("C5:C65536")) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Target.Offset(0, -1) = "adı soyadı" And Target <> "" Then
        Set Bul = Sheets("data").Range("B:B").Find(Target, LookAt:=xlWhole)
        If Not Bul Is Nothing Then
            Target.Offset(1, 0) = Bul.Offset(0, 1)
            Target.Offset(2, 0) = Bul.Offset(0, 2)
            GoTo Son
        Else
            MsgBox Target & " isimli kayıt bulunamamıştır !", vbCritical
            GoTo Son
        End If
    Else
        Target.Offset(1, 0).ClearContents
        Target.Offset(2, 0).ClearContents
    End If
Son:
    Set Bul = Nothing
    Application.EnableEvents = True
End Sub


Forumda Korhan Ayhan Arkadaşımız Bu Şekilde Bir Çzöüm Yolu Üretmiş Ama Ben İstedigim Veriyi İstediği Hicreye Nasıl Yazarım Onu bulamadım Düşey Ara İle Çoklu Veri Sıkıntı Oldugu Doğrumudur ?
 

Ekli dosyalar

Merhaba,

Esasında bunun için makro kullanmanıza gerek yok. Excelin kendi işlevleri ve fonksiyonlarıyla bu istedikleriniz yapılabilir.

Ekteki dosyaya göre yapılanları açıklamaya çalışayım.

Öncelikle Data sayfasındaki B sütunu dinamik alan ile tanımlama işlemini yapalım, dinamik alandan kastım B sütununa yeni veri girdikçe listemize dahil etmektir.

Örneğin ekteki haliyle B2:B5 aralığı listemizde ( Select Box ) olarak listelenir. B6 hücresine yeni bir değer girerseniz B2:B6 olarak otomatik değişecektir.Dinamik alandaki amaç budur.

Ekteki dosyada Ekle / Ad / Tanımlaya girerek alan ( alan adını değiştirebilirsiniz ) adı vererek başvuru bölümündeki formül ile dinamik alan oluşturulur. ( Formülün detayına şimdilik girmiyeyim )

Dinamik alan için kullanılan formül,


Kod:
=KAYDIR(Data!$B$2;;;BAĞ_DEĞ_DOLU_SAY(Data!$B:$B)-1)
kendi çalışmanızda hücre ve sayfa adlarını değiştirerek dosyanıza uyarlayabilirsiniz.

Alanı alan ismi vererek oluşturduktan sonra şimdi listeleme olayına geçelim.

Listelemenin gözükmesini istediğiniz hücreye gidin ( ekteki dosyada bu hücre, Müşteri Pörtföyü sayfasında K7 hücresidir),

Bu hücredeyken Veri / Doğrulama menüsüne girerek izin verilenden "Liste" yi seçip kaynak bölümüne,

=alan

yazarsanız artık data sayfasındaki istediğiniz listeleme olacaktır.

Adres ve Vergi numaraları için istediğiniz bilgileri ise bu seçime göre düşeyara fonksiyonu ile kolaylıkla alabilirsiniz.

H11 hücresi Adres için,

Kod:
=DÜŞEYARA($K$7;Data!$B:$D;2;0)
K15 hücresi VergiNumarası için,

Kod:
=DÜŞEYARA($K$7;Data!$B:$D;3;0)
Formüllerin ve diğer açıklamalarımın detaylı bilgisini Excel Dersanesi bulabilirsiniz.

Ekteki dosyada formüller ve bu anlattıklarım mevcuttur. İncelip anlamadığınız yada eklenecek bir bölümü varsa belirtirseniz yardımcı olmaya çalışırım.

Not: Daha önce sorduğunuz başlıktaki verdiğim cevabı buraya kopyalayıp diğer konudaki son sorunuzu kaldırdım. Konu takibi açısından aynı konuyla ilgili birden fazla konu başlığında soru sormamaya özen göstermenizi rica ederim.

.
 

Ekli dosyalar

Allah Razı Olsun Senden Çok Yardımcı Oldun Hocam Ben Bişey Daha Öğrenmek İstiyorum

Şimdi Ben Data Sekmesindeki Verileri Çektikten Müşteri Bilgi Sayfasında Yaklaşık 10 İşlem Yaptırıp Müşterinin Kar Zarar Analizini Yapıyorum.

Fakat Ayrı Bir Sayfada Bu Analize Göre En Çok Zarar Eden Veya En Çok Kar Eden Diye Bir Tablo Yapabilirmiyim ?

Ama Bu İşlemi Yaparken Data Sekmesinde Bir İşlem Yapmamız Gerek Çünkü Ben Data Sekmesini Mikrodan Çektiğim İçin Sürekli Değişecek

Örnek Tablom Ektedir Hocam Kar Zarar Durumunda Yazan Değere Göre Top 20 Şeklinde Olurmu
 

Ekli dosyalar

Eki inceleyiniz.

İstediğiniz bu mu?

.

Ama Bu İşlemi Yaparken Data Sekmesinde Bir İşlem Yapmamız Gerek Çünkü Ben Data Sekmesini Mikrodan Çektiğim İçin Sürekli Değişecek

Şu haliyle gerekli işlemleri ben yaptım fakat data yı başka biryerden makro ile çekiyorsanız, çektiğiniz kodların devamı olarak end sub satırından önce aşağıdaki kodları da ekleyiniz.

Kod:
    With Sheets("CostumerData")
        son = .Cells(Rows.Count, "B").End(xlUp).Row
        .Range("B2:G" & son).Sort .Range("G2"), xlDescending
    End With

.
 

Ekli dosyalar

Hocam Ben Mikro Kullanıyorum Tüm Cari Bilgilerim MS SQL Den Alıyorum Ve Örnekli Gösterim Yapamayacağımdan Data Sekmesi Açtım O Yüzden Bir İşlem Yapmıyorum Üzerinde.

Benim Çektigim Veri Üzerinde Müşterinin Bana Tam Karını Vermiyor Ben Bunu Exelde CostumerInfo Sayfasında Yapıyorum. Benim Aldığım Veriler

+ Müşteri Benden Ne Kadar Ürün Almış
+ Yüzde Kaç İskonto İle Almış
+ Stand Masrafı
+ Uzman Masrafı
+ Yemek Parası
+ Yol Parası
+ Siğortası
+ Diğer Giderler

Vb Yaklaşık 25 30 İşlem Yapıyorum CostumerInfo Sayfasında O Yüzden Benim Top20 Tarzı Olan Sayfamı CostumerInfo Sayfamdaki Kar Zarar Durumu Sonucu Üzerinden Yapmam Lazım Eğer Olursa.

İkincisi Yazdığınız Bu SelectBox Kodunu Harfe Göre Sıralatamazmıyız ?
Kod:
=KAYDIR(Data!$B$2;;;BAĞ_DEĞ_DOLU_SAY(Data!$B:$B)-1)

Not :
Olmassa CostumerInfo Sayfasına Uyguladıgım 25 30 Formulu Tek Bi Hücrede Toplayarak Sonuc Almalı Ve O Sonuca Göre Sort İle Makroda Sıralatıp Top 20 Ona Göre Yapmalıyım Ve Bunu Yapmam İçinde Bir Data Sayfam Olmalı Mutlaka :)

Başını Ağrıttığımı Biliyorum Ama Tam 48 Saattir Pc Başındayım Çözmek İçin
 
Dorğulamadaki verileri formül ile sıralatmanız için yardımcı sütun kullanmanız gerekir. Dosyanızda makro kullandığınız için bu sıralamayı da makro ile yapmanızı tavsiye ederim.

.
 
Açıklamalarınız çok anlaşılır olduğu için teşekkür ederim forumda saatlerdir dolanıyorum
bukadar yalın anlatım bulamamıştım
 
Geri
Üst