Çözüldü Txt Dosyasında Makro Kodu ile Değiştirme İşlemi

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
640
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Merhaba;

Excel dosyasından txt dosyasına makro ile kopyalama yapıyorum.
A sütunu boş, B sütunu dolu
Böyle olunca txt dosyasına kopyalama yapınca sadece B sütunu kopyalanıyor.
Halbuki boş olan A sütunu da olmalı ama yapamadım.

Alternatif çözüm için A sütununa J harfi koydum.
Txt dosyasına makro ile iki sütun kopyalama yapıyor.

Bu aşamada makro ile J harfini seçip boş karakter ile değiştirmek istedim ama olmuyor.
Bu mümkün mü ?
Ya da yaşadığım bu soruna başkaca bir çözüm var mı ?
Yardımcı olabilir misiniz ?
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,621
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba,
Kod:
Sub Kod()
Open ThisWorkbook.Path & "\Text.txt" For Output As #1
Dim R As Range

Range([K1].Text).Select

Set R = Selection
For a = 1 To R.Rows.Count
    For b = 1 To R.Columns.Count
        If b = R.Columns.Count Then
            Print #1, R.Cells(a, b)
        Else
            Print #1, R.Cells(a, b),
        End If
    Next
Next
Close #1
    Range("A1").Select
End Sub
K1 hücresine hangi alanı text dosyasına katmak istiyorsanız yazınız. (ör: ="A1:K"&BAĞ_DEĞ_DOLU_SAY(B:B)) gibi
İyi çalışmalar
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
640
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Tevfik Bey;

Ekli örnek excel dosyasını ekliyorum. İçinde makronuz var. Çalıştırdım ortaya çıkan sonuç text isimli txt dosyasında.
Bir de aktif isimli txt dosyasını ekliyorum. Aktif isimli txt dosyasının tek kusuru JJJ harfleri, bunlar olmayacak.

Sizin text dosyasının kusuru ise; 683.482,85 tutarının önüne geliyorum ve backspace tuşuna basıyorum. Karakter karakter siliyor.
Diğer aktif isimli dosyada ise aynı işlemi yaptığımda direkt J harfine geliyor. Olması gereken bu idi.
Bu dosyayı beyanname programına yükleyeceğim.
Aktif isimli dosyada J harflerini kaldırsam direkt yüklüyor ama text isimli dosyada yüklemiyor. Çünkü sütunlar farklı
Anlatabildim mi ?
 

Ekli dosyalar

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,621
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba,
Range([K1].Text).Select
makroda bu satırı silseniz ve istediğiniz alanı seçip makroyu çalıştırırsanız yine size txt dosyası oluşturur. Sanırım sizdeki tab ile yapıyor birleştirmeyi.
İyi çalışmalar
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
640
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Tevfik Bey,

İlginiz için teşekkür ederim.

Bu soruna başka bir çözüm önerisi olan var mı ?
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,621
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Siz kullandığınız makroyu yazın şuraya belki çözüm daha kolay olur
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
640
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Dim myFile As String
Dim rng As Range
Dim cellValue As String
Dim i As Integer, j As Integer
Dim desktopPath As String
desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
myFile = desktopPath & "\Aktif.txt"
Open myFile For Output As #1
Set rng = ActiveSheet.UsedRange
For i = 1 To rng.Rows.Count
For j = 1 To rng.Columns.Count
cellValue = rng.Cells(i, j).Value
If cellValue = "" Then
cellValue = " "
End If
Print #1, cellValue;
If j <> rng.Columns.Count Then
Print #1, vbTab;
End If
Next j
Print #1,
Next i
Close #1
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,621
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba,
makronuzda Set rng = ActiveSheet.UsedRange ifadesini Set rng = ActiveSheet.Range([K1].Text) bu ifade ile değiştirip deneyin.
İyi çalışmalar
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
640
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Tevfik Bey;

Evet şimdi oldu, tek sıkıntı kaldı.
K1 hücresinde dosyada da göreceksiniz. 31. satıra kadar alıyor. Alt satırlar yok.
Bunu 200. satıra kadar çekmek için ne yapabiliriz ?
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,614
Excel Vers. ve Dili
Pro Plus 2021
251464

Java ve BDP kurdum test için,

Kod:
Sub txtOlustur()
    Dim desktopPath$, myFile$, i, lRow, al
    desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    myFile = desktopPath & "\Aktif.txt"
    lRow = Intersect(Range("A:D"), ActiveSheet.UsedRange).Rows.Count
    al = Range("A1:D" & lRow).Value
    Open myFile For Output As #1
    For i = 1 To UBound(al)
        If al(i, 2) & al(i, 3) & al(i, 4) <> "" Then
            Write #1, vbTab & al(i, 2) & vbTab & al(i, 3) & vbTab & al(i, 4)
        Else
            Write #1, ""
        End If
    Next i
    Close #1
End Sub
 
Son düzenleme:

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,621
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
K1 hücresine ="A1:E"&ARA(2;1/(B:B<>"");SATIR(B:B)) yazınız
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,621
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Veysel Hocam,
Makronuz yazdığı satırları tırnak içine alıyor.
Saygılarımla
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,614
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub txtOlustur2()
    Dim desktopPath$, myFile$, i, lRow, dataObj
    Set dataObj = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    myFile = desktopPath & "\Aktif.txt"
    lRow = Intersect(Range("A:D"), ActiveSheet.UsedRange).Rows.Count
    Range("A1:D" & lRow).Copy
    Open myFile For Output As #1
    dataObj.getFromClipboard
    Print #1, dataObj.getText
    Close #1
    Application.CutCopyMode = False
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,621
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
İşte bu güzel oldu. Çok teşekkürler
Saygılarımla
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
640
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Tevfik Bey ve Veysel Bey;

İkinizinde yazdığı kodlar tam istediğim gibi çalışır, eksik olmayın, emeğinize sağlık.

Siz muhasebecisiniz galiba Veysel Bey;

Beyannamedeki aktif, pasif ve gelir tablosunu manuel olarak değil de excelden aktarabilir miyim diyerekten çalışmaya başladım.
Aktif bölümünü bitirdim, şimdi diğerlerine başlayacağım inşallah.
Sizin elinizde bu durum için hazır bir excel çalışması var mı ?
Varsa ben boşuna vakit kaybetmeyeyim ?
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,614
Excel Vers. ve Dili
Pro Plus 2021
Siz muhasebecisiniz galiba Veysel Bey;

Beyannamedeki aktif, pasif ve gelir tablosunu manuel olarak değil de excelden aktarabilir miyim diyerekten çalışmaya başladım.
Aktif bölümünü bitirdim, şimdi diğerlerine başlayacağım inşallah.
Sizin elinizde bu durum için hazır bir excel çalışması var mı ?
Varsa ben boşuna vakit kaybetmeyeyim ?
Muhasebeci değilim de ebeyannamenin ilk çıktığı yıllarda epey uğraşmıştım. Excel'den beyanname oluşturma, paketleme, gönderme, otomatik pdf indirme, pdflerin beyanname cinslerini dönemlerini watermark olarak yan tarafına ekliyordum, otomatik bir yaprakta 2 sayfa yazdırma vs. her şeyi yapıyordum. Sonra Zirveye geçtiler hepsi boş oldu. Sizin kullandığınız program bu işleri yapmıyor mu, neden uğraşıyorsunuz anlamadım.
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
640
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Nebim programı kullanıyoruz.
Şu ana dek bu sorgulamayı hiç yapmadım, olabileceğini düşünmemiştim, belki vardır. Pazartesi günü bakacağım.

Teşekkür ederim, ufkumu açıyorsunuz, bugün verimli bir gün oldu :)
 
Üst