• DİKKAT

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

makro'da vba ile bir xls den farklı .xls ve .txt açma

Katılım
16 Aralık 2009
Mesajlar
10
Excel Vers. ve Dili
2003 vba macro
Yapmam gereken yeni bir excel xls'den zaten var olan bir xls'i ve .txt adlı dosyaları kodu yazarak 'açmak'tır, arattım ama bulamadım, yardımcı olursanız çok sevinirim..txt uzantılı dosyadaki verileri var olan xls'in rowlarına aktarmaktır yazmam gereken program. biraz karışık anlattım ama yardımcı olursanız çok sevinirim. şimdiden teşekkürler.
 
Son düzenleme:
Sub ac
CreateObject("Shell.Application").Open _
"C:\Users\bla\Desktop\blaprojesi\bla.xls"
end Sub

Sub ac1
CreateObject("Shell.Application").Open _
"C:\Users\bla\Desktop\blaprojesi\bla.txt"
end Sub

deyince önce xls sonra txt'yi açtı araştırdım oldu bu kodla.

şimdi sıra txtdeki verileri var olan xls'e row row aktarmak.bu konu hakkında bilgisi olan varmıdır.

tabi öncelikle txtdeki verileri okutmam lazım noktalı virgüle kadar mesela ondan sonra xls in içindeki sheete row row aktarmam lazım.parse etmem lazım.

txt okutma nın fonksiyonu için yardımcı olabilecek varmıdır?
şimdiden teşekkürler.
 
Son düzenleme:
dosyaları okuyan kod

Sub dosyaoku()
b = Application.GetOpenFilename("All Files (*.*),*.*.")
i = 1
Open Dir(b) For Input As #1
Do While Not EOF(1)
Line Input #1, a
Cells(i, 1).Value = a
i = i + 1
Loop
Close
End Sub
 
birde txt den aldığımız verileri üzerinde yazdığımız değilde şu.xls deki şu sheetin row ve column una kopyalamak istiyorum bunu nasıl belirtebilirim lütfen yardımcı olurmusunuz???
 
Worksheets(ActiveSheet.Name).Cells(i, "A").Value
burada !?

"i" demek başlangıç satır yani row
"A" demek başlangıç sütun yani column

sen kendine göre bunları uyarlarsın


Sub dosyaoku()
b = Application.GetOpenFilename("All Files (*.*),*.*.")
i = 1
If b = False Then
Exit Sub
End If
Open b For Input As #1
Do While Not EOF(1)
Line Input #1, a
Worksheets(ActiveSheet.Name).Cells(i, "c").Value = a
i = i + 1
Loop
Close
Cells.Replace Chr(9), ""
For Each bosluk In ActiveSheet.UsedRange
bosluk.Value = Trim(bosluk.Value)
Next
End Sub
 
txt nin içinde buna benzer veriler var;

15.12.2010;45678;8765665
16.12.2010;420321;1006754 bunları aynen bu şekilde aktarmak istiyorum xls'in sheetinin row ve columnlarına.

ama bende full hepsi yanyana olacak şekilde satırlara geldi yani noktalı virgülden sonrasındakiler yeni bir satıra geçmedi hep kolondan devam etti.

Üstte yazdığınız koddada Worksheets(ActiveSheet.Name).Cells(i, "A").Value satırınamı git bu txtden aldığın verileri şu.xlsin şu sheetine yaz diye belirtmem gerek?

Biraz daha açarmısınız çok yeni olduğum için bu vba de çok zorluk yaşıyorum?
 
demekki sadece okutmak yeterli değil yukarıdaki kod açık olan çalışma sayfasına yazar kapalı bir başka dosyaya yazmaz burada öncelikle açık olan dosyanıza text formatındaki verileri getiriyoruz burada ayırma işlemleri birazcık zahmetli hücre karekterleri aynı ise yapılabilir farklı ise birazcık zor

örnek

15.12.2010;45678;8765665 bunu noktalı virgülden sonrasını yeni bir satıra getirilir ama takip eden veriler sayı karekteri aynı ise 10 karekter bir hücreye gerisi bir başka hücreye
bu durumda
15.12.2010 45678 8765665
böyle oluyor
eğer sayı karekterleri aynı ise 10,5,7

tabi öncelikle örnek bir dosya ekleyiniz ve veri alınacak text dosyası ekleyiniz. yapmak istediğinizi bir açıklama ve örnekle belirtiniz. bir bakalım
 
demekki sadece okutmak yeterli değil yukarıdaki kod açık olan çalışma sayfasına yazar kapalı bir başka dosyaya yazmaz burada öncelikle açık olan dosyanıza text formatındaki verileri getiriyoruz burada ayırma işlemleri birazcık zahmetli hücre karekterleri aynı ise yapılabilir farklı ise birazcık zor

Çok teşekkür ederim ilgilendiğiniz için.Çok önemli bir olay bunu yapmak benim için.


Yapmam gereken, önce yeni bir .xls yapmak. ondan sonra burda kodla var olan.xls'i ve .txt yi açtırmak sırayla onuda şu kodla yaptım;


Sub ac()
CreateObject("Shell.Application").Open _
"C:\Users\bla\Veri.xls"
End Sub



Sub ac1()
CreateObject("Shell.Application").Open _
"C:\Users\bla\bla\yeni_data.txt"

End Sub


bununla açılıyor hem .xls hemde .txt sonra

bu döngüyle de

Sub Import()
Open

"C:\bla\yeni_data.txt"

For Input As #1
R = 1
While Not EOF(1) 'Scan file line by line
C = 1
Entry = ""
Line Input #1, Buffer
Length = Len(Buffer)
i = 1
While i <= Length 'split comma-delimited string into

Cells
If (Mid(Buffer, i, 1)) = ";" Then
With Application.Cells(R, C)
.NumberFormat = "@" 'Text formatting
.Value = Entry
End With
C = C + 1

Entry = ""
Else
Entry = Entry + Mid(Buffer, i, 1)
End If
R = R + 1
Wend
If Len(Entry) > 0 Then
With Application.Cells(R, C)
.NumberFormat = "@" 'Text formatting
.Value = Entry
End With
End If
R = R + 1
Wend
Close #1
End Sub

sonra bu döngüyle yapıyorum ama bu sefer noktalı virgüle kadar olan kısımları alıyor ama yeni satıra geçmiyor yanyana kolonlara yazıyor hücrelere ve çalıştığım xlsde yapıyor yani benim için önemli olan ver.xls in içindeki yeni_data sheetinin rowlarına kopyalamak.onu nasıl belirtceğimi yapamıyorum tamam bu kod alıyor ama hem çalıştığım xls in rowlarına yanyaya kopyalıyor hemde saçmalıyor.

sonra bunları yeni_data sheetine parse ettikten sonra, veri.xls de var olan satırın 14.06.2010 var mesela onun altına kopyalamak sırayla yani veri.xls deki yeni_data sheetindeki verileri bu seferde veri.xls deki 14.06 dan sonraki rowlara aktarmak.

Ama öncelikle txtden kopyalama olayını yapmam lazım.

Umarım anlatabilmişimdir.
 

Ekli dosyalar

yukarıdaki 6 nolu mesajda küçük bir hata vardı düzelttim

örnek excel dosyasına sıralama ve kayıt nasıl olacaksa ona dair bir örnek dosya ekle birde yeni data dosyandaki veri yanlızca 1 satır bunun en az 5 satır olacak şekilde çoğaltarak ekle çünkü data dosyanın formatını bilmemiz gerekiyor bu iki örnek dosyayı oluştur ekle bir bakalım
 
ekli dosyaya bir bakınız
 

Ekli dosyalar

yukarıdaki 6 nolu mesajda küçük bir hata vardı düzelttim

örnek excel dosyasına sıralama ve kayıt nasıl olacaksa ona dair bir örnek dosya ekle birde yeni data dosyandaki veri yanlızca 1 satır bunun en az 5 satır olacak şekilde çoğaltarak ekle çünkü data dosyanın formatını bilmemiz gerekiyor bu iki örnek dosyayı oluştur ekle bir bakalım

ben makro olayını hallettim xls den sheete aktarıp, altına eklemeyi.kod sorunsuz çalışıyor teşekkür ederim ilgileriniz için yinede.

yalnız şöyle bir sorum daha olacak grafik içinde verileri almak nasıl oluyor onunla ilgili bir kod varmıdır yani mesela normalde bir grafik var zaten var olan onu silmeden gelen verilerle kendi kendini update edecek makro kodu varmıdır???
 
ben makro olayını hallettim xls den sheete aktarıp, altına eklemeyi.kod sorunsuz çalışıyor teşekkür ederim ilgileriniz için yinede.

yalnız şöyle bir sorum daha olacak grafik içinde verileri almak nasıl oluyor onunla ilgili bir kod varmıdır yani mesela normalde bir grafik var zaten var olan onu silmeden gelen verilerle kendi kendini update edecek makro kodu varmıdır???

makro olayını gönderdiğim dosya ilemi hallettiniz yoksa başka bir yollamı

grafik için bir şey söylüyemiyeceğim onun için ayrı bir başlık altında yeni konu açınız.
 
makro olayını gönderdiğim dosya ile hallettiniz yoksa başka bir yollamı

grafik için bir şey söylüyemiyeceğim onun için ayrı bir başlık altında yeni konu açınız.

Gönderdiğiniz dosyayıda inceledim teşekkür ederim farklı kod kullanıldı.
Grafik problemide halloldu.
 
Geri
Üst