Belli bir alandaki veriyi diğer dosyaya kopyalamak

Katılım
19 Ekim 2006
Mesajlar
6
Excel Vers. ve Dili
2003 / ENG
Bir klasördeki tüm xls dosyalarının sabit bir alanından verilerini almak için bir macro buldum, biraz değiştirdim. Aşağıudaki makro A satırındaki hücerelere dosya isimlerini, bunların altına da o dosyanın G25 hücresindeki değeri yazıyor.

Ancak ben tek bir hücreyi almayı değil, bir alanı yazdırmak istiyorum. Yani dosya adını yazdığı A1 hücresinin altına, ilgili dosyadan G25:G400 arasındaki veriyi kopyalasın. Sanırım ActiveSheet.Cells değişkeninde düzenleme yapmam gerekli ama nasıl?

Kod:
Sub VerialC()
Dim VeriDosya
Dim i As Byte
ChDrive ("C")
ChDir ("C:\FirmaAdı")
Dosya = Dir("*.xls")
    While Dosya <> ""
        i = i + 1
        Workbooks.Open Filename:="C:\FirmaAdı\" & Dosya
        Workbooks("test-sutunlar.xls").ActiveSheet.Cells(2, i).Value = _
        Workbooks(Dosya).ActiveSheet.Range("G25").Value
        Workbooks("test-sutunlar.xls").ActiveSheet.Cells(1, i).Value = Dosya
        Workbooks(Dosya).Close
        Dosya = Dir
    Wend
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu dosyalardaki veriler aynı dosyada nasıl toplanacaktır. Altalta veya yanyana gibi.
 
Katılım
19 Ekim 2006
Mesajlar
6
Excel Vers. ve Dili
2003 / ENG
Merhaba Levent bey,

&#304;lgilendi&#287;iniz i&#231;in te&#351;ekk&#252;rler, ancak uzun yol ile macro'yu &#231;al&#305;&#351;t&#305;rmay&#305; ba&#351;ard&#305;m. Verilerin altalta gelmesi gerekiyordu, ben de ActiveSheet i&#231;in Cells(x, i) = ("h&#252;cre") e&#351;itli&#287;ini ihtiyac&#305;m olan 365 'e kadar tekrar ettirdim. Yani

Workbooks("test-sutunlar.xls").ActiveSheet.Cells(2, i).Value = _
Workbooks(Dosya).ActiveSheet.Range("G25").Value

ile ba&#351;layan e&#351;itli&#287;i, kitap i&#231;inde ayr&#305;ca CONCATENATE 'den faydalanarak

Workbooks("test-sutunlar.xls").ActiveSheet.Cells(366, i).Value = _
Workbooks(Dosya).ActiveSheet.Range("G389").Value

'a kadar yazd&#305;m. Macro biraz b&#252;y&#252;d&#252; ger&#231;i :)

Excel'de macro &#246;&#287;renmeye hen&#252;z birka&#231; g&#252;n &#246;nce ba&#351;lad&#305;m, forumlardan faydalanarak &#246;&#287;renmeye &#231;al&#305;&#351;&#305;yorum. E&#287;er h&#252;crenin h&#252;creye de&#287;il de aral&#305;&#287;&#305;n aral&#305;&#287;a kopyalanmas&#305;na dair bir e&#351;itlik yazabilirseniz memnun olurum.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aral&#305;&#287;&#305;n aral&#305;&#287;a aktar&#305;lmas&#305;nda a&#351;a&#287;&#305;daki gibi bir kodlama kullanabilirsiniz.

Kod:
sheets("sayfa1").range("a1:g100")=sheets("sayfa2").range("a1:g100").value
Burada dikkat edilmesi gereken nokta aktar&#305;lacak veri aral&#305;&#287;&#305; ile aktar&#305;lan alan&#305;n ayn&#305; say&#305;da h&#252;cre i&#231;ermesidir.

veya copy-paste &#351;eklinde bir kodlamada yap&#305;labilir. Bu kodlama veri say&#305;s&#305; &#231;ok fazla oldu&#287;unda &#231;ok daha h&#305;zl&#305; &#231;al&#305;&#351;&#305;r.

Kod:
sheets("sayfa2").range("a1:g100").copy
sheets("sayfa1").range("a1").pastespecial
application.cutcopymode=false
 
Üst