listboxta listelenmiş sütunları not defterine kaydetmek.

Katılım
14 Ekim 2006
Mesajlar
267
Excel Vers. ve Dili
excel2003 Tr
sayın hocalarım hayırlı günler
ekte olan dosyamda sayfa1 de bir buton ile userform açılıyor. ardından commandbutton1 ile c:\kayıtlarım.txt adında bir dosya açılarak oraya listboxtaki sadece 1. sütun verileri kaydediliyor.yapmak istediğim listboxta kaç sütun varsa o kadar veriyi alması ve c:\ içine kaydedilen txt uzantılı dosyanın adını benim vermem.acaba bunlar mümkün mü? ve bana yardımcı olabilirmisiniz?

şimdiden herkese teşekkürler. saygılarımla:yardim:
--------------------------------------------------------------------------
bana bir harf öğretenin KIRK yıl kölesi olurum.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,648
Excel Vers. ve Dili
Pro Plus 2021
2 sütun kaydetmek için kodlarınızda aşağıdaki değişikliği yapın.
Kod:
Print #1, ListBox1.List(i, 0), ListBox1.List(i, 1)
 
Katılım
14 Ekim 2006
Mesajlar
267
Excel Vers. ve Dili
excel2003 Tr
sn veyselemre

elinize sağlık işime çok yaradı teşşekkür ederim. ancak c:\ içine kaydedilen dosya ismini kendim belirleyebilirmiyim?
Const MyFile As String = "C:\Kayitlar.txt"

yerine
Const MyFile As String = "C:\" & range("d1") & ".txt"

şeklinde yazdım ama olmadı.
teşekkürler saygılar:yardim:
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,648
Excel Vers. ve Dili
Pro Plus 2021
Kodlarınızı aşağıdaki şekilde düzeltin,
Kod:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
[COLOR=Red]Dim MyFile As String[/COLOR]
Private Sub CommandButton1_Click()
    Open MyFile For Append As #1
    For i = 0 To ListBox1.ListCount - 1
        Print #1, ListBox1.List(i, 0), ListBox1.List(i, 1)
    Next
    Close #1
End Sub
Private Sub CommandButton2_Click()
    ShellExecute 0, "Print", MyFile, vbNullString, "C:\", 1
End Sub
Private Sub UserForm_initialize()
Sheets("sayfa2").Select
ListBox1.ColumnCount = 2
ListBox1.RowSource = "a1:b20"
ListBox1.ColumnHeads = False
[COLOR=Red]MyFile = "C:\" & [d1] & ".txt"[/COLOR]
End Sub
 
Katılım
14 Ekim 2006
Mesajlar
267
Excel Vers. ve Dili
excel2003 Tr
sn veyselemre

harikasınız çok teşekkür ederim. uzun zamandır kafama takılan soruların cevabını buldum.
son bir sorum daha olacak.
not defterine kayıt yaparken not defterindeki sütunlar arasındaki genişliği ayarlamamız mümkün mü?
iki sütun arası 14 satır. daha fazla karakter içeren verilerde sütunlarda kayma oluyor. bunu nasıl önleyebiliriz.

ilginize çok teşekkür ederim saygılar.:yardim:
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,648
Excel Vers. ve Dili
Pro Plus 2021
Aşağıdaki fonksiyonu kodlarınızın sonuna ekleyin.
Kod:
Function esitle(giris, uz)
    If uz > Len(giris) Then
        esitle = giris & String(uz - Len(giris), " ")
        Else
        esitle = Mid(giris, 1, uz)
    End If
End Function
Aşağıdaki değişikliği yapın. Listbox'taki 1.sütun 15 karektere eşitlenecek,
2.sütun 25 karektere eşitlenip dosyaya yazılacaktır, karekter sayısı bundan uzunsa kesilerek dosyaya yazılacaktır.
Kod:
Print #1, esitle(ListBox1.List(i, 0), 15), esitle(ListBox1.List(i, 1), 25)

Ayrıca type kullanarak da çözüm bulunabilir.
 
Katılım
14 Ekim 2006
Mesajlar
267
Excel Vers. ve Dili
excel2003 Tr
emeğinize sağlık

diyecek birşey bulamıyorum. çok sağolun sn üstadım. herşey yerine oturdu şimdi.yardımlarınız için teşekkür ederim.

saygılar:)
 
Üst