• DİKKAT

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

Tarih Formatı

  • Konbuyu başlatan Konbuyu başlatan ziya
  • Başlangıç tarihi Başlangıç tarihi
Katılım
8 Nisan 2005
Mesajlar
802
Excel Vers. ve Dili
Excel 2010 Türkçe
Merhaba,
1- Tarih formatındaki / ayrımını NOKTA ayrımı olarak değiştirerek csv formatında kaydettiğim zaman 10 da küçük olan günlerin yine 2 haneli olmasını yapamadım. Yani 01.05.2026 olmasını istediğim format 1.05.2026 olarak kaydediliyor.

2- W sütununa w2 hücresinden son dolu hücreye kadar " =D2&" "&E2 " formülünün yapıştırılmasını yapmak istiyorum.

Örnek dosya linki :


Yardımlarınız için teşekkür ederim.
 
Ziya Bey Merhaba

dokümanlara girmek için yetki istedim.
 
Özür dilerim. Paylaşımı açtım.
 
Ben dosyanızda / . değişimini yaptığımda 09 olarak göründü. Siz de görünmüyorsa ilgili sütunu seçtikten sonra üstteki BİÇİM menüsünden SAYI-ÖZEL TARİH VE SAAT seçeneğindeki gün kutusuna tıkladığınızda BAŞINDA SIFIR İLE GÜN seçeneğini kullanabilirsiniz. Bu şekilde deneyiniz.
 
Korhan hocam,
xls formatında sorun yok, farklı kaydet- cls formatı olarak kaydettiğimde GÜN'ler tek hameli oluyor. Eğer günler zaten çift haneli ise sorun olmuyor.
Yani, sorun
1- gün tek haneli ise ve
2- dosta csv olarak kaydedildiği anda oluyor.
 
Farklı kaydet işlemini nerde yapıyorsunuz?
 
Korhan hocam, haklısınız. Ben diğer düzenlemeleri kod ile yapıyorum, tarih formatını da kodla yapmak istiyorum sma olmuyor.
Ben de csv formatındaki yeni kaydı sçıyor ve dediğiniz şekilde formatı yeniden düzenliyorum.
Amacım ise bu düzenlemeyi kodla yapabilmek.
 
Korhan hocam, haklısınız. Ben diğer düzenlemeleri kod ile yapıyorum, tarih formatını da kodla yapmak istiyorum sma olmuyor.
Ben de csv formatındaki yeni kaydı sçıyor ve dediğiniz şekilde formatı yeniden düzenliyorum.
Amacım ise bu düzenlemeyi
Farklı kaydet işlemini nerde yapıyorsunuz?

Tarih formatı kodunun alt satırında
 
Ben paylaştığınız dosyanızı masaüstüne indirdim. Tarih sütununu günler sıfırlı olacak şekilde ayarladım.

Sonra farklı kaydet diyerek CSV formatını seçerek kayıt ettim. Kayıt edilen dosyayı açtığımde eğer excel ile açılırsa tarihlerdeki gün bölümündeki sıfırlar görünmüyor. Ama aynı CSV dosyasını Notepad ile açarsanız sıfırlar görünüyor.
 
Farklı kaydet işlemini nerde yapıyorsunuz?
Kodların tamamı aşağıda

Kod:
Sub SONAY_ZRAPORU()
'
' Makro3 Makro
' Rapor kitabından al
'
' Klavye Kısayolu: Ctrl+n
   Dim K1 As Workbook, S1 As Worksheet, Yol As String
   Dim K2 As Workbook, S2 As Worksheet, Son As Long
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    Set K1 = ThisWorkbook
    Set S1 = K1.Sheets("Sayfa1")
    Yol = K1.Path
    
    Set K2 = Workbooks.Open(Yol & "\SONAY_ZRAPORU.xlsx")
    Set S2 = K2.Sheets("data")
    
    S2.Range("A2:X2000").Copy
    S1.Range("A2").PasteSpecial xlPasteFormats
    S1.Range("A2").PasteSpecial xlPasteValues
    
    K2.Close 0
    
    Son = S1.Cells(S1.Rows.Count, 1).End(xlUp).Row + 1
    
    
  
    S1.Range("A" & Son & ":A" & Rows.Count).EntireRow.Delete
    
    Set K1 = Nothing
    Set S1 = Nothing
    Set K2 = Nothing
    Set S2 = Nothing
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    
 
End Sub
Sub Makro1()
'
' Makro1 Makro
'

On Error Resume Next

Application.CutCopyMode = False
    Range("W2:W2000").Select
    ActiveCell.FormulaR1C1 = "=RC[-19]&"" ""&RC[-18]"
    Range("W2").Select
    Selection.AutoFill Destination:=Range("W2:W2000"), Type:=xlFillDefault
    Range("W2:W2000").Select
    
    Columns("A:X").Select
    ActiveWorkbook.Worksheets("Sayfa1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sayfa1").Sort.SortFields.Add2 Key:=Range( _
        "U2:U20000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    ActiveWorkbook.Worksheets("Sayfa1").Sort.SortFields.Add2 Key:=Range( _
        "B2:B20000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Sayfa1").Sort
        .SetRange Range("A1:X20000")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    End Sub
Sub Makro2()
    
    Range(Cells(Rows.Count, "F").End(xlUp).Address & ":A20000").EntireRow.Delete 'SON DOLU SATIRI SİL
End Sub
    
Sub Makro3()
'
' Makro3 Makro    SIRALA
'   Range("A1:X2000").Select
    ActiveWorkbook.Worksheets("Sayfa1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sayfa1").Sort.SortFields.Add2 Key:=Range("B2:B2000") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Sayfa1").Sort.SortFields.Add2 Key:=Range("U2:U2000") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sayfa1").Sort
        .SetRange Range("A1:X20")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

  
End Sub
Sub Makro4()
'
' Makro4 Makro  U sütunu tarih formatı
'
Columns("U:U").Select
    Selection.NumberFormat = "dd/mm/yyyy;@"
    Range("A2").Select
    
    
End Sub



Sub Verileri_Bolerek_CSV_Dosyasi_Olarak_Kaydet()                                 'csv OLARAK KAYDET -  02.10.2025
    Dim Satir_Adedi As Long, Veri As Variant, Son As Long
    Dim Dosya_Adedi As Long, XL_App As Object, K1 As Object, S1 As Object
    Dim X As Long, Y As Long, Z As Byte, Say As Long, Zaman As Double
    
    Satir_Adedi = Application.InputBox("Verinizi kaç satırlık dosyalara bölmek istiyor sunuz?", "Satır Sayısı", 450, , , , , 1)
   If Satir_Adedi = 0 Then
       MsgBox "Lütfen geçerli bir sayısal değer giriniz!", vbCritical
       Exit Sub
    End If
    
    Zaman = Timer

 
    
    Son = Cells(Rows.Count, 1).End(3).Row
    If Son = 1 Then Son = 2
    
    Veri = Range("A1:AA" & Son).Value
    
    If Dir(ThisWorkbook.Path & "\*.csv") <> "" Then Kill ThisWorkbook.Path & "\*.csv"
    
    Set XL_App = CreateObject("Excel.Application")
    XL_App.Visible = False
    
    For X = LBound(Veri) + 1 To UBound(Veri) Step Satir_Adedi
        Dosya_Adedi = Dosya_Adedi + 1
        
        Set K1 = XL_App.Workbooks.Add(1)
        Set S1 = K1.Sheets(1)
        
        ReDim Liste(1 To 451, 1 To 24)
        
        Say = Say + 1
        
        For Z = 1 To 24
            Liste(Say, Z) = Veri(1, Z)
        Next
                
        For Y = X To X + Satir_Adedi - 1
            If Y > UBound(Veri) Then GoTo 10
            
            Say = Say + 1
            
            For Z = 1 To 24
                Liste(Say, Z) = Veri(Y, Z)
            Next
        Next

10      S1.Range("A1").Resize(Say, 24) = Liste
        S1.Columns.AutoFit

        Erase Liste
        Say = 0
    
        K1.SaveAs ThisWorkbook.Path & "\ZRAPORUNA_" & Dosya_Adedi & ".csv", FileFormat:=xlCSV, Local:=True
        K1.Close 0
    Next
        
    Set S1 = Nothing
    Set K1 = Nothing
    Set XL_App = Nothing
    
   ' MsgBox "Veri aktarımı tamamlanmıştır." & Chr(10) & Chr(10) & _
           "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
End Sub

Sub CsvKaydet_U_Sutunu()         'Alternatif U SÜTUNUNU ESAS ALARAK KAYDET Makrosu  , Şimdilik Kullanmıyoruz.
    Dim File_Path As String
    Dim X As Date
    Dim Say As Byte
    Dim Min_Date As Date
    Dim Max_Date As Date
    
    Const TARIH_SUTUN As Long = 21
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    File_Path = ThisWorkbook.Path
    Range("A2:Y" & Rows.Count).Sort Key1:=Range("U2"), Order1:=xlAscending, Header:=xlGuess
    
    Min_Date = WorksheetFunction.Min(Range("U:U"))
    Max_Date = WorksheetFunction.Max(Range("U:U"))
    
    For X = Min_Date To Max_Date Step 10
        
        Range("A1:Y" & Rows.Count).AutoFilter Field:=TARIH_SUTUN, _
                                             Criteria1:=">=" & CLng(CDate(X)), _
                                             Operator:=xlAnd, _
                                             Criteria2:="<=" & CLng(CDate(X + 9))
        
        
        If Cells(Rows.Count, TARIH_SUTUN).End(xlUp).Row > 1 Then
            
            Range("A1:Y" & Cells(Rows.Count, TARIH_SUTUN).End(xlUp).Row).Copy
            
            Workbooks.Add (1)
            Range("A1").PasteSpecial
            Range("A1").Select
            Columns.AutoFit
            
            Say = Say + 1
            ActiveWorkbook.SaveAs File_Path & "\" & "GELENNA_" & Format(Date, "yyyy_mm") & "_" & Say & " .csv", FileFormat:=xlCSV, Local:=True
            ActiveWorkbook.Close 0
        End If
    Next
    
    On Error Resume Next
    ActiveSheet.ShowAllData
    On Error GoTo 0
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    
    Range("A2:Y2000").ClearContents
    
    Range("A1").Select
    
    MsgBox "Veriler CSV formatında " & Say & " adet dosyaya aktarılmıştır.", vbInformation
End Sub


Sub ExitWithoutPrompt()
 On Error Resume Next
     Application.DisplayAlerts = False
 
     Application.Quit
 
End Sub
 
Kodla oluşan CSV dosyasını Notepad ile açarsanız tarihlerde günlerin çift haneli olduğunu görebilirsiniz.
 
Kodla oluşan CSV dosyasını Notepad ile açarsanız tarihlerde günlerin çift haneli olduğunu görebilirsiniz.
Haklısınız. Ben bu dosyayı csv formatında Luca Muhasebe programı web sitesine yüklüyorum. Luca yüklediğim dosyanın tarih sütununu Notepad'de göründüğü formatta istiyor. csv dosyasında bu formatta olmayınca işlem yapmıyor.
 
Burada benzer sorunu dile getirip sonrasında çözmüşsünüz.

 
Evet, aynen söylediğiniz gibi oluyor. Ben de zorunlu olarak csv kaydet aşamasını manuel yapıyorum.
Anladığım kadarıyla manuel yapmaya devam etmemi öneriyorsunuz.

Teşekkür ederim.
 
Burada ba bazı çözüm önerileri var...

Denetim masasından tarih görünümünü gg.aa.yyyy olacak şekilde ayarlamayı deneyebilirsiniz.

 
Evet, aynen söylediğiniz gibi oluyor. Ben de zorunlu olarak csv kaydet aşamasını manuel yapıyorum.
Anladığım kadarıyla manuel yapmaya devam etmemi öneriyorsunuz.

Teşekkür ederim.
Burada ba bazı çözüm önerileri var...

Denetim masasından tarih görünümünü gg.aa.yyyy olacak şekilde ayarlamayı deneyebilirsiniz.

Tamam, deneyeceğim.
Teşekkür ederim.
 
Manuel yapın demiyorum. Zaten siz de konunuzda 2. mesajda yaptığınız değişiklikle sorunu çözdüğünüzü belirtmişsiniz.

Bu konuyla ilgili nette arama yaptığımda LUCA programında bu sorunun olduğundan bahsedilmiş.

Eski bir video buldum. Ama bu da güncelliğini yitirmiş sanırım...

 
Geri
Üst