ilk satırı csv formatına dahil etmemek.

Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
Arkadaşlar merhaba, ekte yer alan örnek dosyamda ilk satırda satır açıklamalarım var ben bu ilk satır haricindeki satırları csv dosya oluşturmak istiyorum. her defasında satırı silip farklı kaydet seçeneğini kullanıyorum ama bazen atlıyorum ve ilk satırı tekrar eklemek zorunda kalıyorum. ekteki dosyamı makro olarak düzenledim fakat ilk satırı manuel sildirip makro kaydettirdim bunun silinmeden oluşacak csv nin ilk satır haricinde alınması nasıl sağlanır ? mümkünse csv dosyası direk olarak C: üzerine yazsın. yardımlarınız için şimdiden teşekkürler.
 

Ekli dosyalar

Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
İnceleyiniz.. 2.sayfada buton var. Bastığınızda CSV dosyasını, asıl dosyanın olduğu yere, günün tarihi ile kaydediyor. Dilerim işinizi görür.

 
Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
Merhaba, elinize sağlık fakat bunu zaten yapıyorum. yani sizdeki makroyu çalıştırdığımda da ilk başlık satırı yok oluyor. ben bunun sabit kalmasını istiyorum. yani scv oluşacak dosyanın başlangıc satırı 2 den başlamasını istiyorum. başlıkların kalması önemli.
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
Ben mi yanlış anladım. Butona bastığınızda CSV uzantılı bir dosya oluşturuluyor ve asıl dosyanız kapanıyor. Açık olan dosya, oluşan CSV dosyası.
CSV'de başlık olmasın, asıl dosyada başlık silinmesin demişsiniz. Bu kod onu yapıyor zaten.
(Makrolar ve buton ile beraber csv oluşturuyor, sorun o derseniz bir çözüm bulunur, o ayrı.)
 
Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
Ben mi yanlış anladım. Butona bastığınızda CSV uzantılı bir dosya oluşturuluyor ve asıl dosyanız kapanıyor. Açık olan dosya, oluşan CSV dosyası.
CSV'de başlık olmasın, asıl dosyada başlık silinmesin demişsiniz. Bu kod onu yapıyor zaten.
(Makrolar ve buton ile beraber csv oluşturuyor, sorun o derseniz bir çözüm bulunur, o ayrı.)
üstad çok özür haklısın aslında yeni dosyayı açıyormuş dediğin gibi onu farketmemişim :) senden ricam dosya adını tarih değilde aynı dosya adıyla kaydetmek için hangi cümleyi eklemem gerek ? yani dosya adı neyse csv dosyada aynı isimde olsun.
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
Satırı bu şekilde revize ediniz.

ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & ThisWorkbook.Name & ".csv"
 
Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
Satırı bu şekilde revize ediniz.

ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & ThisWorkbook.Name & ".csv"
ustad teşekkürler ama şöyle bir sorun oldu dosyayı "Irsaliye.xlsm.csv" olarak kaydediyor. excel uzantısını silerek Irsaliye.csv yapamazmıyız ? ya da mümkün değilse sorguda Irsaliye.csv olarak kaydetsemde olur işimi görür.
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
Şu şekilde deneyin.

Sub Düğme1_Tıklat()
Application.DisplayAlerts = False
Sheets("irsaliye").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
a = ThisWorkbook.name
b = Split(a, ".")(0)
ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & b & ".csv"
ActiveWorkbook.Save
[A1].Select
Application.DisplayAlerts = True
End Sub
 
Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
Ç
Şu şekilde deneyin.

Sub Düğme1_Tıklat()
Application.DisplayAlerts = False
Sheets("irsaliye").Select
Rows("1:1").Select
Selection.Delete Shift:=xlUp
a = ThisWorkbook.name
b = Split(a, ".")(0)
ThisWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & b & ".csv"
ActiveWorkbook.Save
[A1].Select
Application.DisplayAlerts = True
End Sub
tam istediğim gibi oldu çok teşekkürler :)
 
Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
Rica ederim, kolay gelsin.
ustad tekrar rahatsız ettim ama dosyayı açınca ekteki hatayı veriyor. ama manuel csv oluşturunca böyle bir hata çıkmıyor. ayrıca bu şekilde makro ile kaydedince csv uzantılı dosya 21 kb ama manuel kaydedince 500 bayt gibi oluyor bir yerde sıkıntı var ama çözemedim.
 

Ekli dosyalar

Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
ustad tekrar rahatsız ettim ama dosyayı açınca ekteki hatayı veriyor. ama manuel csv oluşturunca böyle bir hata çıkmıyor. ayrıca bu şekilde makro ile kaydedince csv uzantılı dosya 21 kb ama manuel kaydedince 500 bayt gibi oluyor bir yerde sıkıntı var ama çözemedim.
yani oluşan dosyanın içine girip farklı kaydet yaptığımda makro içerebilen excel olarak kaydetmeye çalışıyor sanırım içindeki makro ile beraber csv kaydetmeye çalışıyor.
 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
Altın üye olmadığımdan eklemiş olduğunuz hata resmini göremiyorum.
Alternatif bir linke resmi yüklerseniz, bir şey yapıp yapamayacağıma bakayım.
 
Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
Altın üye olmadığımdan eklemiş olduğunuz hata resmini göremiyorum.
Alternatif bir linke resmi yüklerseniz, bir şey yapıp yapamayacağıma bakayım.
hata görüntüsü ve dosya orjinali ektedir ustad. dediğim gibi makrolu csv kaydediyor sanırım hem dosya boyutu fazla hemde manuel oluşturulan csv den farklı açıyor.

 
Katılım
6 Temmuz 2015
Mesajlar
925
Excel Vers. ve Dili
2003
İnternette araştırdığımda bu hatanın genel bir çözümü yok gibi. Ancak bastırılarak engellenebiliyor.
Ben, aşağıda anlatılan şekilde denedim ve bilgisayarı kapatıp açmadan denediğimde hata uyarısı almadım.

 
Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
Ben mi yanlış anladım. Butona bastığınızda CSV uzantılı bir dosya oluşturuluyor ve asıl dosyanız kapanıyor. Açık olan dosya, oluşan CSV dosyası.
CSV'de başlık olmasın, asıl dosyada başlık silinmesin demişsiniz. Bu kod onu yapıyor zaten.
(Makrolar ve buton ile beraber csv oluşturuyor, sorun o derseniz bir çözüm bulunur, o ayrı.)
tam olarak sorun o aslında 1.si birden fazla sayfa alması yani aslında ilk sayfası almasını istiyorum diğer en büyük sorun ise scv dosyasında makro ile birlikte kaydediyor olması. sade bir şekilde makrosuz ilk sayfanın csv olarak kaydedilmesi mümkün değil mi ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,513
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif;

C++:
Option Explicit

Sub CSV_Kaydet()
    Dim K1 As Workbook, S1 As Worksheet, Zaman As Double
    Dim XL_App As Object, K2 As Object, S2 As Object
    Dim Dosya_Adi As String, Uzanti As String, Veri As Variant
    Dim Son As Long, X As Long, Say As Long, Y As Byte

    Zaman = Timer

    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("irsaliye")

    Uzanti = CreateObject("Scripting.FileSystemObject").GetExtensionName(K1.FullName)
    Dosya_Adi = Replace(K1.FullName, "." & Uzanti, "") & ".csv"
    If Dir(Dosya_Adi) <> "" Then Kill Dosya_Adi

    Set XL_App = CreateObject("Excel.Application")
    XL_App.Visible = False
    Set K2 = XL_App.Workbooks.Add(1)
    Set S2 = K2.Sheets(1)
    
    Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
    If Son = 2 Then Son = 3
    
    Veri = S1.Range("A2:M" & Son).Value
    
    ReDim Liste(1 To UBound(Veri, 1), 1 To UBound(Veri, 2))
    
    For X = LBound(Veri) To UBound(Veri)
        If Veri(X, 1) <> "" Then
            Say = Say + 1
        
            For Y = 1 To UBound(Veri, 2)
                Liste(Say, Y) = Veri(X, Y)
            Next
        End If
    Next
        
    S2.Range("A1").Resize(Say, UBound(Veri, 2)) = Liste
    
    K2.SaveAs Dosya_Adi, FileFormat:=xlCSV, Local:=True
    K2.Close 0
        
    XL_App.Quit

    Set S1 = Nothing
    Set S2 = Nothing
    Set K1 = Nothing
    Set K2 = Nothing
    Set XL_App = Nothing
    
    MsgBox "Veriler aşağıdaki konuma CSV formatında aktarılmıştır." & vbLf & vbLf & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye" & vbLf & vbLf & Dosya_Adi, vbInformation
End Sub
 
Katılım
21 Şubat 2007
Mesajlar
25
Excel Vers. ve Dili
2016 TR
Altın Üyelik Bitiş Tarihi
24-01-2024
Alternatif;

C++:
Option Explicit

Sub CSV_Kaydet()
    Dim K1 As Workbook, S1 As Worksheet, Zaman As Double
    Dim XL_App As Object, K2 As Object, S2 As Object
    Dim Dosya_Adi As String, Uzanti As String, Veri As Variant
    Dim Son As Long, X As Long, Say As Long, Y As Byte

    Zaman = Timer

    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("irsaliye")

    Uzanti = CreateObject("Scripting.FileSystemObject").GetExtensionName(K1.FullName)
    Dosya_Adi = Replace(K1.FullName, "." & Uzanti, "") & ".csv"
    If Dir(Dosya_Adi) <> "" Then Kill Dosya_Adi

    Set XL_App = CreateObject("Excel.Application")
    XL_App.Visible = False
    Set K2 = XL_App.Workbooks.Add(1)
    Set S2 = K2.Sheets(1)
   
    Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
    If Son = 2 Then Son = 3
   
    Veri = S1.Range("A2:M" & Son).Value
   
    ReDim Liste(1 To UBound(Veri, 1), 1 To UBound(Veri, 2))
   
    For X = LBound(Veri) To UBound(Veri)
        If Veri(X, 1) <> "" Then
            Say = Say + 1
       
            For Y = 1 To UBound(Veri, 2)
                Liste(Say, Y) = Veri(X, Y)
            Next
        End If
    Next
       
    S2.Range("A1").Resize(Say, UBound(Veri, 2)) = Liste
   
    K2.SaveAs Dosya_Adi, FileFormat:=xlCSV, Local:=True
    K2.Close 0
       
    XL_App.Quit

    Set S1 = Nothing
    Set S2 = Nothing
    Set K1 = Nothing
    Set K2 = Nothing
    Set XL_App = Nothing
   
    MsgBox "Veriler aşağıdaki konuma CSV formatında aktarılmıştır." & vbLf & vbLf & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye" & vbLf & vbLf & Dosya_Adi, vbInformation
End Sub
ustad eline koluna sağlık.. tam istediğim gibi oldu sorunsuz aktarıyor :)
 
Üst