• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü excelde birçok çalışma kitabındaki tabloları tek bir sayfada toplama

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

egemir

Yeni Üye
Katılım
6 Eyl 2021
Mesajlar
124
Aldığı beğeni
14
Excel V
Office 2013 TR
merhaba
ayrı ayrı firmalar için tuttuğum çalışma kitaplarını tek bir çalışma kitabında toplamak istiyorum
firmaların bir kısmındaki veriler ortak bir kısmında değil
nasıl yapabilirim.
yardımcı olursanız sevinirim.
 
1 - Haftalık Sipariş rapor bu kitaptan alınacak sayfa adları sorunlu: bu firmalar sabit değilse, ilave veya eksiltme olabilecekse bir şablona uymayan, ilişki kurulamayan belirsiz sayfa adları için kod yazılamaz ki en fazla siz bir sayfaya alınacak sayfa isimlerini yazarsanız oradan alınır sayfa adları.
2 - diğeri içinse kitap adı sayfa ilişkisi aşağıdaki gibi KitapAdı-->KitapAdı_GENEL kalıbındaysa o halledilebilir gibi
tek tek sayfa adı almak için kullanılan kodu çıkarıp doğrudan bir kod kullanabiliriz
KitapSayfa Adı
COSKUNOZ-->COSKUNOZ_GENEL
EMAS-->EMAS_GENEL
FINLAND-->FINLAND_GENEL
MITSU-->MITSU_GENEL
VBULASIK-->VBULASIK_GENEL
VCAMASIR-->VCAMASIR_GENEL
VIESSMAN-->VIESSMAN_GENEL
VKLIMA-->VKLIMA _GENEL
halil bey haftalık sipariş rapor kitabımdaki sayfalarda değişken değil sabit yani ben ileri bir tarihte yeni bir eklenebilir se diye soylemiştim.
sadece bu firmaların raporlarını tek kitapta toplayabildim ama ayrı kitapta olanda makro içeridiği ayrı ayrı oluşturmak zorunda kaldım.
sayfa isimlerini revize edebilirim sorunlu demişsiniz.
benim sizden istediğim aradaki fark bazı firmalar ayrı kitap içinde oluşturuldu

kitap 2 de örnek
bu 2. olarak belirttiğimiz firmalardan 1 tanesine örnektir örnek bu kitap içerisinde sadece__Genel sayfaları yok başka saylarda mevcuttur.

kitap1 deki
1.olarak bahsettiğimiz haftalık sipariş rapor sayfasına örnektir.aynı şekilde burada _Genel sayfaları mevcuttur.

benim tüm _genel sayfalarını tek bir sayfada toplayıp genel bir rapor hazırlamam gerekiyor.
 

Ekli dosyalar

sayın egedemir son gönderdiğiniz 2 dosyanın ilk gönderdiklerinizden farkı yok ki
yine kitap1,2 ve yine a_genel, B_Genel sayfaları...
bu 2. olarak belirttiğimiz firmalardan 1 tanesine örnektir örnek bu kitap içerisinde sadece__Genel sayfaları yok başka saylarda mevcuttur.
bana gerekli olan sayfa yok
siz kitapAdı_Genel denen sayfalar alınmalı demiştiniz ama eklediğiniz kitaplarda öyle bir sayfa yok
örneğiniz, hazırlarken çalışmanıza uygun hazırlamalısınız
yoksa ne yapacağımı bilemem
Kitap1 (2) kitabında A_Genel,B_Genel,C_Genel sayfalarından hangisi alınacak?
Kitap1 (2)_Genel adında sayfa olsa diyeceğim ki tamam zaten böyle bir sayfa olursa bu eklenecekti diyeceğim ama öyle bir sayfa yok
örneğinizi gerekli şekilde hazırlamazsanız boşa zaman kaybedersiniz
o nedenle son defa belirtiyorum
lütfen hangi kitaplardan hangi sayfaların nereye alınacağını bir kez daha belirtip
o yapıya uygun örnek çalışma hazırlayın
net olsun açıklamalarınız
kafamızda onu mu kast etti yoksa bunu mu? soruları kalmasın
iyi çalışmalar
 
sayın egedemir son gönderdiğiniz 2 dosyanın ilk gönderdiklerinizden farkı yok ki
yine kitap1,2 ve yine a_genel, B_Genel sayfaları...

bana gerekli olan sayfa yok
siz kitapAdı_Genel denen sayfalar alınmalı demiştiniz ama eklediğiniz kitaplarda öyle bir sayfa yok
örneğiniz, hazırlarken çalışmanıza uygun hazırlamalısınız
yoksa ne yapacağımı bilemem
Kitap1 (2) kitabında A_Genel,B_Genel,C_Genel sayfalarından hangisi alınacak?
Kitap1 (2)_Genel adında sayfa olsa diyeceğim ki tamam zaten böyle bir sayfa olursa bu eklenecekti diyeceğim ama öyle bir sayfa yok
örneğinizi gerekli şekilde hazırlamazsanız boşa zaman kaybedersiniz
o nedenle son defa belirtiyorum
lütfen hangi kitaplardan hangi sayfaların nereye alınacağını bir kez daha belirtip
o yapıya uygun örnek çalışma hazırlayın
net olsun açıklamalarınız
kafamızda onu mu kast etti yoksa bunu mu? soruları kalmasın
iyi çalışmalar
hemen gönderiyorum halil bey
 
bu kitap içerisinde sadece bu sayfalar yok başka sayfalarda var .fakat dosya çok yüklü olduğu için bu şeklide gönderiyorum son kitapta ektedir.şimdiden teşekkür ediyorum yardımlarınız için
 

Ekli dosyalar

peki
1 - Kitap1 yapısında veri alınacak başka kitap var mı?
2 - Kitap1 içindeki tüm sayfalar mı alınacak yoksa sizin daha önce verdiğiniz sayfalar tek mi alınacak? daha önce verdiğiniz listede aşağıdaki sayfalar vardı. ama son eklediğiniz kitap1 de İSBİR_GENEL sayfası yok
3 - daha önce eklediğiniz dosyalar ile son eklediğiniz dosyalarda sütun başlıkları değişmiş, o nedenle yeni kodları sütun başlıkları yerine sütun sırasına göre yazdım eğer kitaplardaki sütunlar farklı yere taşınırsa, eklenip silinirse sorun çıkar, yani bu yapı değişmemeli
Not: isme dayalı kitaplarda veri almada şimdilik sorun yok gibi,
kitap1le ilgili bilgileri de verirseniz o kısmı da halletmeye çalışırım

İSBİR_GENEL
BUNDY_GENEL
BOSCH_GENEL
ÜNMAK_GENEL
ETHERMA_GENEL
KLIMASAN-GENEL
VBUZ_GENEL
VFIRIN_GENEL
 
peki
1 - Kitap1 yapısında veri alınacak başka kitap var mı?
2 - Kitap1 içindeki tüm sayfalar mı alınacak yoksa sizin daha önce verdiğiniz sayfalar tek mi alınacak? daha önce verdiğiniz listede aşağıdaki sayfalar vardı. ama son eklediğiniz kitap1 de İSBİR_GENEL sayfası yok
3 - daha önce eklediğiniz dosyalar ile son eklediğiniz dosyalarda sütun başlıkları değişmiş, o nedenle yeni kodları sütun başlıkları yerine sütun sırasına göre yazdım eğer kitaplardaki sütunlar farklı yere taşınırsa, eklenip silinirse sorun çıkar, yani bu yapı değişmemeli
Not: isme dayalı kitaplarda veri almada şimdilik sorun yok gibi,
kitap1le ilgili bilgileri de verirseniz o kısmı da halletmeye çalışırım

İSBİR_GENEL
BUNDY_GENEL
BOSCH_GENEL
ÜNMAK_GENEL
ETHERMA_GENEL
KLIMASAN-GENEL
VBUZ_GENEL
VFIRIN_GENEL
Halil bey,
eklemeyi unuttum sanırım.Şuan asıl raporumda olan firmalar bunlar. INTECH_GENEL firmasınıda unutmusum sanırım

ISBIR_GENEL
BUNDY_GENEL
BOSCH_GENEL
INTECH_GENEL
ÜNMAK_GENEL
ETHERMA_GENEL
KLIMASAN_GENEL
VBUZ_GENEL
VFIRIN_GENEL
 
burada önemli olan nokta şu: kitap1'deki tüm sayfalar mı alınacak, sayfa adında _GENEL olanlar mı yoksa sadece listedeki sayfalar mı?
 
dilerim işinize yarar
fonksiyonlar
içeri aktarma fonksiyonu
Kod:
Sub XL_birlestir()
Dim FSO As Object '//FileSystemObject
Dim f As Object '//File Object
AnaKlsr = ThisWorkbook.Path & "\Data\"

Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO
        For Each f In .GetFolder(AnaKlsr).Files
            If Left(f.Name, 2) <> "~$" Then
                If Left(f.Name, InStr(f.Name, ".") - 1) <> "Kitap1" Then
                    hySQL = hySQL & SyfAdiAl(f.Path, Left(f.Name, InStr(f.Name, ".") - 1) & "_GENEL$")
                Else
                    hySQL = hySQL & Ktp1(f.Path)
                End If
            End If
        Next f
End With
Dim SQL As String
SQL = Mid(hySQL, 11)

'hy_____________________________________recordsete alma
Dim ADO_RS As ADODB.Recordset
Dim ADO_CN As ADODB.Connection

Set ADO_RS = New ADODB.Recordset
Set ADO_CN = New ADODB.Connection

ADO_CN.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.FullName & _
                          ";extended properties=""excel 8.0;hdr=No"""
ADO_CN.Open
ADO_RS.Open SQL, ADO_CN, 3, 1

'   Eğer Hiç Kayıt Yoksa
If ADO_RS.RecordCount = 0 Then
    MsgBox "Kayıt Bulunamadı.", vbCritical, "Veri Yok"
    GoTo son
End If

sonstr = Cells(Rows.Count, "A").End(xlUp).Row + 1
Sheets("Sonuc").Range("A2:K" & sonstr).Clear
Sheets("Sonuc").Range("A2").CopyFromRecordset ADO_RS

son:
ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing
MsgBox "işlem tamam"
End Sub
Kitap1'den veri alma
Kod:
Function Ktp1(fn As String) As String
    Dim conn As Object, db As Object
    Dim tbl As Object

    Set conn = CreateObject("DAO.DBEngine.120")
    Set db = conn.OpenDatabase(fn, False, True, "Excel 12.0 Xml;HDR=Yes;")
    xSQL = ""

    For Each tbl In db.TableDefs
 
    If Right(tbl.Name, 7) = "_GENEL$" Then
    tblAdi = CStr(Replace(tbl.Name, "'", ""))
            xSQL = xSQL & "union all " & _
                   "select [" & tbl.Fields(0).Name & "],[" & tbl.Fields(1).Name & "],[" & tbl.Fields(2).Name & _
                   "],[" & tbl.Fields(3).Name & "],[" & tbl.Fields(4).Name & "],[" & tbl.Fields(5).Name & _
                   "],[" & tbl.Fields(6).Name & "],[" & tbl.Fields(7).Name & "] " & _
                   "from [" & tbl.Name & "] IN """ & fn & """ ""EXCEL 8.0;"" where ([HAFTAKOD] Is Not Null)"

    End If
    Next
    Set db = Nothing
    Set conn = Nothing
Ktp1 = xSQL
End Function
diğer kitaplardan veri alma
Kod:
Function SyfAdiAl(fn As String, SyfAdi As String) As String
    Dim conn As Object, db As Object
    Dim tbl As Object
On Error Resume Next
    Set conn = CreateObject("DAO.DBEngine.120")
    Set db = conn.OpenDatabase(fn, False, True, "Excel 12.0 Xml;HDR=Yes;")
    xSQL = ""
    Set tbl = db.TableDefs(SyfAdi)
     If (Err.Number = 0) Then
            xSQL = xSQL & "union all " & _
                   "select [" & tbl.Fields(0).Name & "],[" & tbl.Fields(1).Name & "],[" & tbl.Fields(2).Name & "],[" & tbl.Fields(3).Name & _
                   "],[" & tbl.Fields(4).Name & "],''," & _
                   "[" & tbl.Fields(5).Name & "],[" & tbl.Fields(6).Name & "] " & _
                   "from [" & tbl.Name & "] IN """ & fn & """ ""EXCEL 8.0;"" where ([HAFTAKOD] Is Not Null) and [HAFTAKOD] not like 'STO*' "

            xSQL = xSQL & "union all " & _
                   "select [" & tbl.Fields(0).Name & "],[" & tbl.Fields(1).Name & "],[" & tbl.Fields(2).Name & "],[" & tbl.Fields(3).Name & _
                   "],[" & tbl.Fields(4).Name & "],[" & tbl.Fields(5).Name & "],'','' " & _
                   "from [" & tbl.Name & "] IN """ & fn & """ ""EXCEL 8.0;"" where ([HAFTAKOD] Is Not Null) and [HAFTAKOD] like 'STO*' "
    Else
            Err.Clear
    End If
    Set db = Nothing
    Set conn = Nothing
SyfAdiAl = xSQL
End Function
 

Ekli dosyalar

Halil hocam;
olmadı maalesef sadece 2 firmanın verilerini listeleyebiliyom
çoşkunöz ve mitsu firmalarını getirdi.diğer firmaları getirmiyor.
 
ben denediğimde aşağıdaki sayfalardan verileri aldı, gönderdiğiniz dosyalara göre
D:\Desktop\Kapalı_Excel_EgeDemir\Data\COSKUNOZ.xlsmCOSKUNOZ_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\EMAS.xlsmEMAS_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\FINLAND.xlsmFINLAND_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\Kitap1.xlsxBUNDY_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\Kitap1.xlsxBOSCH_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\Kitap1.xlsxINTECH_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\Kitap1.xlsxÜNMAK_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\Kitap1.xlsxETHERMA_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\Kitap1.xlsxKLIMASAN_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\Kitap1.xlsxVBUZ_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\Kitap1.xlsxVFIRIN_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\MITSU.xlsmMITSU_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\VBULASIK.xlsmVBULASIK_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\VCAMASIR.xlsmVCAMASIR_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\VIESSMAN.xlsmVIESSMAN_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\VKLIMA.xlsmVKLIMA_GENEL$
D:\Desktop\Kapalı_Excel_EgeDemir\Data\WERKE.xlsmWERKE_GENEL$
 
aşağıdaki örnekte kitap ve sayfa adları için de sütun eklenmiştir
veri alınacak tüm exceller DATA klasöründe olmalı
veriyi alacak kitap bir üst klasörde olmalı
1634907573861.png
 

Ekli dosyalar

Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst