• DİKKAT

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

Seçili Alanı TXT. Olarak Kaydetmek

bydogannn67

Altın Üye
Katılım
6 Ocak 2016
Mesajlar
226
Excel Vers. ve Dili
2010 türkçe
Merhabalar,

excelde seçmiş olduğum hücreleri excelin bulunmus olduğu klasöre txt olarak nasıl kaydedebilirim

yardımcı olabilirmisiniz
 
Merhaba,
Aşağıdaki kodu deneyiniz.
PHP:
Sub kod()
Open ThisWorkbook.Path & "\Text.txt" For Output As #1
Dim R As Range
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
End Sub
 
ADVZEp.png


Hocam resimdeki gibi hata verdı
 
Bir örnek dosya paylaşırsanız hatanın kaynağını anlayabiliriz sanıyorum.
 
Merhaba.
Sayın adaşımın müsadeleriyle.
Bir deneme de ben yapayım dedim.
Tek hücrelik olmayan bir alan seçiliyken kod'u çalıştırın.
CSS:
Sub YEDEK_TXT_Kaydet()
If Selection.Count = 1 Then Exit Sub
Dim sat As Integer, sut As Integer, metin As String
Open ThisWorkbook.Path & "\" & "yedek_" & Format(Now, "hhmm_ddmmyy") & ".TXT" For Output As #1
    With Selection
        For sat = 1 To .Rows.Count
            For sut = 1 To .Columns.Count
                If sut = 1 Then metin = .Cells(sat, sut)
                If sut > 1 Then metin = metin & vbTab & .Cells(sat, sut)
            Next: Print #1, metin: metin = Empty
        Next sat
    Close #1
    End With: MsgBox "Bitti"
End Sub
 
Ömer Bey'den güzel bir çözüm.

Open satırı
Open ThisWorkbook.Path & "\" & "yedek_" & Format(Date, "dd mm yyyy") & " " & Format(Time, "hh_mm_ss") & ".TXT" For Output As #1
şeklinde düzenlenirse oluşturulan dosya adı daha okunur olur.
 
Eyvallah Sayın @muygun,
aslında okunurluk yanısıra; GÖZAT ekranında veya
Windows Gezginindeki görüntü bakımından da daha anlamlı olur gibi ama neticede isim işi keyfe kalmış mevzu.
Kolay gelsin.
.
 
Ömer bey Kodlar oldukça kullanışlı (kendimede yedekledim)
Bende .txt dosyalarının birden fazla bir yerde depolanabileceğini düşünerek
Önce tarih ve sonra saat sıralaması veriye ulaşmayı da kolaylaştırır diye düşündüm.
Size de kolaylıklar dilerim.
 
Üstadlarım emeğinize sağlık istediğim gibi olmus, yalnız son olarak keyfe keder bir isteğim olarak bu kayıt edeceğim txt nin ismini bana sorma imzanı varmı
 
Döngüsüz tek seferde yazdırılsa daha mı iyi olur?
 
Merhabalar, Sayın @veyselemre , Sayın @Haluk .
Aşağıdaki gibi mi mesela?
Yoksa daha pratik bir yolu mu var?
CSS:
Sub SECILI_ALANI_TXT()
If Selection.Count = 1 Then Exit Sub
With Application
    dosya = .InputBox("TXT belge için isim giriniz!..")
    If dosya = False Then
        MsgBox "İşlemi iptal ettiniz.", vbInformation, "..:: Ömer BARAN ::.."
        Exit Sub
    Else: isim = dosya
    End If
        Selection.Copy: Sheets.Add After:=ActiveSheet: ActiveSheet.Paste
        ActiveWorkbook.SaveAs Filename:=isim, FileFormat:=xlText
        .ScreenUpdating = False: .DisplayAlerts = False
        ActiveWindow.SelectedSheets.Delete
        .DisplayAlerts = True: .ScreenUpdating = True
End With: MsgBox "BİTTİ"
End Sub
 
Merhaba Sayın Üstadlar,
Seçilen aralığı bir hücreden alması için eklenecek satır nasıl olmalı?
Saygılarımla
 
kendi kullandığım bir makroyu ekleyeyim ben de.
Sheet1 sayfasının J3 hücresinde yazılı olan aralık adresindeki (örneğin J3 değeri B5:F48 olsun) verileri | ayracı ile txt olarak kaydetmek için:
Kod:
Sub xlTR_178786()
'VBE / Tools / References / Microsoft ActiveX DataObject X.X Library

    With New Recordset
        .Open "SELECT * FROM [Sheet1$" & Range("J3").Value & "];", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & ThisWorkbook.FullName & "';Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
        CreateObject("Scripting.FileSystemObject").CreateTextFile(ThisWorkbook.Path & "\TextDosya.txt").Write .GetString(, , "|", vbCrLf)
    End With

End Sub

TextDosya.txt olan dosya adını istediğiniz yöntemle üretip kodun içine bir değişken ile vs ekleyebilirsiniz.
 
Sayın Mancubus,
Makro böyle bir hata verdi. Neden olabilir acaba?
Saygılarımla
 

Ekli dosyalar

  • Mancubus_X1TR.jpg
    Mancubus_X1TR.jpg
    54.6 KB · Görüntüleme: 4
Seçili satırı With CreateObject("ADODB.Recordset") olarak değiştirin.
 
Sayın Zeki Gürsoy Hocam,
Şahsınızda, ilgilenen tüm arkadaşlara çok teşekkür ederim.
Saygılarımla
 
Sayın Mancubus,
Makro böyle bir hata verdi. Neden olabilir acaba?
Saygılarımla
muadil yöntem Zeki Bey'den gelmiş, teşekkürler.

makro adının altındaki şu satırdaki işlemi yapmak lazımdı.
genelde bu şekilde kısaca yazılır. ancak bazan da detaylı vermek gerekiyor :).
'VBE penceresinde / Tools'un altında / References tıklandıktan sonra / açılan listeden Microsoft ActiveX DataObject X.X Library işaretlenmeli.
 
Sayın Mancubus,
İlginize çok teşekkür ederim.
Saygılarımla
 
Geri
Üst