Soru getopenfilename ile dış excel'den veri yapıştırmak

seckinb

Altın Üye
Katılım
9 Aralık 2018
Mesajlar
363
Excel Vers. ve Dili
Excel 2019 - 32 bit TR
Altın Üyelik Bitiş Tarihi
10-06-2024
Merhaba

PHP:
fName = Application.GetOpenFilename("Excel Files (*.xls), *.xls", , "*")
If fName = "False" Then Exit Sub
Workbooks.Open fName
bunun gibi bir kod ile dış bir exceli seçip

b2:b21 aralığındaki veriyi yatay hale getirip xldown +1 pozisyonundaki bir A2:T2 aralığına yapıştırmayı planlıyorum.

nasıl yapabilirim?
 

Ekli dosyalar

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,129
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Aşağıdaki kodu deneyiniz...
PHP:
Sub kod()
fName = Application.GetOpenFilename("Excel Files (*.xls*), *.xls", , "*")
If fName = "False" Then Exit Sub
Set hdf = Cells(Rows.Count, 1).End(3).Offset(1)
Set w2 = Workbooks.Open(fName)
Set s2 = w2.Sheets(1)
hdf.Resize(, 20).Value = Application.Transpose(s2.Range("B2:B21"))
w2.Close 0
End Sub
 

seckinb

Altın Üye
Katılım
9 Aralık 2018
Mesajlar
363
Excel Vers. ve Dili
Excel 2019 - 32 bit TR
Altın Üyelik Bitiş Tarihi
10-06-2024
Merhaba,
Aşağıdaki kodu deneyiniz...
PHP:
Sub kod()
fName = Application.GetOpenFilename("Excel Files (*.xls*), *.xls", , "*")
If fName = "False" Then Exit Sub
Set hdf = Cells(Rows.Count, 1).End(3).Offset(1)
Set w2 = Workbooks.Open(fName)
Set s2 = w2.Sheets(1)
hdf.Resize(, 20).Value = Application.Transpose(s2.Range("B2:B21"))
w2.Close 0
End Sub
bilgiyi başka worksheet'e yapıştırdı.
bunu önlemek için yapıştırılacak worksheet adını "dozimetri" olarak belirleyemez miyiz?

mesela

Kod:
Sub dozimetri_al()
fName = Application.GetOpenFilename("Excel Files (*.xls*), *.xls", , "*")
If fName = "False" Then Exit Sub
Set hdf = Cells(Rows.count, 1).End(3).Offset(1)
Set s3 = ThisWorkbook.Sheets("dozimetri")
Set w2 = Workbooks.Open(fName)
Set s2 = w2.Sheets(1)
hdf.Resize(, 20).Value = Application.Transpose(s2.Range("B2:B21"))
w2.Close 0
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Buyurun.:cool:
Kod:
Set s2 = Worksheets("dozimetri")
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
deneyiniz.:cool:
Kod:
s3.Resize(, 20).Value = Application.Transpose(s2.Range("B2:B21"))
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
deneyiniz.:cool:
Kod:
s3.range("B" & hdf).Resize(, 20).Value = Application.Transpose(s2.Range("B2:B21"))
 

seckinb

Altın Üye
Katılım
9 Aralık 2018
Mesajlar
363
Excel Vers. ve Dili
Excel 2019 - 32 bit TR
Altın Üyelik Bitiş Tarihi
10-06-2024
PHP:
Sub dozimetri_al()
fName = Application.GetOpenFilename("Excel Files (*.xls*), *.xls", , "*")
If fName = "False" Then Exit Sub
Set hdf = Cells(Rows.count, 1).End(3).Offset(1)
Set w2 = Workbooks.Open(fName)
Set s2 = w2.Sheets(1)
Set s3 = Worksheets("Dozimetri")
s3.Range("B" & hdf).Resize(, 20).Value = Application.Transpose(s2.Range("B2:B21"))
w2.Close 0
End Sub
Son hali bu olan kodumuz halen set s3 hanesinde hata veriyor.

dış excel b2:b21 'i
A2:T2 aralığına yapıştırmayı planlıyorum. Her yeni yapıştırma Xldown +1 pozisyonuna eklenecek şekilde.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Nereden kopyalanıp ,nereye yapıştırılacak.:cool:
 

seckinb

Altın Üye
Katılım
9 Aralık 2018
Mesajlar
363
Excel Vers. ve Dili
Excel 2019 - 32 bit TR
Altın Üyelik Bitiş Tarihi
10-06-2024
seçerek açtığım excel dosyasının B2:B21 aralığını seçip
dikey veriyi yatay olarak

A2:T2 aralığına yapıştırması gerekiyor.

sanırım resize kodu bu işe yarıyor, çünkü dozimetri yerine farklı bir worksheet'e bu veriyi yatay olarak yapıştırdı.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
A2:T2 aralığı hangi dosya ve sayfada?
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,129
Excel Vers. ve Dili
2007 Türkçe
İkinci mesajdaki koddaki ilgili alanı aşağıdaki şekilde değiştiriniz.
Kod:
Set hdf = Sheets("Dozimetri").Cells(Rows.Count, 1).End(3).Offset(1)
 

seckinb

Altın Üye
Katılım
9 Aralık 2018
Mesajlar
363
Excel Vers. ve Dili
Excel 2019 - 32 bit TR
Altın Üyelik Bitiş Tarihi
10-06-2024
PHP:
Sub dozimetri_al()
fName = Application.GetOpenFilename("Excel Files (*.xls*), *.xls", , "*")
If fName = "False" Then Exit Sub
Worksheets("Dozimetri").Select
Set hdf = Cells(Rows.count, 1).End(3).Offset(1)
Set w2 = Workbooks.Open(fName)
Set s2 = w2.Sheets(1)
hdf.Resize(, 20).Value = Application.Transpose(s2.Range("B2:B21"))
w2.Close 0
End Sub
kod bu haliyle çalıştı.
yardımlarınız için çok teşekkürler
 
Üst