Farkli Dosyalardan Tek Bİr Dosyaya Bİlgİ Aktarma

Katılım
27 Ekim 2007
Mesajlar
10
Excel Vers. ve Dili
excel ing 2003
Arkadaşlar bir dosyadan başka bir dosyaya veri aktarma üzerine araştırma yaparken aşağıdaki kodları buldum ve bunlar üzerinde değişiklikler yapıp kullanmaya çalıştım.

Ancak halledemediğim bir sorun var.

Bir çok kullanıcının kullandığı farklı dosyalar var ve ben onları tek bir dosya altında ayrı sheetler olarak toplamak istiyorum. Bu süreklilik arzeden bir iş. (aynı sheet her gün güncellenerek aktarılacak ve bu bir çok farklı dosyadan olacak)

Aşağıdaki kodları kullandığımda dosyaya aktarılmış olan sheet siliniyor yeni kullanıcının aktardığı kayıt ediliyor. Aynı sheet ismi ile aktarılmış bilgilerse silinmesinin ve yeni hali ile yüklenmesinin sakıncası yok ancak farklı dosyadan farklı sheet ismi ile aktarılanı dosyaya ilave etmeli.

Elbette ben her dosya için sheet isimlerini içeren farklı makroları dosyalarına koyacağım.

Bu konuda yardımlarınıza ihtiyacım var ve çok acil.

NOt: Her dosyanın kendine özgü bir yapısı var. Ancak tüm sheetleri birbirine benzetmem gerekiyor. (aynı başlık altında olanları bir araya toplamam gerekiyor ve o sheetteki bütün bilgilere ihtiyacım bulunmuyor) Bunun için nasıl bir ekleme yapılabilir. Mesela; aktarma yapılacak bir dosyadaki c1 hücresi aktarılacak dosyada a1 e yazılmalı. bir başka dosyadaki d1 hücresi a1 ye yazdırılmalı. Bir tane örnek koyaranız onu çoğaltabileceğimi düşünüyorum. (Aşağıdaki makroda tüm sayfayı aktarıyor)

Set wb = ActiveWorkbook

MyFolder = "E:\DOSYA"
MyFile = "BK.xls"

Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.FolderExists(MyFolder) Then
FSO.CreateFolder (MyFolder)
End If

Sheets(Array("AK")).Copy
Set wb1 = ActiveWorkbook
wb1.SaveAs Filename:=MyFolder & "\" & MyFile
wb1.Close
wb.Activate

Set wb = Nothing
Set FSO = Nothing
Application.ScreenUpdating = True
End Sub
 
Katılım
27 Ekim 2007
Mesajlar
10
Excel Vers. ve Dili
excel ing 2003
Aşağıya örnek dosyalar koydum

DOSYA 1 ve DOSYA 2 deki sheetler DATA altında toplanacak.

DATA da nasıl bir görüntü olması gerektiğini göstermeye çalıştım.
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Merhaba zeynepk. Bir çözüm hazırladım, umarım işine yarar. Dosya yollarını, gerekiyorsa dosya isimlerini ve sayfa isimlerini kendinize göre ayarlayın.

Sub DATA()

Workbooks.Open Filename:="C:\EXCEL\Dosya1.xls"
Workbooks.Open Filename:="C:\EXCEL\Dosya2.xls"
Windows("Dosya1.xls").Activate
Sheets("A").Select
Sheets("A").Copy Before:=Workbooks("DATA.xls").Sheets(1)
Windows("Dosya2.xls").Activate
Sheets("B").Select
Sheets("B").Copy Before:=Workbooks("DATA.xls").Sheets(1)
ActiveWorkbook.Save

Windows("Dosya1.xls").Activate
Range("A1").Select
ActiveWorkbook.Close
Windows("Dosya2.xls").Activate
Range("A1").Select
ActiveWorkbook.Close

End Sub
 
Katılım
27 Ekim 2007
Mesajlar
10
Excel Vers. ve Dili
excel ing 2003
serdarokan teşekkür ederim ilgilendiğin için. Evet aslında iyi bir çalışma olmuş ancak benim istediğim şey biraz farklı;

Senin makro ile dosyalardan açmadan sheetleri dataya kopyalayabiliyoruz. Ancak her aktarmada yeni bir sheet açıyor ve yeni bir isim veriyor sheete.

* Eğer o dosyadan ilk kez dataya bilgi çekiliyorsa yeni sheet açsın ve çekilen dosyadaki sheet ismini versin.
* Dataya hergün dosyalardan bilgi çekilerek yenileneceği için bir sonraki dosyadan bilgi çektiğimde aynı isimli sheetin üzerine yeniden kayıt yapsın yada aynı isimli sheete data dan kaldırıp yeniden o sheeti oluştursun
* Birde her dosyadaki bilgiler farklı kolonlarda. Ben aynı başlık altında toplanan bilgileri data da farklı sheetlerde olsada aynı kolona toplamak istiyorum. (Bunun sebebi en sonunda bu bilgilerden istediklerimi alt alta kopyalıyor olmam. Raporu verme dururumuma göre hangi sheetlerin kopyalanacağı belli olmadığından baştan hepsini bir dosyada alt alta kopyalamak işime yaramıyor. O yüzden bilgileri sheetler halinde tek bir data da toplamak istiyorum)

Umarım sorunumu anlatabilmişimdir
 
Katılım
27 Ekim 2007
Mesajlar
10
Excel Vers. ve Dili
excel ing 2003
Arkadaşlar aşağıdaki makroyu record macro ile yaptım. Aslında işime yarıyor ancak aktarma yapılacak dosya sayısı ve sheetler içindeki bilgilerin bazen 15000 satıra kadar dolu olması, makroyu çalıştırıken çok yavaşlatıyor. Bunu yaklaşık 15 dosyadan bilgi çekmek için kullanacağım. Yani data içine 15 tane sheet açacağım.

Aşağıdaki kodlarda belki ufak tefek düzeltmeler yapılırsa işimi daha rahat halledebileceğim.




Sub dosyaaktarma()

Workbooks.Open Filename:="E:\dosya\DOSYA1.xls"
Range("A1:A5").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("DATA.xls").Activate
Range("A1").Select
ActiveSheet.Paste
Windows("DOSYA1.xls").Activate
Range("B1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Windows("DATA.xls").Activate
Range("B1").Select
ActiveSheet.Paste
Range("B35").Select
Windows("DOSYA1.xls").Activate
ActiveWindow.Close
Sheets("PIZL").Select
Workbooks.Open Filename:="E:\dosya\DOSYA2.xls"
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("DATA.xls").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("DOSYA2.xls").Activate
Application.CutCopyMode = False
Selection.Copy
Windows("DATA.xls").Activate
ActiveSheet.Paste
Windows("DOSYA2.xls").Activate
Range("C1").Select
Range(Selection, Selection.End(xlToLeft)).Select
Range("C1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
Windows("DATA.xls").Activate
Range("B1").Select
ActiveSheet.Paste
Range("H24").Select
Windows("DOSYA2.xls").Activate
ActiveWindow.Close
ActiveWorkbook.Save
End Sub
 

baydeniro

Altın Üye
Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Altın Üyelik Bitiş Tarihi
20-02-2025
Sayın zeynepk, size yardımcı olmak isterdim. Ancak benim makro bilgim sihirbaz ile makro yapacak düzeyde. Size gerekli olan makro oldukça üst düzeyden bilgi gerektiren bir makro. Umarım forumdan beklediğiniz yardımı alırsınız. Sağlıcakla kalın.
 
Katılım
27 Ekim 2007
Mesajlar
10
Excel Vers. ve Dili
excel ing 2003
Yinede teşekkürler..

Bu işi bilen arkadaşlardan çok rica ediyorum bana başka woorkbooktan bilgi aktarma konusunda yardımcı olmasını. Farklı sheetten aktarma yapmakta sorunum yok ama günlerdir şu farklı woorkbooktan kayıt için uğraşıyorum.

Bana yardımcı olursanız çok büyük iyilik etmiş olacaksınız. Üstelik mümkünse yarına kadar bu sorunu çözmeme yardım edebilirmisiniz?
 
Üst