• DİKKAT

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

Sütun Adına Göre Tablodan Arama

  • Konbuyu başlatan Konbuyu başlatan vBlue
  • Başlangıç tarihi Başlangıç tarihi
Katılım
7 Eylül 2007
Mesajlar
62
Excel Vers. ve Dili
Excel 2010
Türkçe
İyi Günler.
"giriş" ve "rapor" adı ile 2 sayfam var. "giriş" sayfasında tarih ve bölgelere göre tablo var. "rapor" kısmında sabit olarak sadece tarih var. "rapor" sayfasından "giriş" sayfasındaki herhangi bir sütunu seçince (veri doğrulama ile seçilecek) o sütunun verilerinin gelmesini istiyorum.

örneğin "rapor" sayfasında c1 sütundan karadeniz bölgesi seçersem "giriş" sayfasındaki karadeniz sütunundaki veriler gelmesi gerekiyor. istediğim kadar da sütun seçerek bir rapor oluşturabileyim. yani rapor sayfasındaki c2 hücresine nasıl bir kod yazmalıyım.
Teşekkürler.

 
. . .

C2 hücresinde bölge seçildiğinde;

A sütunundaki tarihlere göre mi sonuçları getirecek yoksa
tarihleri hiç dikkate almadan ilgili bölge sütunundaki tüm verilerimi getirecek.

. . .
 
C1 hücresinden bölge seçilince c2 hücresinden itibaren giriş sayfasında yer alan o bölgenin tüm verilerini getirecek.
 
. . .

Veri doğrulamadaki seçenekler 5 tane mi, tablo durumuna göre artma durumu var mı.

. . .
 
Tablo durumuna göre artma ya da azalma olabilir.
 
. . .

Rapor sayfasının kod bölümüne yapıştırın.

C1 hücresindeki seçime göre arama yapar.
Giriş sayfasındaki 10.sütuna kadar kontrol eder.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.Address(0, 0) <> "C1" Then Exit Sub
    Dim SG As Worksheet: Set SG = Sheets("giriş")
    
    Application.ScreenUpdating = False
    
    For i = 3 To 10
        If SG.Cells(1, i) = Range("C1") Then
            SG.Range(SG.Cells(2, i), SG.Cells(Rows.Count, i)).Copy Range("C2")
            Exit For
        End If
    Next i
    
    Application.ScreenUpdating = True
End Sub

. . .
 
C sütunundan seçim yapınca tüm verileri C sütununa getiriyor. Ama D, E ve diğer sütunlardan seçim yapınca herhangi bir veri gelmiyor.
 
. . .

Ben sadece C sütununda raporlama istiyorsunuz sanmıştım.

Şu kodlar ile C-J aralığında seçim yaparak raporlama yapabilirsiniz.
Yine aynı şekilde Giriş Sayfasında C-J aralığını kontrol eder.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Intersect(Target, [C1:J1]) Is Nothing Then Exit Sub
   
    Application.ScreenUpdating = False
    
    Dim SG As Worksheet: Set SG = Sheets("giriş")
    'If Target.Value = "" Then Exit Sub
    sütun = Target.Column
    
    For i = 3 To 10
        If SG.Cells(1, i) = Target.Value Then
            SG.Range(SG.Cells(2, i), SG.Cells(Rows.Count, i)).Copy Cells(2, sütun)
            Exit For
        End If
    Next i
    
    Application.ScreenUpdating = True
End Sub

. . .
 
çok güzel oldu.
çok teşekkürler.
 
Merhaba,
Formül ile alternatif;
Kod:
=İNDİS(giriş!C2:G30;;KAÇINCI(rapor!C1;giriş!C1:G1;))
[COLOR="Blue"]Formül dizi formülüdür. CTRL + SHIFT + ENTER ile tamamlayınız.[/COLOR]

Not: Formülün doğru sonuç vermesi için RAPOR sayfası C2:C31 aralığını seçip formülü giriniz.
 
Geri
Üst