• DİKKAT

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

Sayfa adına göre veri transfer etmek

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
703
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Sayın Uzman Arkadaşlar,

Ekteki örnek çalışma kitabında farklı isimlerde ve tamamı aynı formatta olan tablolar bulunmaktadır. "E" sütununa sayfa ismi yazılınca, o sayfadaki kriterlere uyan satırdaki verilerin çağrılması istenmektedir. Siz uzman arkadaşların çok değerli yardımlarını rica ediyorum.

Saygılarımla.
 

Ekli dosyalar

Merhaba.
Aynı formatta diye yazmışsınız ancak G15 ve G16 adlı sayfaların formatları diğer sayfalara göre bir sütun kaymış durumda,
bu durumun örnek belge hazırlarken olduğu, bu iki sayfanın da diğerleriyle aynı formata getirileceği varsayımıyla cevap yazıyorum.

Sanırım GENEL sayfası E sütununda bir hücreye sayfa adı yazdığınızda adını yazdığınız sayfanın sadece o satırının GENEL sayfasına
aktarılmasını istiyorsunuz.

Alt taraftan GENEL sayfasının adına fareyle sağ tıklayın ve KOD GÖRÜNTÜLEyi seçin açılan VBA ekranında
sağ taraftaki boş alana aşağıdaki kod'u yapıştırın.
Kod:
[B][COLOR="Blue"]Private Sub Worksheet_Change(ByVal Target As Range)[/COLOR][/B]
If Intersect(Target, [E2:E108]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
tr = Target.Row
If tr = 1 Or tr = 10 Or tr = 19 Or tr = 28 Or tr = 37 Or tr = 46 Or _
    tr = 55 Or tr = 64 Or tr = 73 Or tr = 82 Or tr = 91 Or tr = 100 Then Exit Sub
If Target = "" Then
    Range("F" & tr & ":AO" & tr) = "": Exit Sub
End If
On Error Resume Next: Set sayfa = Sheets(Target.Value)
sayfa.Range("D" & tr & ":AM" & tr).Copy: Range("F" & tr).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False: Application.CutCopyMode = False
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
    Cells(tr + 1, 5).Activate
[B][COLOR="blue"]End Sub[/COLOR][/B]
GENEL sayfası E sütununa sayfa adı yazıp-silerek test ediniz.
.
 
Son düzenleme:
Tekrar merhaba.
Önceki cevabımdaki KOD'da değişiklik yaptım, tekrar kontrol ediniz.
 
Sayın Ömer Bey,

Öncelikle konuya gösterdiğiniz ilgi ve yardımınız için çok teşekkür ederim. Son yazdığınız kodlar çalıştı. Ancak yeni bir ihtiyaç ortaya çıktı. Verilerin alındığı sayfalardaki veriler, günlük olarak yenilenmektedir. Bu durumda verileri otomatik olarak güncellemesi için bir yardım daha rica ediyorum.
Saygılarımla.
 
Güncelle diye bir düğmeyle halledilebilir ya da bir hücreye yeni bir sayfa adı yazıldığında veya sayfa adı yazılan sütunda bir hücreye çift tıklandığında sütundaki sayfa adı olan satırlar güncellenebilir.
Biraz sonra cevap yazabilirim.
 
Sayın Uzman Arkadaşlar,

Ekteki örnek çalışma kitabında farklı isimlerde ve tamamı aynı formatta olan tablolar bulunmaktadır. "E" sütununa sayfa ismi yazılınca, o sayfadaki kriterlere uyan satırdaki verilerin çağrılması istenmektedir. Siz uzman arkadaşların çok değerli yardımlarını rica ediyorum.

Saygılarımla.

.

Mantığını doğru kurduğumu zannediyorum.

F2 hücresine aşağıdaki formülü yazıp;

Kod:
=INDIRECT("'"&$E2&"'!"&ADDRESS(ROW(D2);COLUMN(D2)))

Bütün tabloyu bu formülü kopyalayarak doldurun.

Dosyanız ekte.

Kontrol ediniz.

.
 

Ekli dosyalar

Aşağıdaki kod'u kullanabilirsiniz.
Kod:
[SIZE="2"]Private Sub Worksheet_Change(ByVal Target As Range)
Dim sayfa As Worksheet
If Intersect(Target, [E2:E108]) Is Nothing Then Exit Sub
Application.ScreenUpdating = False: Application.Calculation = xlCalculationManual
For satır = 2 To 108
If satır = 10 Or satır = 19 Or satır = 28 Or satır = 37 Or satır = 46 Or _
    satır = 55 Or satır = 64 Or satır = 73 Or satır = 82 Or satır = 91 Or satır = 100 Then GoTo 20
If Cells(satır, 5) = "" Then
    Range("F" & satır & ":AO" & satır) = "": GoTo 20
End If
On Error Resume Next
Set sayfa = Sheets(Cells(satır, 5).Value): sayfa.Range("D" & satır & ":AM" & satır).Copy
    Range("F" & satır).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
Application.CutCopyMode = False
20: Next: Cells(1, 1).Activate
Application.ScreenUpdating = True: Application.Calculation = xlCalculationAutomatic
End Sub[/SIZE]
 
Sayın İdris Bey,

Öncelikle konuya gösterdiğiniz ilgi ve çözümünüz için size çok teşekkür ederim. Aslında aradığım çözümü siz üretmeye çalışmışsınız. Makro yabancı olduğum bir konu benim için.
sayfa isimlesinin sonundaki 15 ve 16 verinin alındığı tarihi (YIL) ifade eder.
Her ayın ilk satırı için G16 yazlınca tablodaki ilk sütuna sonu 16 ile biten sayfalardan veri alınmalıdır.
Her ayın 2. satırına ise farklı sayfa isimleri gelmek zorundadır. Buraya G15 yazılında YIL sütunundaki yıla ait verile gelmelidir.
Sizin formülünüzde kayma sözkonusu olup bir alttaki yıla ait veriler gelmektedir.
Saygılarımla.
 

Ekli dosyalar

Sayın İdris Bey,

Öncelikle konuya gösterdiğiniz ilgi ve çözümünüz için size çok teşekkür ederim. Aslında aradığım çözümü siz üretmeye çalışmışsınız. Makro yabancı olduğum bir konu benim için.
sayfa isimlesinin sonundaki 15 ve 16 verinin alındığı tarihi (YIL) ifade eder.
Her ayın ilk satırı için G16 yazlınca tablodaki ilk sütuna sonu 16 ile biten sayfalardan veri alınmalıdır.
Her ayın 2. satırına ise farklı sayfa isimleri gelmek zorundadır. Buraya G15 yazılında YIL sütunundaki yıla ait verile gelmelidir.
Sizin formülünüzde kayma sözkonusu olup bir alttaki yıla ait veriler gelmektedir.
Saygılarımla.

.

Açıklamalarınızdan hiç bir şey anlayamadım.

Örneğinizi basitleştirin. iki üç sayfa, birkaç satır ve sütun olsun ki; anlayabilelim.


.
 
Sayın İdris bey,

Daha basit anlatım ekteki örnek çalışmada mevcuttur.

Saygılarımla.
 

Ekli dosyalar

Sayın İdris bey,

G15 sayfasından 2015 yılına ait veriler gelmemektedir.

Saygılarımla.
 
Sayın İdris bey,
Genel Sayfası 2016 yılını değiştirmemeliyiz. Bu durumda 11. mesajınızdaki çalışmanızda, yardımcı sütunlar ile çözülebileceğini bunun daha doğru ve son derece yaratıcı bir mantık olduğunu düşünüyorum. Eğer sırasıyla veri aldığımız sayfaların yardımcı sütunlarında Sayfa adı & Aylar & Yıl şeklinde bir birleştirme sağlayabilirsek, Genel sayfasında sırasıyla E&B&D birleştirerek bu eşleşme sağlanabilir mi?
Saygılarımla.
Ömer Ali ÜZÜMCÜ
 
Sayın İdris bey,
Genel Sayfası 2016 yılını değiştirmemeliyiz. Bu durumda 11. mesajınızdaki çalışmanızda, yardımcı sütunlar ile çözülebileceğini bunun daha doğru ve son derece yaratıcı bir mantık olduğunu düşünüyorum. Eğer sırasıyla veri aldığımız sayfaların yardımcı sütunlarında Sayfa adı & Aylar & Yıl şeklinde bir birleştirme sağlayabilirsek, Genel sayfasında sırasıyla E&B&D birleştirerek bu eşleşme sağlanabilir mi?
Saygılarımla.
Ömer Ali ÜZÜMCÜ

.

Esasen yaptığım dosya bu şekilde...

En son eklediğim çözüm olmadı mı?



.
 
Sayın İdris bey,

Aslında burada çözümü üretmişsiniz. Veri aldığımız sayfalarda B&C&D sütunlarını birleştirilmiş. C yerine B&Sayfa Adı&D şeklinde bir birleştirme sorunu çözecektir. Bu noktada sayfa adı ile nasıl birleştirileceği konusunda eksik kalıyorum.

Saygılarımla.
Ömer Ali ÜZÜMCÜ
 
.

Sayfa adı;

Kod:
=IFERROR(VLOOKUP($B2&$C2&$D2;INDIRECT([COLOR="Red"]"'"&$E2&"'!"[/COLOR]&"A1:AN200");COLUMN(E1);0);"")

formülde birleştirilmiş.

.
 
Geri
Üst