• DİKKAT

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

farklı excel dosyalarını tek bir sayfada birleştirmek

Katılım
23 Kasım 2010
Mesajlar
3
Excel Vers. ve Dili
Office Excel 2003
merhabalar...

Farklı excel dosyalarını tek bir excel sayfasında birleştirmek için bir macro buldum internetten. İstediğim işlemi yapıyor ancak tek eksiği var bu da birleştirir iken dosya adını da bir üst satıra eklemesini istiyorum... Nasıl yapabilirim... Yani Birleştirme işleminin dosya isimleri ile birlikte olmasını istiyorum...

İnternetten bulduğum macro şu şekilde:

Sub MergeSheets()

Dim SrcBook As Workbook

Dim fso As Object, f As Object, ff As Object, f1 As Object



Application.ScreenUpdating = False

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.Getfolder("C:\Temp\")

Set ff = f.Files



For Each f1 In ff

Set SrcBook = Workbooks.Open(f1)

Range("A1:IV" & Range("A65536").End(xlUp).Row).Copy

ThisWorkbook.Worksheets(1).Activate

Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial

Application.CutCopyMode = False

SrcBook.Close

Next

End Sub


Bu konuda yardımcı olursanız çok mutlu olurum...

Teşekkür ederim
 
Merhaba,

Bu şekilde denermisiniz..

Kod:
Sub MergeSheets()
 
Dim SrcBook As Workbook
Dim fso As Object, f As Object, ff As Object, f1 As Object
 
Application.ScreenUpdating = False
 
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.Getfolder("C:\Temp\")
Set ff = f.Files
 
For Each f1 In ff
    Set SrcBook = Workbooks.Open(f1)
    Range("A1:IV" & Range("A65536").End(xlUp).Row).Copy
    ThisWorkbook.Worksheets(1).Activate
    [COLOR=red]Range("A65536").End(xlUp).Offset(1, 0) = SrcBook.Name
[/COLOR]    Range("A65536").End(xlUp).Offset([COLOR=red]2[/COLOR], 0).PasteSpecial
    Application.CutCopyMode = False
    SrcBook.Close
Next

End Sub
.
 
farklı excel dosyalarındaki farklı cihazlar tarafından yapılmış aynı analiz sonuçlarını karşılaştırmak için tek bir excel dosyası altında sütunlarda yanyana getiren bir makro nasıl yapabilirim acil yardıma ihtiyacım var?
 
dataları tek excel dosyasında yanayana sütunlar halinde yanyana getirme

arkadaşlar ekte verilen xrd-xrf karşılaştırma dosyasındaki dataları diğer iki excel dosyasından copy-paste yaparak topluyorum bunu otomatik yapacak bir makro code varmı?
 

Ekli dosyalar

Kopyaladığınız verileri hangi dosyadan hangi satır ve sütunları alıyorsunuz, aldığınız bu verileri hangi satır ve sütunlara kopyalıyorsunuz. Bunu detaylandırırmısınız. Ayrıca veri alınan dosyalardaki sayfa adları her zaman aynımıdır?
 
TABİKİ,

XRF-XRD karşılaştırma dosyasında

1.FIRIN, 2.FIRIN, 3.FIRIN, CEM 42.5R sayfalarındaki örneğin C3S datalarını,
XRF olanı Master9800XP dosyasındaki FIRIN1, FIRIN2, FIRIN3 sayfalarındaki TIME 04-08, 08-12 ve CEMI sayfasındaki 1CEMI42,5 TIME 04-08, 08-12 (4 saatlik çalışma zamanı) C3S başlığı altındaki sütundaki dataları alıyor,
XRD olanı
1.FIRIN sayfası için TestReport5 dosyasındaki 1kl08 ve 1kl12 (08 ve 12 çalışma zamanı, 1kl 1.fırın datası demek),
2.FIRIN sayfası için TestReport5 dosyasındaki 2kl08 ve 2kl12 (08 ve 12 çalışma zamanı, 2kl 2.fırın datası demek),
3.FIRIN sayfası için TestReport5 dosyasındaki 3kl08 ve 3kl12 (08 ve 12 çalışma zamanı, 3kl 3.fırın datası demek),
CEM 42.5 R sayfası için TestReportcement-yeni dosyasındaki 1cim08 ve 1cim12 (08 ve 12 çalışma zamanı, 1cim 1.çimento değirmeni demek),

analiz numunelerinin (yani excel satırlarının) C3S başlığı altındaki sütunlardaki dataları alıyor.

Bu işlem karşılaştırma dosyasındaki C2S, C3A, C4AF gibi sırasıyla diğer datalar içinde yapılıyor.

Sonuç olarak 3 farklı fırın ve 1 çimento değirmenin numunelerinin farklı iki analiz cihazındaki aynı tür analiz dataları (mesela C3S analiz data dataları) karşılaştırma dosyasında yanyana sütunlar halinde getirilerek karşılatırılıyor.

Veri alınan dosyalardaki (TestReportcement-yeni, TestReport5, Master9800XP dosyaları) yukarıda yazdığım sayfa adları aynıdır. Burada sütunlar değişik analiz parametrelerinin (C3S, C2S gibi) sonuçları, satırlar 3 farklı fırının ve 1 çimento değirmeninin 08 ve 12 çalışma zamanlarındaki numunelerinin isimleri.
 
Son düzenleme:
Ömer bey verdiğiniz kod çook işime yaradı...

Çok teşekkür ederim...
 
Sn ea1453

Konuyu biz bilmediğimiz için bu karışık açıklamalarınızla bir çözüm üretmek mümkün değil. Bence işlemleri bir sıraya koyup bize işlem sırasını açıklamanız gerekir. Örneğin, ilk önce hangi dosyadaki veri hangi sütuna alınacaktır. Veri alınmasındaki kriterler nelerdir. Bunları aşama aşama yazmanız gerekir. Birde TestReport5 dosyanızı eklememişsiniz.
 
Satır ve sütunları ekledim.

Haklısınız Levent Bey, satır ve sütun numaralarını ekleyeyim,

XRF-XRD karşılaştırma dosyasında;

1.FIRIN, 2.FIRIN, 3.FIRIN, CEM 42.5R sayfalarındaki örneğin G3 kutularındaki C3S dataları (G SÜTUNUNDAKİ XRF başlığı altındakiler) ,

A)Master9800XP dosyasındaki FIRIN1, FIRIN2, FIRIN3 sayfalarındaki TIME (D sütunundaki) 04-08 veya 06-08, 08-12 veya 10-12 zaman aralıklarının bulunduğu kutunun satırıyla X sütunun (C3S SÜTUNU) kesiştiği kutudaki dataYI

B)ve Master9800XP dosyasındaki CEMI sayfasındaki 1CEMI42,5 TIME (D sütunundaki) 04-08 veya 06-08, 08-12 veya 10-12 zaman aralıklarının bulunduğu kutunun satırıyla W sütunun (C3S SÜTUNU) kesiştiği kutudaki datayı alıyor.

XRF-XRD karşılaştırma dosyasında;
1.FIRIN, 2.FIRIN, 3.FIRIN, CEM 42.5R sayfalarındaki örneğin F3 kutularındaki C3S dataları (F SÜTUNUNDAKİ XRF başlığı altındakiler)

A) 1.FIRIN sayfası için TestReport5 dosyasındaki C sütunundaki C:\XRD\watch\CL1_1kl08.xrdml ve C:\XRD\watch\CL1_1kl12.xrdml (08 ve 12 çalışma zamanı, 1kl 1.fırın datası demek) kutusunun bulunduğu satırla F sütununun (C3S başlıklı sütun) kesiştiği kutuda bulununan datayı,

B) 2.FIRIN sayfası için TestReport5 dosyasındaki C sütunundaki C:\XRD\watch\CL1_2kl08.xrdml ve C:\XRD\watch\CL1_2kl12.xrdml (08 ve 12 çalışma zamanı, 2kl 2.fırın datası demek) kutusunun bulunduğu satırla F sütununun (C3S başlıklı sütun) kesiştiği kutuda bulununan datayı,

C) 3.FIRIN sayfası için TestReport5 dosyasındaki C sütunundaki C:\XRD\watch\CL1_3kl08.xrdml ve C:\XRD\watch\CL1_3kl12.xrdml (08 ve 12 çalışma zamanı, 3kl 3.fırın datası demek) kutusunun bulunduğu satırla F sütununun (C3S başlıklı sütun) kesiştiği kutuda bulununan datayı,

D) CEM 42.5 R sayfası için TestReportcement-yeni dosyasındaki C sütunundaki C:\XRD\watch\CM11cimcem108.xrdml ve C:\XRD\watch\CM11cimcem112.xrdml (08 ve 12 çalışma zamanı, 1cim 1.çimento değirmeni demek) kutusunun bulunduğu satırla F sütununun (C3S başlıklı sütun) kesiştiği kutuda bulununan datayı alıyor.

Bu işlem XRF-XRD karşılaştırma dosyasındaki C2S (H ve I sütunları), C3A (P ve Q sütunları), C4AF (J ve K sütunları) gibi sırasıyla diğer datalar içinde yapılıyor.

Sadece C3S için code yazılsa aynı code sütun isimlerini değiştirerek diğerleri içinde uygulayabiliriz herhalde!
TestReport5 dosyasını ekledim.

TestReport5 dosyasında C sütununda bulunan numune isimleri, numune isimlerindeki C:\XRD\watch\CL1_(1kl, 2kl veya 3kl )08.xrdml ibaresi içindeki 1kl, 2kl ve 3kl bilgisinden ayırt edilebilir,

TestReportcement-yeni dosyasındaki C sütunun bulunan numune isimleri, numune isimlerindeki C:\XRD\watch\CM11cimcem108.xrdml ibaresindeki cem1 ifadesinden ayırt edilebilir.
 

Ekli dosyalar

Son düzenleme:
daha fazla bilgi için ulaşım bilgilerinizi engin_ars@yahoo.com'a gönderebilirmisiniz ben sizi arasam olurmu? Birde ben bu makro yazma işini en hızlı ve kolay şekilde nasıl öğrenirim?
 
levent bey,

Master 9800xp dosyasından XRD-XRF karşılaştırma dosyasına dataları atan aşağıdaki makroyu yazdık şimdi bu makroyu testreport5 ve testreportcement-yeni dosyasına nasıl uygulayacağım

Sub bilgiAl()


Application.Workbooks.Open("C:\Documents and Settings\AFASA\Desktop\EnginAslancan\Master9800XP.xls").Activate

sira = 3
ThisWorkbook.Worksheets("1.FIRIN").Range("A3:U100").ClearContents

For i = 2 To 200

If CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("C" & i).Value) = "" Then Exit For

If CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("D" & i).Value) = "04-08" Or CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("D" & i).Value) = "08-12" Then
ThisWorkbook.Worksheets("1.FIRIN").Range("B" & sira).Value = CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("C" & i).Value) & " " & CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("D" & i).Value)
ThisWorkbook.Worksheets("1.FIRIN").Range("C" & sira).Value = "1.FIRIN KLINKER"
ThisWorkbook.Worksheets("1.FIRIN").Range("G" & sira).Value = CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("X" & i).Value)
ThisWorkbook.Worksheets("1.FIRIN").Range("I" & sira).Value = CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("Y" & i).Value)
ThisWorkbook.Worksheets("1.FIRIN").Range("Q" & sira).Value = CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("Z" & i).Value)
ThisWorkbook.Worksheets("1.FIRIN").Range("K" & sira).Value = CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("AA" & i).Value)
ThisWorkbook.Worksheets("1.FIRIN").Range("S" & sira).Value = CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("L" & i).Value)
ThisWorkbook.Worksheets("1.FIRIN").Range("M" & sira).Value = CStr(ActiveWorkbook.Worksheets("FIRIN1").Range("W" & i).Value)
sira = sira + 1
End If
Next

Application.Workbooks.Open("C:\Documents and Settings\AFASA\Desktop\EnginAslancan\TestReport5.txt").Activate


End Sub
 
sadece ilk sayfaları yapıştırıyor bu
 
Merhaba,

Bu şekilde denermisiniz..

Kod:
Sub MergeSheets()
 
Dim SrcBook As Workbook
Dim fso As Object, f As Object, ff As Object, f1 As Object
 
Application.ScreenUpdating = False
 
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.Getfolder("C:\Temp\")
Set ff = f.Files
 
For Each f1 In ff
    Set SrcBook = Workbooks.Open(f1)
    Range("A1:IV" & Range("A65536").End(xlUp).Row).Copy
    ThisWorkbook.Worksheets(1).Activate
    [COLOR=red]Range("A65536").End(xlUp).Offset(1, 0) = SrcBook.Name
[/COLOR]    Range("A65536").End(xlUp).Offset([COLOR=red]2[/COLOR], 0).PasteSpecial
    Application.CutCopyMode = False
    SrcBook.Close
Next

End Sub
.

Merhaba, bu tür kodlar yazmayı bilmiyorum ancak aradığım şey bu sanırım. Benim 100 adet excel çalışma kitabının 1. sheetlerini tek bir kitapta ve tek bir sayfada alt alta gelecek şekilde toplamam gerekiyor. Burada dosyalaraki datalar farklı satır ve sütunlar şeklinde olup, satır itibariyle datanın bittiği satırın altına bir sonraki dosyanın verilerini yapıştırmasını istiyorum. Copy-paste zahmetli. Bu kod benim işime yararayabilir mi? Yardımlarınız için teşekkürler şimdiden.
 
Geri
Üst