• DİKKAT

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

csv dosyasindan verilerin bozuk gelmesi

Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Merhaba

Arkadaslar bir csv dosyasindan veri cekiyorum. kod bilgisi yazan son stununda veriler bir acaip geliyor. ne metin ne sayi ne oldugunu anlayamadim. hucreye tiklayip rakamlar arasinda gitmeye kalktiginiz zaman rakamlarin arasina degil ustune geliyor ikon. islem yapmaya silmeye falan calistiginizda ayni hucrenin icindeki veri tek tek degil grup grup siliniyor bu sıkıntı nedir. yardimci olabilir misiniz lutfen.

iyi calismalar

csv dosyasi asagidaki linkdedir excel 2010 ile veri disveri al menulerini izleyerek sinirlandirilmis virgulle ayrilmis seceneklerini secerek veri cekiyorum. stundaki verileri kopyalayip txt dosyasina yapistirip ordan tekrar excelle sadece degerleri yapistir vs gibi denemeler yaptim hicbirinde duzelmedi.



https://yadi.sk/d/aBhymkzP3J5jmx
 
.. sinirlandirilmis virgulle ayrilmis seceneklerini secerek veri cekiyorum...
Virgül ile ayrılmışı seçtikten sonra ileri deyip
son kolonu seçip veri tiplerinden metin i seçip işlemi tamamlayıp dener misiniz.
 
Asri Hocam olmadi yine ayni..

csv den bakinca hic sorun yok gibi excel' e cekince boyle oluyor. ilk basta işleme metinden veri al diye baslayip veri kaynağı kisminda 65001 unicode UTH-8 seciyorum digerler bir cok secenegi de denedim. olmadi. var olan baglantidan diyerek de denedim

simdi sizin dediginiz gibi son sutunu secip metin isaretledim olmuyor..
 
Asri Hocam olmadi yine ayni..

csv den bakinca hic sorun yok gibi excel' e cekince boyle oluyor. ilk basta işleme metinden veri al diye baslayip veri kaynağı kisminda 65001 unicode UTH-8 seciyorum digerler bir cok secenegi de denedim. olmadi. var olan baglantidan diyerek de denedim

simdi sizin dediginiz gibi son sutunu secip metin isaretledim olmuyor..

Ben eklediğiniz dosyayı çift tıklayıp excel ile açtım ve metni sütunlara çevir ile parçaladım her hangi bir sorun olmadı. Son kolonu olduğu gibi aktardı.

eklediğiniz dosya ile işlem yaptığınız dosya aynı mıdır?
 
Ayni dosya hocam ... dediğiniz gibi ben de yapmıştım. Hücreleri sütunlara böl şeklinde denedim başka Excel hiç açmadan . Onda da aynı sıkıntıyı yapmıştı. Siz son kolondaki hücrelere girip yön tuşları ile içinde ilerlediniz mi backspace ile hücre sonlarından karakter silmeyi denediniz mi . Çünkü aktarmayı yapınca herşey normal görünüyor ama hücreye girince anlaşılıyor sıkıntı...
 
Dosyanın adını histrory.txt olarak değiştirin. Excelden bu dosyayı açın. Arada boş satırlar çıksa da veriler normal geliyor.
 
Problem, charset problemidir.

- Dosyayı "notepad" ile açın,
- "Farklı kaydet" penceresinde" kodlamayı "ANSI" seçerek üzerine kaydedin düzelecektir.

.
 
ilginiz için hepinize tesekkur ederim. ne yazikki sorun çözülemedi ... siz degerli uzmanlarin dediklerini uyguladim. kendi bildiklerimi ve akilima gelenleri de denedim. fakat olmadi. bu csv dosyasini ios da bir app uretiyor . o app in yazilimcisina mail attim. onunla cözmeye calisacagim degerli vaktinizi daha fazla mesgul etmeyeyim cok tesekkurler kalin saglicakla...
 
ilginiz için hepinize tesekkur ederim. ne yazikki sorun çözülemedi ... siz degerli uzmanlarin dediklerini uyguladim. kendi bildiklerimi ve akilima gelenleri de denedim. fakat olmadi. bu csv dosyasini ios da bir app uretiyor . o app in yazilimcisina mail attim. onunla cözmeye calisacagim degerli vaktinizi daha fazla mesgul etmeyeyim cok tesekkurler kalin saglicakla...

Dosyanızı yukarıda tarif ettiğim şekilde çevirerek cevap yazmıştım. Uygulamamış veya yapamamışsınız. Neyse bol şanslar...

.
 
Zeki hocam denedim denemez olur muyum... sizinde vaktinizi cok almamak icin. yuk olmamak icin konuyu kapatayim dedim.

csv dosyasina dediginiz sekilde sag tiklayip birlikte ac dedim notpad la actim farkli kaydet dedim. asagidan ANSI sectim. ustune kaydedip kapattim.

excelle gectim .. veri ---> metinden al ---> virgulle ayrilmis. sectim .. son sutunda veri bozuk geliyor. gorunuste duzgun gibi ama yon tuslari ile içinde baslara dogru giderseniz siz de fark edeceksiniz karakterler grup grup siliniyor..

dosya sizin dediginiz sekilde kaydettigim dosya asagidaki linkteki gibi
saygilarimla
https://yadi.sk/i/ytMYmUeP3JASZs
 
Ekli resimde olduğu gibi bendeki sonuç düzgün.
"CSV" dosyasını bir de sağ klik "birlikte aç" > "excel" olarak açmayı deneyin.
Her iki durumda da sonuç olumlu görünüyor.

attachment.php


.
 

Ekli dosyalar

  • Ekran Alıntısı.JPG
    Ekran Alıntısı.JPG
    51.7 KB · Görüntüleme: 9
10 nolu mesajdaki dosyanızı bir klasörün içine koyup bu makroyu çalıştırın klasörün yanına bir klasör oluşturulacak ve dosyayı excel dosyasına çevirecek.

Kod:
Sub csvye_cevir()

Sayfa_adı = ActiveSheet.Name
Set Klasor = CreateObject("shell.application").browseforfolder(0, "Lütfen bir klasör seçiniz", 50, &H0)
If Not Klasor Is Nothing Then
Kaynak = Klasor.SELF.Path
If InStr(1, Kaynak, "{") > 0 Then GoTo atla
Application.ScreenUpdating = False
Application.DisplayAlerts = False


Dim fs As Object, f As Object
Set fs = CreateObject("Scripting.FileSystemObject")

uzanti = fs.GetExtensionName(ThisWorkbook.Name)

Dim wb As Workbook

For Each dosya In fs.getfolder(Kaynak).Files
If ThisWorkbook.Name <> dosya.Name Then
If LCase(fs.GetExtensionName(dosya)) = "csv" Then
MsgBox dosya
ad = Kaynak & "\" & "Excel Dosyaları"
If CreateObject("Scripting.FileSystemObject").FolderExists(ad) = False Then
MkDir ad
End If
If uzanti = "xls" Then
FileFormatNum = -4143
uzanti2 = "xls"
ElseIf uzanti = "xlsm" Then
FileFormatNum = 51
uzanti2 = "xlsx"
ElseIf uzanti = "xlsx" Then
FileFormatNum = 51
uzanti2 = "xlsx"
End If

Workbooks.OpenText (dosya), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1)), TrailingMinusNumbers:=True

Application.DisplayAlerts = False
MsgBox ad & "\" & fs.GetBaseName(dosya) & "." & uzanti2
ActiveWorkbook.SaveAs ad & "\" & fs.GetBaseName(dosya) & "." & uzanti2, FileFormat:=FileFormatNum '6   '-4158 'xlText

ActiveWindow.Close

End If
End If
Next


Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "işlem tamam"
Else
atla:
MsgBox "Lütfen Kaynak Klasör Seçimini Yapınız !", vbInformation, "DİKKAT"
End If
Set Klasor = Nothing

End Sub
 
Halit hocam sizde dahil oldugunuz için çok teşekkur ederim. sizin bu makronuzu forumda görmüştüm ve denemiştim.. hatta bir kenara da o üçlü çalışmanızı kaydettim çok güzel çok işimize yarayacak bir şey elinize sağlık.


şimdi hocam sağ tıklayıp excelle aç dediğimizde ya da sizin makronuzla açtığımızda evet veriler düzgün geliyor. ama benim bu veriyi işlemem lazim Allahın izniyle bir virgüllerinden ayırsam daha sonra sondaki uzun rakamgrubunda da parçalama yapacağım.

1 le başlayan 21 le başlayan 17 ile başlayan şeklinde .. neyse daha oraya gelemeden takıldım.

çünkü dediğim gibi sizin makronuzla ya da excelle açarsam bu sefer virgülü ayırmak için metni stunlara çevir diyorum. yine aynı şey oluyor. isterseniz bir deneyin sondaki uzun rakamın içinde yon tuşlarıyla gezin. bazı karakterleri silmeye çalıştığınızda grup grup siliniyor..
 
Halit hocam sizde dahil oldugunuz için çok teşekkur ederim. sizin bu makronuzu forumda görmüştüm ve denemiştim.. hatta bir kenara da o üçlü çalışmanızı kaydettim çok güzel çok işimize yarayacak bir şey elinize sağlık.


şimdi hocam sağ tıklayıp excelle aç dediğimizde ya da sizin makronuzla açtığımızda evet veriler düzgün geliyor. ama benim bu veriyi işlemem lazim Allahın izniyle bir virgüllerinden ayırsam daha sonra sondaki uzun rakamgrubunda da parçalama yapacağım.

1 le başlayan 21 le başlayan 17 ile başlayan şeklinde .. neyse daha oraya gelemeden takıldım.

çünkü dediğim gibi sizin makronuzla ya da excelle açarsam bu sefer virgülü ayırmak için metni stunlara çevir diyorum. yine aynı şey oluyor. isterseniz bir deneyin sondaki uzun rakamın içinde yon tuşlarıyla gezin. bazı karakterleri silmeye çalıştığınızda grup grup siliniyor..

csv uzantılı dosya ile bu kodları kullanacağın dosyalar yan yana olmalı daha sonra kodu çalıştırın bununla ilgili görsel videoda ekliyorum.

görsel video

kod:

Kod:
Sub dosya_ac_penceresi()

Dim i As Long
yol = ThisWorkbook.Path '  "d:\"
' Open the file dialog
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.InitialFileName = yol
.ButtonName = "Seçileni Aç"
.Title = "Dosya Açma penceresi"
.Filters.Clear
.Filters.Add "Excel CSV", "*.csv"
.Filters.Add "Excel ", "*.x*"
.FilterIndex = 1
.Show
' Display paths of each file selected
For i = 1 To .SelectedItems.Count

dosya = .SelectedItems(i)
'Workbooks.Open (.SelectedItems(i))
'CreateObject("Shell.Application").Open (.SelectedItems(i))
.Execute 'dosyayı açan prosödür

Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim fs As Object, f As Object
Set fs = CreateObject("Scripting.FileSystemObject")
uzanti = fs.GetExtensionName(ThisWorkbook.Name)

If ThisWorkbook.Name <> fs.GetFileName(dosya) Then
If LCase(fs.GetExtensionName(dosya)) = "csv" Then

If uzanti = "xls" Then
FileFormatNum = -4143
uzanti2 = "xls"
ElseIf uzanti = "xlsm" Then
FileFormatNum = 51
uzanti2 = "xlsx"
ElseIf uzanti = "xlsx" Then
FileFormatNum = 51
uzanti2 = "xlsx"
End If

Workbooks.OpenText (dosya), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1)), TrailingMinusNumbers:=True
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs fs.GetParentFolderName(dosya) & "\" & fs.GetBaseName(dosya) & "." & uzanti2, FileFormat:=FileFormatNum '6   '-4158 'xlText
ActiveWindow.Close

End If
End If

Next i
End With

End Sub
 
halit hocam emek verdiniz Allah razi olsun fakat sorunu çözmüyor. hucrelerin icine girip veriye bakarsaniz fark edeceksiniz. o veriler ne metin ne de sayi ... hucreleri bicimlendirden de sayi ya da dönüşöüyor.

sizin uygulamanizi yaparken ben de video kaydettim buyun bakin.. umarim sorun bende değildir. okadar ugrastirdim sizi...

https://yadi.sk/i/4_xwPqpB3JCKku
 
halit hocam emek verdiniz Allah razi olsun fakat sorunu çözmüyor. hucrelerin icine girip veriye bakarsaniz fark edeceksiniz. o veriler ne metin ne de sayi ... hucreleri bicimlendirden de sayi ya da dönüşöüyor.

sizin uygulamanizi yaparken ben de video kaydettim buyun bakin.. umarim sorun bende değildir. okadar ugrastirdim sizi...

https://yadi.sk/i/4_xwPqpB3JCKku

Tam olarak ne yapmak istiyorsunuz anlamadım.
sizin 10 nolu mesajdaki dosyayı benim 14 nolu mesajımdaki kodu çalıştırıp oluşan dosyayı buraya ekleyin.

excell çevrilen dosyada ne gibi bir işlem yapmak istiyorsunuz

ben sizin csv eklediğiniz dosyayı excell çeviren kodu yazdım siz de ne gibi bir veri alacaksanız dönüşüm yapılan excell dosyasından alacaksınız.
 
Şimdi anladım
csv dosyasındaki ikinci satır aynen böyle
Kod:
Yazı,"1","2017-05-12","07:06:32","1494561992.835708","1","0","","[COLOR="Red"]01086995460959332150357421128517180630101606590[/COLOR]"

dosya dönüm yaptığında
Kod:
010869954609593321503574211285171806301016065

sondaki iki değer boşluk olarak gözüküyor

Kod:
[COLOR="red"]90[/COLOR]

boşlukları silincede değerler siliniyor.
 
Geri
Üst