Farklı Sheetlerdeki Verileri Tek bir Sheete Sürekli Aktarma

Katılım
24 Kasım 2010
Mesajlar
39
Excel Vers. ve Dili
2007
Merhabalar.

Farklı excellerdeki dataları, bir tane tabloda toplamak istiyorum. Diğer tablodaki mevcut veriler değiştikçe ve yeniler veriler sütuna eklendikçe esas tablomu güncellemesini istiyorum.

Bunu vlookup veya başka bir formülle mi yapabiliyoruz, yoksa macro tek çözüm mü?

Bir dosya ekledim.

Çok teşekkürler.
 

Ekli dosyalar

  • 10.5 KB Görüntüleme: 33

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Diğer tablodaki mevcut veriler değiştikçe ve yeniler veriler sütuna eklendikçe esas tablomu güncellemesini istiyorum.
Verdiğiniz örnek dosya üzerinden soruyorum. Tablo1 de örneğin 5. satırdaki bilgi değiştiğinde Aktarılan sayfada da aynı veri değişecek mi?

Yoksa tablolara veri eklendikçe sadece eklenen veriler mi aktarılacak?

Kod yazacak kişi için bu detaylar önemli.
 
Katılım
25 Eylül 2012
Mesajlar
24
Excel Vers. ve Dili
2007 türkçe
Merhabalar.

Farklı excellerdeki dataları, bir tane tabloda toplamak istiyorum. Diğer tablodaki mevcut veriler değiştikçe ve yeniler veriler sütuna eklendikçe esas tablomu güncellemesini istiyorum.

Bunu vlookup veya başka bir formülle mi yapabiliyoruz, yoksa macro tek çözüm mü?

Bir dosya ekledim.

Çok teşekkürler.
Arkadaşlar bu banada gereken bir işlem cevap verecek olan hocalarımızı bekliyoruz :)
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Arkadaşlar bu banada gereken bir işlem cevap verecek olan hocalarımızı bekliyoruz :)
Arkadaşımız sorularıma yanıt vermedi ama ben toptan birleştiren kodları yazdım. Deneyiniz.

Kod:
Sub SayfaBirlestir()
 
    Dim Syf As Worksheet, _
        Ana As Worksheet, _
        i   As Long, _
        Sat As Long, _
        Kol As Integer
        
    Application.ScreenUpdating = False
    
    Set Ana = Sheets("Aktarılan Yer")
    
    Ana.Select
    Kol = Ana.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    Sat = Ana.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    If Sat < 2 Then Sat = 2
    Range(Cells(2, "A"), Cells(Sat, Kol)).ClearContents
    
    For Each Syf In Worksheets
        If Not Syf.Name = Ana.Name Then
            Sat = Syf.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
            Syf.Range(Syf.Cells(2, "A"), Syf.Cells(Sat, Kol)).Copy Ana.Range("A" & Cells(Rows.Count, "A").End(3).Row + 1)
        End If
    Next Syf
    
    Application.ScreenUpdating = True
    
    MsgBox "SAYFALAR BİRLEŞTİRİLMİŞTİR....", vbInformation
    
End Sub
 

Ekli dosyalar

Katılım
12 Haziran 2009
Mesajlar
137
Excel Vers. ve Dili
2003 türkçe
anlamadım ben örneken bişey tam olarak ne istiyorsunuz seç aktarmı düşeyaramı eğer li birşeylermi . çok fazla tecrübeli sayılmam burda benden çok daha iyiler var ama online değillerse konuyu net anlasam kesin yardımcı olurum. makro ile yapmakta pratik olmasamda en azından formul ile size yardımcı olabilirim.
 
Katılım
24 Kasım 2010
Mesajlar
39
Excel Vers. ve Dili
2007
Merhaba.
Eğer mevcut veri değişirse, bunları da güncellesin. Yeni eklenler ise listeye eklensin. Ama onlarda da değişim olursa, onları da update etmesi gerekiyor.
Umarım bu yanıt yeterlidir.
Çok teşekkürler.
 
Katılım
24 Kasım 2010
Mesajlar
39
Excel Vers. ve Dili
2007
Merhaba. Az önce yanıtladım, kusura bakmayın gecikme için.


Arkadaşımız sorularıma yanıt vermedi ama ben toptan birleştiren kodları yazdım. Deneyiniz.

Kod:
Sub SayfaBirlestir()
 
    Dim Syf As Worksheet, _
        Ana As Worksheet, _
        i   As Long, _
        Sat As Long, _
        Kol As Integer
        
    Application.ScreenUpdating = False
    
    Set Ana = Sheets("Aktarılan Yer")
    
    Ana.Select
    Kol = Ana.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    Sat = Ana.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    If Sat < 2 Then Sat = 2
    Range(Cells(2, "A"), Cells(Sat, Kol)).ClearContents
    
    For Each Syf In Worksheets
        If Not Syf.Name = Ana.Name Then
            Sat = Syf.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
            Syf.Range(Syf.Cells(2, "A"), Syf.Cells(Sat, Kol)).Copy Ana.Range("A" & Cells(Rows.Count, "A").End(3).Row + 1)
        End If
    Next Syf
    
    Application.ScreenUpdating = True
    
    MsgBox "SAYFALAR BİRLEŞTİRİLMİŞTİR....", vbInformation
    
End Sub
 
Katılım
24 Kasım 2010
Mesajlar
39
Excel Vers. ve Dili
2007
anlamadım ben örneken bişey tam olarak ne istiyorsunuz seç aktarmı düşeyaramı eğer li birşeylermi . çok fazla tecrübeli sayılmam burda benden çok daha iyiler var ama online değillerse konuyu net anlasam kesin yardımcı olurum. makro ile yapmakta pratik olmasamda en azından formul ile size yardımcı olabilirim.
Merhaba.

Tam olarak istediğim şöyle:

Aynı başlıkları kullanan içerikleri farklı data setlerim var. Bunların bazıları farklı excel dosyalarında, bazıları da aynı excel dosyasında.

İçerik ekleme yapıyorum satırlara. İstediğim hepsini bir ana tabloda birleştirmek. Daha değiştikçe güncellesin. Yeni data girildikçe, ana tabloya bunları da girsin.

Formül ile yardımcı olabilir misiniz?
 
Katılım
24 Kasım 2010
Mesajlar
39
Excel Vers. ve Dili
2007
Yaptığınız çalışma için çok teşekkür ederim.

Zaman içinde değişenm bir çok farklı sheet'im olacak. Şu anda da farklı yerlerde en az 10 tane bulunuyor.

Sayfa Güncelleme yanında bir de Data'nın alınacağı sheet'leri seçme gibi bir seçenek ekleyemez miyiz? Bu şekilde çok büyük rahatlık olur benim için.

Çok teşekkürler.

Arkadaşımız sorularıma yanıt vermedi ama ben toptan birleştiren kodları yazdım. Deneyiniz.

Kod:
Sub SayfaBirlestir()
 
    Dim Syf As Worksheet, _
        Ana As Worksheet, _
        i   As Long, _
        Sat As Long, _
        Kol As Integer
        
    Application.ScreenUpdating = False
    
    Set Ana = Sheets("Aktarılan Yer")
    
    Ana.Select
    Kol = Ana.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    Sat = Ana.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    If Sat < 2 Then Sat = 2
    Range(Cells(2, "A"), Cells(Sat, Kol)).ClearContents
    
    For Each Syf In Worksheets
        If Not Syf.Name = Ana.Name Then
            Sat = Syf.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
            Syf.Range(Syf.Cells(2, "A"), Syf.Cells(Sat, Kol)).Copy Ana.Range("A" & Cells(Rows.Count, "A").End(3).Row + 1)
        End If
    Next Syf
    
    Application.ScreenUpdating = True
    
    MsgBox "SAYFALAR BİRLEŞTİRİLMİŞTİR....", vbInformation
    
End Sub
 
Katılım
29 Mayıs 2008
Mesajlar
81
Excel Vers. ve Dili
2007
B kolnunda resimler olan bir personel listelerim var.
3 ayrı excel sayfası.

Bu üç ayrı excel tek sayfaya topladığımda filitre uygulandığında filitre uygulanan veriye göre ya en alt kısma yada ilk satır resminin üzerine diğer hücredeki resimleri topluyor.

bu konuda ne yapıla bilir.

birleştirilen sayfalarda resim varsa filitre sonrası filitre dışında kalan resimler üst üste son satırda toplanıyor.
 

Tefo

Altın Üye
Katılım
22 Temmuz 2021
Mesajlar
33
Excel Vers. ve Dili
Office 2019 EN 32 Bit
Altın Üyelik Bitiş Tarihi
30-12-2027
Merhabalar,

Bu kod ile aynı klasör içerisinde bulunan başka bir excel dosyasından verileri aldırmam mümkün müdür acaba?

Konu ile ilgili destek olur musunuz?
Arkadaşımız sorularıma yanıt vermedi ama ben toptan birleştiren kodları yazdım. Deneyiniz.

Kod:
Sub SayfaBirlestir()

    Dim Syf As Worksheet, _
        Ana As Worksheet, _
        i   As Long, _
        Sat As Long, _
        Kol As Integer
      
    Application.ScreenUpdating = False
  
    Set Ana = Sheets("Aktarılan Yer")
  
    Ana.Select
    Kol = Ana.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    Sat = Ana.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    If Sat < 2 Then Sat = 2
    Range(Cells(2, "A"), Cells(Sat, Kol)).ClearContents
  
    For Each Syf In Worksheets
        If Not Syf.Name = Ana.Name Then
            Sat = Syf.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
            Syf.Range(Syf.Cells(2, "A"), Syf.Cells(Sat, Kol)).Copy Ana.Range("A" & Cells(Rows.Count, "A").End(3).Row + 1)
        End If
    Next Syf
  
    Application.ScreenUpdating = True
  
    MsgBox "SAYFALAR BİRLEŞTİRİLMİŞTİR....", vbInformation
  
End Sub
 
Üst