Alıntı Originally Posted by Bear_Bull Yazıyı Oku
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