CSV Dosyasi olarak kaydetme

Katılım
30 Ağustos 2009
Mesajlar
51
Excel Vers. ve Dili
Microsoft Office Excel 2007 Almanca
Kod:
Public Sub CSVKaydet()
Open "C:\Veri\Test.csv" For Output As #1
For t=2 To 51
For i=1 To 759
if IsNumeric(Cells(i,t).Value) Then
Print #1, Cells(i,t)
End If
Next i
Next t
Close
merhaba arkadaslar, excel tablosunu 2. sütundan 51.ye kadar ve 1. Satirdan 759.ya kadar CSV dosyasi olarak kaydeden bir makro yazdim(Sadece Sayi degerleri kaydediliyor) Ancak ben excelde hazirlanan Tabelanin CSV dosyasinda da ayni sekilde görünsün istiyorum. CSV Dosyasinda ise degerler alt alta sadece 1. Sütuna kaydediliyor. Bu sorunu nasil cözebilirim?

Ve C/Veri adresine kaydettigim Test.csv dosyasinin bütün hücrelerinin "kategori"sini "Sayi" ve "Ondalik Basamak Sayisi"ni Nasil "2" olarak makroma yazabilirim.

Tesekkürler
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Merhaba,

Aşağıdaki proseduru deneyin.

Kod:
Public Sub CSVKaydet()
Dim arr() As String, b As String
Dim i As Integer, t As Byte, s As Byte

    Open "C:\Test.csv" For Output As #1
        
            For i = 1 To 759
            
                For t = 2 To 51
                
                    If (IsNumeric(Cells(i, t)) And _
                        Cells(i, t) <> 0) Then
                        
                        s = s + 1
                        ReDim Preserve arr(s - 1)
                        
                        arr(s - 1) = FormatNumber(Cells(i, t), 2)
                        
                    End If
                    
                Next
                
                b = Join(arr, ";")
            
                Print #1, b
                
                s = 0
                Erase arr
                
            Next

    Close #1
End Sub
 
Katılım
30 Ağustos 2009
Mesajlar
51
Excel Vers. ve Dili
Microsoft Office Excel 2007 Almanca
Dediginiz seyi denedim.
Yaptigim excel tabelasinda örnegin su degerler girili:
B11 hücresi:1,54
B12 hürcesi:1,60
B13 hücresi 1,66

Olusturulan CSV dosyasinda da ayni sekilde B11 de 1,54 , B12 de 1,60 ve B13 te 1,66 degerleri yazili olsun istiyorum.

Ancak sizin yazdigin makroda bu degerler hücrelerin icinde degilde, bir bütün gibi görünüyor.
Yani su sekilde:
1,54,"1,60","1,66"

Tesekkür ederim
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Dediginiz seyi denedim.
Yaptigim excel tabelasinda örnegin su degerler girili:
B11 hücresi:1,54
B12 hürcesi:1,60
B13 hücresi 1,66

Olusturulan CSV dosyasinda da ayni sekilde B11 de 1,54 , B12 de 1,60 ve B13 te 1,66 degerleri yazili olsun istiyorum.

Ancak sizin yazdigin makroda bu degerler hücrelerin icinde degilde, bir bütün gibi görünüyor.
Yani su sekilde:
1,54,"1,60","1,66"

Tesekkür ederim
böyle olabilirmi dosyanın uzantısını değiştiriyor.

örnek dosyaya bakınız.
 

Ekli dosyalar

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Dediginiz seyi denedim.
Yaptigim excel tabelasinda örnegin su degerler girili:
B11 hücresi:1,54
B12 hürcesi:1,60
B13 hücresi 1,66

Olusturulan CSV dosyasinda da ayni sekilde B11 de 1,54 , B12 de 1,60 ve B13 te 1,66 degerleri yazili olsun istiyorum.

Ancak sizin yazdigin makroda bu degerler hücrelerin icinde degilde, bir bütün gibi görünüyor.
Yani su sekilde:
1,54,"1,60","1,66"

Tesekkür ederim
#2 mesajımdaki kod güncellendi.
 
Katılım
30 Ağustos 2009
Mesajlar
51
Excel Vers. ve Dili
Microsoft Office Excel 2007 Almanca
Tesekkür ederim bu sefer calisti.

Son bir sorum daha olacakti. Farkli iki excel sayfasindan ayri ayri tabelalari, alt alta csv olarak kaydetmem icin hangi komutlari kullanmam lazim?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,334
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Kod:
Public Sub CSVKaydet()
Dim arr() As String, b As String
Dim i As Integer, t As Byte, s As Byte
[COLOR=Blue]Dim arr2() As Variant[/COLOR], [COLOR=Blue]z As Byte[/COLOR]

[COLOR=Blue]arr2 = Array("Sayfa1", "Sayfa2")[/COLOR]

    Open "C:\Test.csv" For Output As #1
    
        [COLOR=Blue]For z = 1 To 2[/COLOR]
        
            [COLOR=Blue]With Sheets("" & arr2(z))[/COLOR]
            
                For i = 1 To 759
                
                    For t = 2 To 51
                    
                        If (IsNumeric([COLOR=Blue].[/COLOR]Cells(i, t)) And _
                            [COLOR=Blue].[/COLOR]Cells(i, t) <> 0) Then
                            
                            s = s + 1
                            ReDim Preserve arr(s - 1)
                            
                            arr(s - 1) = FormatNumber([COLOR=Blue].[/COLOR]Cells(i, t), 2)
                            
                        End If
                        
                    Next t
                    
                    b = Join(arr, ";")
                
                    Print #1, b
                    
                    s = 0
                    Erase arr
                    
                Next i
            
            [COLOR=Blue]End With[/COLOR]
        
        [COLOR=Blue]Next z[/COLOR]
        
    Close #1
End Sub
 
Katılım
12 Ocak 2009
Mesajlar
2
Excel Vers. ve Dili
2003 turkce
Kod:
Public Sub CSVKaydet()
Dim arr() As String, b As String
Dim i As Integer, t As Byte, s As Byte
[COLOR=Blue]Dim arr2() As Variant[/COLOR], [COLOR=Blue]z As Byte[/COLOR]

[COLOR=Blue]arr2 = Array("Sayfa1", "Sayfa2")[/COLOR]

    Open "C:\Test.csv" For Output As #1
    
        [COLOR=Blue]For z = 1 To 2[/COLOR]
        
            [COLOR=Blue]With Sheets("" & arr2(z))[/COLOR]
            
                For i = 1 To 759
                
                    For t = 2 To 51
                    
                        If (IsNumeric([COLOR=Blue].[/COLOR]Cells(i, t)) And _
                            [COLOR=Blue].[/COLOR]Cells(i, t) <> 0) Then
                            
                            s = s + 1
                            ReDim Preserve arr(s - 1)
                            
                            arr(s - 1) = FormatNumber([COLOR=Blue].[/COLOR]Cells(i, t), 2)
                            
                        End If
                        
                    Next t
                    
                    b = Join(arr, ";")
                
                    Print #1, b
                    
                    s = 0
                    Erase arr
                    
                Next i
            
            [COLOR=Blue]End With[/COLOR]
        
        [COLOR=Blue]Next z[/COLOR]
        
    Close #1
End Sub
excelde yazmıs oldugum tablonun bir kısmını aynı isim altında csv olarak kaydedebilirmiyim
ornek olarak a3-a2000 ile k3-k2000 arası tabloyu csv olarak kaydetmek mumkunmudur. a1 a2 şablon olarak kullanılıyor ve csv olarak kaydettiğimde bu iki satırı kaydetmemesi gerekiyor. yardımlarınız için şimdiden teşekkür ederim
saygılarımla
 
Katılım
12 Ocak 2009
Mesajlar
2
Excel Vers. ve Dili
2003 turkce
bende formda gezinirken bayagı sevinmiştim. sorulara cevap var diye. malesef kimse girmiyor bu forma herhalde
 
Üst