• DİKKAT

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

kapalı .xls ve .csv dosyasından veri aktarmak

Katılım
25 Mayıs 2007
Mesajlar
165
Excel Vers. ve Dili
türkçe vista işletim sistemi
excel2007
türkçe
Herkese merhaba..

elimde iki dosya var ve her ikise de kapalı durumdadır.

1.' si (c:\mizan.xls) ve bu dosyanın (mizan) sayfasının (a2:g55) aralığında rakamsal veri bulunmaktadır.

2.' si ise (c:\deneme.csv) ve tüm rakamsal veriler bu dosyanın (deneme) sayfasının (a) kolununda bulunmaktadır.

Açık olan çalışma kitabımın;

a - (sheet1)' inin a2:g55 aralığına; mizan.xls' deki verileri,
b - (sheet2)' nin (a) kolonuna ise; deneme.csv' deki verileri

aktarmak istiyorum.

nasıl bir kod yazılması gerekiyor ? :???:

yardımcı olacaklara şimdiden teşekkürler.. kolay gelsin
 
Öncelikle sorunuzu çok sade bir dil kullanarak, son derece anlaşılır bir şekilde sormanız sebebiyle teşekkür ederim. Tüm üyelerimizin bu soru sorma şeklinizi örnek almasını dilerim.

Sorunuza gelince kesin cevap için mizan.xls ve deneme.csv dosyalarınızın bir örneğini eklermisiniz.
 
teşekkürler leventm.

dosyalar ektedir.
 
Aşağıdaki kodu deneyin.

Kod:
Sub verial()
Dim hucre As Range
For Each hucre In [a2:g55]
sat = hucre.Row
sut = hucre.Column
hucre = ExecuteExcel4Macro("'C:\[mizan.xls]mizan'!R" & sat & "C" & sut)
Next
Sheets("sheet2").QueryTables.Add(Connection:="TEXT;C:\deneme.csv", Destination:=Sheets("sheet2").[a1]).Refresh
MsgBox "Veriler Güncellendi.", 32, "Sonuç"
End Sub
 
tekrar teşekkürler leventm.

Gecenin bu saatinde yine tam 12' den vurdun.

iyi geceler... :icelim:
 
Leventm üstadın, çözümüne alternatif olması açısından, ADO bağlantisi ve sorgu ile hazırlanmış aşağıdaki kodları da ben vermiş olayım.

Const adOpenForwardOnly As Long = 0
Const adLockReadOnly As Long = 1
Const adCmdText As Long = 1

Public Sub Veri()
Dim Baglanti As Object
Dim RS As Object
Dim DosyaAdi As String
Dim BaglantiKomutu As String
Dim SorguKomutu As String
Dim rng As Range
DosyaAdi = ThisWorkbook.Path & "\mizan.xls"
BaglantiKomutu = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & DosyaAdi & ";" & "Extended Properties=Excel 8.0;"
SorguKomutu = "SELECT * FROM [mizan$A2:G55]"
Set RS = CreateObject("ADODB.Recordset")
RS.Open SorguKomutu, BaglantiKomutu, adOpenForwardOnly, adLockReadOnly, adCmdText
If Not RS.EOF Then
ActiveSheet.Range("A1").CopyFromRecordset RS
End If
RS.Close
Set RS = Nothing
End Sub

İyi çalışmalar
 
teşekkürler fpc..

senin kodun da çok işe yarıyor, ancak iki nokta var :

1) mizan.xls' deki verileri [a3]' den başlayarak alıyor. Diğer bir deyişle sutun başlıkları yok..

2) deneme.csv dosyasındaki veriler sheet2' ye gelmiyor.

bunları da halledebilirsen memnun olacağım.

emeğine sağlık, teşekkürler...
 
Herkese merhaba, arkadaşın sorusuna ilave olarak bende birşeyler sormak istiyorum.

benimde elimde iki dosya var, birisi .xls uzantılı diğeri .csv, excel olan dosya devamlı açık. Diğer dosya olan .csv ise devamlı kapalı olup, bu dosya farklı bir program tarafından,export seçeneği kullanılarak (.csv uzantılı kaydedilerek) zaman zaman manuel olarak güncellenmektedir.

1.' si (c:\pss.xls) ve bu dosyanın (a1:g25) aralığında rakamsal veri bulunmaktadır.

2.' si ise (c:\deneme.csv) ve tüm rakamsal veriler bu dosyanın (deneme) sayfasının yine aynı (a1:g25) kolunlarında bulunmaktadır.

Excel dosyam devamlı açık olduğu için, .csv uzantılı dosyamda herhangi bir veride değişiklik meydana geldiğinde bu değişikliğin otomatik olarak, herhangi bir tuşa basmadan, excele aktarmanın bir yolu var mıdır ?

bunu için nasıl bir kod yazılması gerekiyor ?

Yardımlarınız için şimdiden teşekkürler.
 
Geri
Üst