Her CHANGE yaşandığında verileri TXT dosyasına atmak (otomatik)

Katılım
23 Kasım 2023
Mesajlar
5
Excel Vers. ve Dili
Plus 2016
Merhabalar,

-Benim bir excel dosyam var.
-İçerisinde 8 kolon ve başlıkla beraber 456 satır var.
-Benim excel sayfama her 1 saniyede bir farklı bir programdan bilgi girişi yapılıyor.Yani her 1 saniyede veriler güncelleniyor aralıksız.

Ben bir makro(kod) yapmam lazım, görevi her sayfa "CHANGE" olduğunda (yani sayfada bir veri değiştiğinde-yeni veri eklendiğinde) tüm verileri bir.TXT dosyasına yazdırmak istiyorum. Yani excel sayfasında herhangi bir değişiklik olur olmaz tüm verileri bir .TXT dosyasına yazdırmak istiyorum. İnternetten bol bol araştırdım ama bir türlü çözümü bulamadım. Makro sürekli çalışacak.

Ben burdaki veriyi c# programımdan OLEDB kullanarak verileri dinamik olarak çekiyorum fakat aklımda farklı bir yöntem var ve OLEDB'den daha performanslı olabileceğini düşünüyorum ve denemek istiyorum.

Lütfen yardımcı olursanız sevinirim.
 
Katılım
23 Kasım 2023
Mesajlar
5
Excel Vers. ve Dili
Plus 2016
Aşağıdaki kodu ilgili excel sayfasının CHANGE kısmına ekledim hata veriyor. Bunun öncesinde ilgili runtime referansını eklemiştim.

Sub FSOWriteToTextFile()
Dim FSO As New FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FileToWrite = FSO.OpenTextFile("C:\Test\TestFile.txt", ForWriting)

FileToWrite.Write "test line"
FileToWrite.Close

End Sub
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
Şöyle bir şey işinizi görür mü?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dsy As String
dsy = "C:\Test\TestFile.txt"
Open dsy For Append As #1
    Print #1, Target.Address; ":  "; Target.Value
Close #1
End Sub
 
Katılım
23 Kasım 2023
Mesajlar
5
Excel Vers. ve Dili
Plus 2016
Maalesef, gelişmişlik düzeyini bilebilecek bilgi birikimine sahip değilim.
Maalesef, gelişmişlik düzeyini bilebilecek bilgi birikimine sahip değilim.
Herşey için çok teşekkür ederim.

Geriye tek bir sıkıntım kaldı. Bana verdiğiniz kod'da veriyi ilgili TEXT dosyasına işliyor sorun yok.

Fakat ilgili TEXT dosyasına yazarken önceden içinde yazılı olan yazının üstüne ilave yazıyor.

Yani önceden "ABC" yazılı ise ve verdiğiniz kod ile ben "123" yazdırırken eskiyi silip "123"yazmak yerine "ABC 123" yazıyor.

Bu konuda da yardımcı olabilir misiniz?
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,334
Excel Vers. ve Dili
2007 Türkçe
Rica ederim,
Append ifadesini Output olarak değiştirirseniz eski veriyi siler.
İyi çalışmalar...
 
Üst