• DİKKAT

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

Bir sayfadan Diğer sayfaya aratarak veri çekme

Katılım
26 Haziran 2009
Mesajlar
107
Excel Vers. ve Dili
2007
Merhaba arkadaşlar,
2 sayfam var.Telekomdan gelen faturalarımı 6 aylık olarak düzenlemek istiyorum 1. Sayfamda.

Ekte dosyayı yolluyorum.
sayfa 2nin B sütunu ile Sayfa 1 Deki B sütununu karşılaştırıp
Sayfa 2 nin g sütunundaki veriyi alıp Sayfa 1 in h sütununa yapıştıracak.

Biraz karışık oldu.
Yapmak istediğimi şöyle açıklıyayım.
Sayfa 2 deki b sütununda bulunan telefon numaralarının g sütunundaki borçlarını
Sayfa 1 deki B sütunundaki numaralarla eşleştirip doğru numaranın borcunu doğru numaraya gelecek şekilde h sütununa yapıştırmak istiyorum

Umarım anlatabilmişimdir.Desteğinizi bekliyorum.
 

Ekli dosyalar

Merhaba,
Uygun yere yazarak deneyiniz.
Kod:
=DÜŞEYARA(SAĞDAN(B2;256);SAĞDAN('Sayfa 2'!$B$2:$G$6;256);6;0)
[COLOR="Blue"]Formül dizi formülüdür. CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]

Not: Sayfa1'de Ocak , Şubat , ... çözemedim bunlarlar ilgili bir işlem yapılmayacak değil mi ?
 
Merhaba,
Uygun yere yazarak deneyiniz.
Kod:
=DÜŞEYARA(SAĞDAN(B2;256);SAĞDAN('Sayfa 2'!$B$2:$G$6;256);6;0)
[COLOR="Blue"]Formül dizi formülüdür. CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]

Not: Sayfa1'de Ocak , Şubat , ... çözemedim bunlarlar ilgili bir işlem yapılmayacak değil mi ?

Ocak şubatın önemi yok.Onları daha sonra ben ayarlıyacağım.

Fakat formülde
=DÜŞEYARA(SAĞDAN(B2;256);SAĞDAN('Sayfa 2'!$B$2:$G$6;256);6;0)

256 ların ve en sondaki 0 ında neyle alakalı olduğunu söylerseniz sevinirim.Aynı formülü kendi dökümanımda yapıyorum herşey aynı bütün hücreler bile.Sadece aşağıya doğru 100 satır falan var yaklaşık. hata veriyor DEĞER diye
 
256 = Bir hücreye girilecek maksimum uzunlukdaki karakter sayısıdır.
0 = Arayacağımız değer ile kriterimizin aynı olması durumlarda çalışacaktır. (yani tam eşleşme)

Herhangi bir hücreye; =DÜŞEYARA(;;; yazıp baktığınızda göreceksiniz. Yanlış = 0 , Doğru = 1

Not: Formül ile elde ettiğiniz değerler ile herhangi bir matematiksel işlem yapacaksanız formül başına -- işaretlerini koyunuz.
 
Dosyayı denediniz mi?

Acar bey dosyanız çalışıyor çok teşekkür ederim ama ben formül ile yapmak istiyorum.Çünkü formülü kendim azçok derleyebiliyorum fakat konu makro olunca hangi kodun ne olduğunu neden yazıldığını merak ediyorum.Yani size yazmış olduğunuz makroda çok fazla soru sormam gerekir o durumda ondan dolayı formül ile çözebilmek istiyorum.
 
Peki;

Mantığı basit aslında iki döngü sadece :)
 
Acar bey dosyanız çalışıyor çok teşekkür ederim ama ben formül ile yapmak istiyorum.Çünkü formülü kendim azçok derleyebiliyorum fakat konu makro olunca hangi kodun ne olduğunu neden yazıldığını merak ediyorum.Yani size yazmış olduğunuz makroda çok fazla soru sormam gerekir o durumda ondan dolayı formül ile çözebilmek istiyorum.

Peki;
Mantığı basit aslında iki döngü sadece :)
. . .

2 çözümün sonuçları farklı.

do.php


. . .
 
Evet
Kod:
S1.Cells(i1, "H") = s2.Cells([COLOR="Red"]i2[/COLOR], "G")
Burada hata yapmışım:)
 
Harf hatası olmuş :)
Düzenledim
Hoş ihtiyaç olamayacak sanırım.
 
Dosyayı güncellemiştim ben .
Tekrar indirdiniz mi?

Formüller çoklu satırlarda dosya boytunu büyütüyor o sebepten pek sevmiyorum :)
 
Dosyayı güncellemiştim ben .
Tekrar indirdiniz mi?

Formüller çoklu satırlarda dosya boytunu büyütüyor o sebepten pek sevmiyorum :)
Tekrar indirmedim. Biraz baktım sadece ufak :) karakterlik bir değişiklikmiş.

Söylediğiniz doğru büyütüyor ama bir yaptığımı tekrar yapabilmek için sizin yaptıklarınızı çözmeye çalışıyorum.Bunu formülde yapmak anlarsınızki birazdaha kolay.
Aa çok teşekkür ederim belkide böyle böyle makrolarada dalarız.Bugün 1 karakter yarın 2 :)

Yardımlarınız için çok teşekkür ederim.
İyi çalışmalar,
 
Biraz bildiğim kadarıyla açıklayayım ozaman:)
Kod:
Sub aktar()
Set S1 = Sheets(1)
Set s2 = Sheets(2)
'Sayfaları kısa ad tanımlıyoruz ki kodda bir daha uzun uzun yazmayalım,

S1.Range("H2:H65536").ClearContents
' Sayfa1 H2:H65536 aralığını siliyoruz

For i1 = 2 To S1.Cells(65536, 2).End(xlUp).Row
For i2 = 2 To s2.Cells(65536, 2).End(xlUp).Row 'son dolu satır
'döngü kısmı burası :)_
'burada sayfa 1 ve sayfa 2 nin B(2) sütununda 2. satırdan son dolu satıra kadar döngü kuruyoruz.

If S1.Cells(i1, 2) = s2.Cells(i2, 2) Then
'burada koşul sağlıyoruz ki istediğimiz verileri alalım,
'eğer sayfa1 deki b sütunundaki veriler sayfa2 nin b sütunundaki değerlere eşitse;

S1.Cells(i1, "H") = s2.Cells(i2, "G")
' o eşit olan b sütunundaki değerin H sütununa karşılık gelen değeri ,

'sayfa2 nin G sütununda karşılık gelen yere yaz;
End If
'koşul biter

Next
Next
'döngü biter

End Sub
'makro biter :) Kolay gelsin
 
Son düzenleme:
Biraz bildiğim kadarıyla açıklayayım ozaman:)
Kod:
Sub aktar()
Set S1 = Sheets(1)
Set s2 = Sheets(2)
'Sayfaları kısa ad tanımlıyoruz ki kodda bir daha uzun uzun yazmayalım,

S1.Range("H2:H65536").ClearContents
' Sayfa1 H2:H65536 aralığını siliyoruz

For i1 = 2 To S1.Cells(65536, 2).End(xlUp).Row
For i2 = 2 To s2.Cells(65536, 2).End(xlUp).Row 'son dolu satır
'döngü kısmı burası :)_
'burada sayfa 1 ve sayfa 2 nin B(2) sütununda 2. satırdan son dolu satıra kadar döngü kuruyoruz.

If S1.Cells(i1, 2) = s2.Cells(i2, 2) Then
'burada koşul sağlıyoruz ki istediğimiz verileri alalım,
'eğer sayfa1 deki b sütunundaki veriler sayfa2 nin b sütunundaki değerlere eşitse;

S1.Cells(i1, "H") = s2.Cells(i2, "G")
' o eşit olan b sütunundaki değerin H sütununa karşılık gelen değeri ,

'sayfa2 nin G sütununda karşılık gelen yere yaz;
End If
'koşul biter

Next
Next
'döngü biter

End Sub
'makro biter :) Kolay gelsin

Üstadım,
Gerçekten böyle bir anlatım beklemiyordum. Bir soru sormak için tekrar girdim konuya cevabınla karşılaştım.Soruyu sormayıp şimdi bu ayrıntı sayesinde uğraşıp diğer ayları ayrı sayfalardan kendim ekletmeye çalışacağım.
 
Takılırsanız tekrar sorarsınınz .Kolay gelsin...
 
Geri
Üst