• DİKKAT

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

Bilgileri ana sayfaya taşıma

zerali

Altın Üye
Katılım
30 Ocak 2013
Mesajlar
422
Excel Vers. ve Dili
2010 türkçe
Arkadaşlar benim yapmak istediğim B1 deki isme tıkladığımda aşağıdaki sayfalardan bilgilerin alınıp bu sayfaya taşınması .Nasıl bir formülle alabilirim. Teşekkürler
 

Ekli dosyalar

B1'deki isme tıklamadan direkt tüm sorguyu Düşeyara ile yapabilirsiniz. Örnek bir düşeyara yazıyorum.

=DÜŞEYARA(B1;DENEMELER!B4:F34;2;YANLIŞ)

EĞER BUNU MAKRO İLE YAPMAK İSTERSENİZ MAKROSU DA ŞU

Kod:
ilk = 5
son = Range("A" & Rows.Count).End(xlUp).Row

arama = 26
arama2 = 27

ilk1 = 2
son1 = Sayfa2.Range("B" & Rows.Count).End(xlUp).Row

yer = ilk

Range("B5:P22").ClearContents

For v = ilk To son
Range("B" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa2.Range("B2:BM39"), arama, False)
Range("C" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa2.Range("B2:BM39"), arama2, False)
arama = arama + 2
arama2 = arama2 + 2
yer = yer + 1
Next v

ÖNEMLİ NOT: Burada sizin istediğiniz gibi değeri C50'den almadım. Sayfanın başındaki listeden AA hücresinden başlatarak aldım.

Dosyanız:
https://www.dosyaupload.com/59ye
 
Çok teşekkür ederim Taner hocam.Yalnız sadece bir sayfayı aktarıyor diğer sayfaları da aktarma şansı olabilir mi acaba?
 
Çok teşekkür ederim Taner hocam.Yalnız sadece bir sayfayı aktarıyor diğer sayfaları da aktarma şansı olabilir mi acaba?

Niyetim bu kodu siz deneme-yanılma yoluyla öğrenin diye bu şekilde yazdım. İstiyorsanız tüm excel'i ayarlayıp atayım size. Ama bu size bu işi öğretmez ve benzer sorunlarda sürekli yardım aramak zorunda bırakır.
 
İstediğiniz şekilde ayarlardım. Kodların son hali aşağıda.

Bir hata ya da, "şu şöyle olsaydı" dediğiniz bir şey olursa yazarsanız yardımcı olmaya çalışayım.

http://dosya.co/4npef39g8rnb/2-D_Neler_Ögrendim_Hikaye_Sınavları.xlsm.html

Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
ilk = 5
son = Range("A" & Rows.Count).End(xlUp).Row

arama = 26
arama2 = 27
arama3 = 2
arama4 = 3


ilk1 = 2
son1 = Sayfa2.Range("B" & Rows.Count).End(xlUp).Row

yer = ilk

Range("B5:P22").ClearContents

For v = ilk To son
Range("B" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa2.Range("B2:BM39"), arama, False)
Range("C" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa2.Range("B2:BM39"), arama2, False)
Range("E" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa3.Range("B2:BM39"), arama, False)
Range("F" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa3.Range("B2:BM39"), arama2, False)
Range("H" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa4.Range("B2:BM39"), arama, False)
Range("I" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa4.Range("B2:BM39"), arama2, False)
Range("K" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa5.Range("B5:V37"), arama3, False)
Range("L" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa5.Range("B5:V37"), arama4, False)
Range("N" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa6.Range("B5:V37"), arama3, False)
Range("O" & yer).Value = Application.WorksheetFunction.VLookup(Range("B1"), Sayfa6.Range("B5:V37"), arama4, False)
arama = arama + 2
arama2 = arama2 + 2
arama3 = arama3 + 2
arama4 = arama4 + 2
yer = yer + 1
Next v

End Sub
 
Çok teşekkürler Taner hocam.Elinize sağlık.Formülle yapmak istersem sadece sayfa adını mı değiştirmem gerekiyor.Formülün bir açıklaması var mı?
 
Formülden kastınız düşeyara ise

Kod:
=DÜŞEYARA(B1;DENEMELER!B4:F34;2;YANLIŞ)

Buradaki DENEMELER, B1 sütununda yazan değerin hangi sayfada aranacağı demektir. Bu formülde kısaca şunu diyor;

B1 = Bu değeri ara
DENEMELER!B4:F34 = DENEMELER sayfasındaki B4:F34 aralığında ara
2 = Eğer bulursan, (B4, birinci hücre sayılır) 2.hücrenin değerini yaz
YANLIŞ = B1'de ki değeri tam eşleştir. Yani kısmi arama yapma.

Bu formülü örneğin Test1'deki ilk satıra yazıyoruz. O zaman DENEMELER'deki Test1 sınav sonucunu oraya getirir. Her B1'deki isim değiştiğinde otomatik günceller.

Edit: Makro'da döngü yapabildiğimiz için tek tek hücre belirtmiyoruz. O yüzden formül ile yapacaksanız, her hücreye hangi sayfada ne arayacağını ve bulunca hangi değeri o hücreye getireceğini belirtmelisiniz.

Umarım anlatabilmişimdir :) İlk defa kullanacak birisine karışık gelebilir. Bir kaç deneme-yanılma yöntemiyle rahatça çözersiniz.
 
Çok teşekkürler hocam Gelen rakamlara göre SONUÇ bölümüne "çok iyi.çok çalışmalısın vb yazdırma ve bunun gelen sayıya göre değişmesini yapabilir miyim? Yoksa Bunun için ayrı bir sütun mu yapmalıyım?
 
Düşeyara komutu mevcut satırda arama yaptığı için eğer DENEMELER sayfasında, üstte oluşturduğunuz D - S hücrelerine Çok İyi vb sonuçları yazdıracak alan açarsanız, kodları tekrar güncellerim. Yoksa onu başka nasıl alırsınız bilmiyorum.
 
Taner hocam =DÜŞEYARA(B1;DENEMELER!B4:F34;2;YANLIŞ) bir de şunu öğrenmek istiyorum.Bu yazılı formülü kolayca nasıl çoğaltabilirim.Tek tek formülü uygulama çok zor oluyor.Özellikle aşağıya doğru.
 
Hücreyi kopyalayıp aşağıdaki hücreye yapıştırırsanız, içindeki koduda kopyalar. Ama rakamları kaydırır. Örn:
=DÜŞEYARA(B1;DENEMELER!B4:F34;2;YANLIŞ) Bunu bir alt satıra kopyaladığınız da
=DÜŞEYARA(B2;DENEMELER!B5:F35;2;YANLIŞ) yapar.

Bunun önüne geçmek için Hücre olarak belirttiğiniz aralığa sabitleme kodu eklemelisiniz. Yani şöyle
=DÜŞEYARA($B$1;DENEMELER!$B$4:$F$34;2;YANLIŞ)
 
Verdiğiniz bilgiler için çok teşekkür ederim Taner hocam.Sizi bayağı yordum.Güncelleme işini yarına akşama bıraksam yine yardımcı olabilir misiniz?Sütun ekleme ve formülleme biraz uzun sürecek gibi.
 
Verdiğiniz bilgiler için çok teşekkür ederim Taner hocam.Sizi bayağı yordum.Güncelleme işini yarına akşama bıraksam yine yardımcı olabilir misiniz?Sütun ekleme ve formülleme biraz uzun sürecek gibi.

Yükleme sitelerinden birine yükleyip buraya atın, ben sürekli bakıyorum zaten. Müsait olduğum ilk an güncellemesini yaparım.
 
Geri
Üst