Originally Posted by
Bear_Bull
merhaba,
1 excell dosyası yaptım, bunu eğer kendim manuel farklı kaydet CSV olarak kaydet dediğimde istediğim oluyor
kayıt yaparken değerlerin arasına ";" koyarak kaydediyor ve yine excell de aç dediğimde sanki excelmiş gibi sutunlara yerleşmiş şekilde açılıyor.
ama sorunum şu,
makro ile kaydetmek istiyorum o zaman değerlerin arasına "," koyarak kayıt yapıyor istediğim şekilde açamıyor ve okutamıyorum.
makro ile kaydederken ";" olarak yaptırmanın bir yolu var mıdır?
Sn bear bull
Biraz karmaşık bir konu.
2 farklı yol denedim.
ikiside istediğiniz gibi çalışıyor.
Kod:
Sub KAYDET()
'
' KAYDET Makro
'
' Klavye Kısayolu: Ctrl+ÜstKrkt+B
'
ActiveWorkbook.Save
Range("A1:L60").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Range("a1") = Application.WorksheetFunction.Text****(";", True, Range("A1:L1"))
Range("b1:m1").ClearContents
ActiveWorkbook.SaveAs FileName:="C:\Users\ilkera\Desktop\Vdl_Spot_O.Csv", _
FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Save
ActiveWindow.Close
Range("A1").Select
End Sub
Kod:
Option Explicit
Sub SaveAsDelimitedFile(Rng As Range, _
FileName As String, _
Optional ColDelimiter As String = ";", _
Optional RowDelimiter As String = vbCrLf)
Dim hFile As Long
Dim vData As Variant
Dim nRow As Long, nCol As Long
On Error GoTo SaveAs_Err
hFile = FreeFile()
Open FileName For Output As #hFile
vData = Rng.Value2
For nRow = 1 To UBound(vData, 1)
For nCol = 1 To UBound(vData, 2) - 1
Print #hFile, vData(nRow, nCol); ColDelimiter;
Next
Print #hFile, vData(nRow, nCol); RowDelimiter;
Next
Close #hFile
SaveAs_Exit:
Exit Sub
SaveAs_Err:
MsgBox Err.Description, vbCritical
Resume SaveAs_Exit
End Sub
Sub TestSaveAs()
SaveAsDelimitedFile Range("A1:L60"), "myfile.csv"
End Sub
Yer İmleri