• DİKKAT

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

CSV Dosyasi olarak kaydetme

  • Konbuyu başlatan Konbuyu başlatan berat01
  • Başlangıç tarihi Başlangıç tarihi
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
 
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
 
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
 
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

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.
 
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?
 
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
 
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
 
bende formda gezinirken bayagı sevinmiştim. sorulara cevap var diye. malesef kimse girmiyor bu forma herhalde
 
Geri
Üst