• DİKKAT

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

excelde numara girerek birden çok veri getirmek

  • Konbuyu başlatan Konbuyu başlatan henbl
  • Başlangıç tarihi Başlangıç tarihi
Katılım
25 Ocak 2012
Mesajlar
80
Excel Vers. ve Dili
2010 türkçe
Arkadaşlar yardımınıza ihtiyacım var.ekte excel dosyam var.dosyam 2 sayfadan oluşuyor.biri sorgu sayfası diğeri bordro sayfası.


bordro sayfasında kişilere ait maaş bilgileri bulunmakta.ben örnek olsun diye 6 kişilik yaptım ama bu sayı 2000lere kadar ulaşmakta.


sorgu sayfasında ki mor hücreye bordro sayfasında olan bir sicili yazdığım zaman sarı hücrelere yine sorgu sayfasındaki maaş bilgilerinin otomatik gelmesini istiyorum.

Not : Bu bir maaş bordrosu olduğundan aylık değişmektedir.bu yüzden bordro sayfasında ki bilgiler aylık değişmektedir.BU YÜZDEN HER AY AYNI SİSTEMİN İŞLEMESİ GEREKMETEDİR.ŞİMDİDEN İLGİLENEN ARKADAŞLARA TEŞEKKÜR EDERİM.
 

Ekli dosyalar

Merhaba,

B5 hücresine aşağıdaki formülü uygulayıp deneyiniz. Formülü diğer hücrelerede sürükleyiniz.

Kod:
=KAYDIR('BORDRO SAYFASI'!$A$1;KAÇINCI(SORGU!$A$5;'BORDRO SAYFASI'!$B:$B;0)-2+SATIRSAY(B$5:B5);SÜTUN())
 
bordrolar birden çok sayfadaysa nasıl bi formül uygulayabilirim acaba
 
Merhaba,

Bu durumda makro kullanmak faydalı olacaktır. Sizin için bir fonksiyon tasarladım.

Boş bir modüle uygulayınız.

Kod:
Option Explicit
 
Function SAYFALARDA_ARA(Aranan_Veri As Range, _
                    Aranacak_Sutun_Indisi As Integer, _
                    Sutun_Indis_Sayisi As Integer, _
                    Satir_Indis_Sayisi As Long)
    Dim Sayfa As Worksheet, Bul As Range
    
    For Each Sayfa In ThisWorkbook.Worksheets
        If Sayfa.Name <> ActiveSheet.Name Then
            Set Bul = Sayfa.Range(Sayfa.Cells(1, Aranacak_Sutun_Indisi), Sayfa.Cells(Rows.Count, Aranacak_Sutun_Indisi)).Find(Aranan_Veri, , , xlWhole)
            If Not Bul Is Nothing Then
                SAYFALARDA_ARA = Sayfa.Cells(Bul.Row + Satir_Indis_Sayisi, Bul.Column + Sutun_Indis_Sayisi)
                Exit For
            End If
        End If
    Next
End Function

Hücrede kullanım şekli;

Kod:
=SAYFALARDA_ARA(Aranan_Veri;Aranacak_Sütun_Numarası;[COLOR=red]Sütun_İndisi;Satır_İndisi[/COLOR])

Kırmızı renkli ölçütler aranan verinin bulunduğu sayfadaki hangi satırdaki ve sütundaki karşılığını almak istediğinizi ifade eder. Biraz denemeler yaparak mantığını anlayabilirsiniz.

Uygulamalı örnek dosya ektedir.
 

Ekli dosyalar

Korhan bey çok tesekkür ederim ilginiz için.benim yüklediğim dosya bir örnekti.amacım ordan öğrenip kendim uygulamaktı.ama dediklerinizi yapamadım.şimdi asıl dosyamı yüklüyorum rica etsem tekrar bakar mısınız.

1-)kırmızı yere sicil yazıldığında sarı yerleri dolduracak.bilgileri 1,2,3..... Sayfaalrından alacak.önce dediğim gibi bu 100 sayfa olabilir ve her ay değişecek bilgiler.


2-) sicile ait bilgilerin olanlarını atmasını istiyorum.örneğin kişinin icra kesintisi yoksa sorgu sayfasındaki o alan boş kalacak.

örnek dosya 2 sayfadan oluşuyor mecburen.yoksa dosya boyutu büyük geliyor.yukardada belirttiğim gibi dosyam 50-60 sayfadan oluşacak



tesekkür ederim.
 

Ekli dosyalar

Merhaba,

Orjinal dosyanızda aşırı derecede birleştirilmiş hücre kullanılmış. Excelde birleştirilmiş hücreler hep sorun çıkarır. Bu sebeple çözümü makro ile aramakta fayda var.

Direk bir butona yazılacak kod ile veriler "SORGU" sayfasına aktarılabilir. Böylece dosyanızda gereksiz yere boyut büyümesi ve ağırlaşma yaşamazsınız.
 
tesekkür ederim ilginiz için.daha öncede makro kullanmamı tavsiye etmiştiniz.ama ben gerkli makroyu uygulayamadım.yardımcı olur musunuz lütfen
 
Bir satır için örnek veri doldurup örnek dosyanızı yenilermisiniz. Kodu sürekli revize etmeyelim. Vereceğiniz örneğe göre düzenleyelim.
 
Aşağıdaki kodu bir butona atayıp deneyiniz.

Kod:
Sub AKTAR()
    Dim S1 As Worksheet, Sayfa As Worksheet
    Dim X As Long, Bul As Range
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    Set S1 = Sheets("SORGU")
    S1.Select
    
    For X = 14 To S1.Cells(S1.Rows.Count, 1).End(3).Row - 1 Step 5
        If S1.Cells(X, 4) <> "" Then
            For Each Sayfa In ThisWorkbook.Worksheets
                If Sayfa.Name <> "SORGU" Then
                    Set Bul = Sayfa.Cells.Find(S1.Cells(X, 4), , , xlWhole)
                    If Not Bul Is Nothing Then
                        S1.Cells(X + 1, 4) = Sayfa.Cells(Bul.Row + 1, 4)
                        S1.Cells(X + 2, 4) = Sayfa.Cells(Bul.Row + 2, 4)
                        S1.Cells(X + 3, 4) = Sayfa.Cells(Bul.Row + 3, 4)
                        
                        S1.Cells(X - 2, 14) = Sayfa.Cells(Bul.Row - 2, 14)
                        S1.Cells(X - 1, 14) = Sayfa.Cells(Bul.Row - 1, 14)
                        S1.Cells(X - 2, 17) = Sayfa.Cells(Bul.Row - 2, 17)
                        S1.Cells(X - 1, 17) = Sayfa.Cells(Bul.Row - 1, 17)
                        S1.Cells(X + 1, 14) = Sayfa.Cells(Bul.Row + 1, 14)
                        S1.Cells(X + 2, 11) = Sayfa.Cells(Bul.Row + 2, 11)
                        S1.Cells(X + 3, 11) = Sayfa.Cells(Bul.Row + 3, 11)
                        
                        S1.Cells(X - 1, 20) = Sayfa.Cells(Bul.Row - 1, 20)
                        S1.Cells(X, 20) = Sayfa.Cells(Bul.Row, 20)
                        S1.Cells(X + 1, 20) = Sayfa.Cells(Bul.Row + 1, 20)
                        S1.Cells(X + 2, 20) = Sayfa.Cells(Bul.Row + 2, 20)
                        S1.Cells(X + 3, 20) = Sayfa.Cells(Bul.Row + 3, 20)
        
                        S1.Cells(X - 1, 24) = Sayfa.Cells(Bul.Row - 1, 24)
                        S1.Cells(X, 24) = Sayfa.Cells(Bul.Row, 24)
                        S1.Cells(X + 1, 24) = Sayfa.Cells(Bul.Row + 1, 24)
                        S1.Cells(X + 2, 24) = Sayfa.Cells(Bul.Row + 2, 24)
                        S1.Cells(X + 3, 24) = Sayfa.Cells(Bul.Row + 3, 24)
    
                        S1.Cells(X - 1, 28) = Sayfa.Cells(Bul.Row - 1, 28)
                        S1.Cells(X, 28) = Sayfa.Cells(Bul.Row, 28)
                        S1.Cells(X + 1, 28) = Sayfa.Cells(Bul.Row + 1, 28)
                        S1.Cells(X + 2, 28) = Sayfa.Cells(Bul.Row + 2, 28)
                        S1.Cells(X + 3, 28) = Sayfa.Cells(Bul.Row + 3, 28)
    
                        S1.Cells(X - 1, 33) = Sayfa.Cells(Bul.Row - 1, 33)
                        S1.Cells(X, 3) = Sayfa.Cells(Bul.Row, 33)
                        S1.Cells(X + 1, 33) = Sayfa.Cells(Bul.Row + 1, 33)
                        S1.Cells(X + 2, 33) = Sayfa.Cells(Bul.Row + 2, 33)
                        S1.Cells(X + 3, 33) = Sayfa.Cells(Bul.Row + 3, 33)
    
                        S1.Cells(X - 1, 37) = Sayfa.Cells(Bul.Row - 1, 37)
                        S1.Cells(X, 37) = Sayfa.Cells(Bul.Row, 37)
                        S1.Cells(X + 1, 37) = Sayfa.Cells(Bul.Row + 1, 37)
                        S1.Cells(X + 2, 37) = Sayfa.Cells(Bul.Row + 2, 37)
                        S1.Cells(X + 3, 37) = Sayfa.Cells(Bul.Row + 3, 37)
    
                        S1.Cells(X - 1, 41) = Sayfa.Cells(Bul.Row - 1, 41)
                        S1.Cells(X, 41) = Sayfa.Cells(Bul.Row, 41)
                        S1.Cells(X + 1, 41) = Sayfa.Cells(Bul.Row + 1, 41)
                        S1.Cells(X + 2, 41) = Sayfa.Cells(Bul.Row + 2, 41)
                        S1.Cells(X + 3, 41) = Sayfa.Cells(Bul.Row + 3, 41)
    
                        S1.Cells(X - 1, 45) = Sayfa.Cells(Bul.Row - 1, 45)
                        S1.Cells(X, 45) = Sayfa.Cells(Bul.Row, 45)
                        S1.Cells(X + 1, 45) = Sayfa.Cells(Bul.Row + 1, 45)
                        S1.Cells(X + 2, 45) = Sayfa.Cells(Bul.Row + 2, 45)
                        S1.Cells(X + 3, 45) = Sayfa.Cells(Bul.Row + 3, 45)
    
                        S1.Cells(X - 1, 49) = Sayfa.Cells(Bul.Row - 1, 49)
    
                        S1.Cells(X - 1, 54) = Sayfa.Cells(Bul.Row - 1, 54)
                        S1.Cells(X, 54) = Sayfa.Cells(Bul.Row, 54)
                        S1.Cells(X + 1, 54) = Sayfa.Cells(Bul.Row + 1, 54)
                        S1.Cells(X + 2, 54) = Sayfa.Cells(Bul.Row + 2, 54)
                        S1.Cells(X + 3, 54) = Sayfa.Cells(Bul.Row + 3, 54)
    
                        S1.Cells(X - 1, 58) = Sayfa.Cells(Bul.Row - 1, 58)
                        S1.Cells(X, 58) = Sayfa.Cells(Bul.Row, 58)
                        S1.Cells(X + 1, 58) = Sayfa.Cells(Bul.Row + 1, 58)
                        S1.Cells(X + 2, 58) = Sayfa.Cells(Bul.Row + 2, 58)
                        S1.Cells(X + 3, 58) = Sayfa.Cells(Bul.Row + 3, 58)
    
                        S1.Cells(X - 1, 62) = Sayfa.Cells(Bul.Row - 1, 62)
                        S1.Cells(X, 62) = Sayfa.Cells(Bul.Row, 62)
                        S1.Cells(X + 1, 62) = Sayfa.Cells(Bul.Row + 1, 62)
                        S1.Cells(X + 2, 62) = Sayfa.Cells(Bul.Row + 2, 62)
                        S1.Cells(X + 3, 62) = Sayfa.Cells(Bul.Row + 3, 62)
    
                        S1.Cells(X - 1, 66) = Sayfa.Cells(Bul.Row - 1, 66)
                        S1.Cells(X, 66) = Sayfa.Cells(Bul.Row, 66)
                        S1.Cells(X + 1, 66) = Sayfa.Cells(Bul.Row + 1, 66)
                        S1.Cells(X + 2, 66) = Sayfa.Cells(Bul.Row + 2, 66)
                        S1.Cells(X + 3, 66) = Sayfa.Cells(Bul.Row + 3, 66)
    
                        S1.Cells(X - 1, 70) = Sayfa.Cells(Bul.Row - 1, 70)
                        S1.Cells(X, 70) = Sayfa.Cells(Bul.Row, 70)
                        S1.Cells(X + 1, 70) = Sayfa.Cells(Bul.Row + 1, 70)
                        S1.Cells(X + 2, 70) = Sayfa.Cells(Bul.Row + 2, 70)
                        S1.Cells(X + 3, 70) = Sayfa.Cells(Bul.Row + 3, 70)
    
                        S1.Cells(X - 1, 74) = Sayfa.Cells(Bul.Row - 1, 74)
                        S1.Cells(X - 1, 78) = Sayfa.Cells(Bul.Row - 1, 78)
                    End If
                End If
            Next
        End If
    Next
    
    Set Bul = Nothing
    Set S1 = Nothing
    
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Hocam dediğinizi yaptım ama getirmedi bi bakar mısınız.dosyayı yüklüyorum
 

Ekli dosyalar

  • 1.xls
    1.xls
    401.5 KB · Görüntüleme: 10
Uyguladığınız modülde başka kodlar var. Hataya onlar sebep oluyor. Silip yeniden uygulayın.

Ayrıca eklediğiniz örnek dosya ile son eklediğiniz son dosyadaki satırlar aynı sırada başlamıyor. Bu makroyu bozar. Bu sebeple sonuç alamayabilirsiniz.
 
Dosyanızın bu haliyle çalışması için kod içinde aşağıdaki satırı bir sonraki gibi değiştirin.

Kod:
For X = 14 To S1.Cells(S1.Rows.Count, 1).End(3).Row - 1 Step 5

Yeni hali;

Kod:
For X = 16 To S1.Cells(S1.Rows.Count, 1).End(3).Row - 1 Step 5

Ayrıca önerdiğim kodun uygulamasında zor bir aşama yok. Sırasıyla aşağıdaki adımları izleyin.

Dosyanızdaki eski kodların tümünü silin.
İlk olarak ALT+F11 tuşlarına basıp kod editörünü açın.
Daha sonra INSERT menüsünden boş bir MODULE ekleyin.
Önerdiğim kodu bu modüle uygulayın.
Sayfanıza geçin.
Bir buton ekleyin.
Buton üzerinde sağ klik yapın ve makro ata seçeneğini seçin.
AKTAR isimli makroyu seçin.

Artık butona tıkladığınızda kod çalışacaktır.
 
Dediğinizi yapıyorum ama olmuyor.işlem tamamlandı diyor ama olmuyor.dediğim gibi dosyayı düzeltp yükler misiniz
 
Hangi mesajınızdaki dosyayı düzenleyelim.
 
İnceleyiniz...
 

Ekli dosyalar

Geri
Üst