csv dosyasindan verilerin bozuk gelmesi

Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
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
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
.. 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.
 
Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
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..
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
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?
 
Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
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ı...
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Dosyanın adını histrory.txt olarak değiştirin. Excelden bu dosyayı açın. Arada boş satırlar çıksa da veriler normal geliyor.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Problem, charset problemidir.

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

.
 
Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
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...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
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...

.
 
Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
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
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
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.



.
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
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
 
Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
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..
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
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
 
Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
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
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
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.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,800
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Ş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.
 
Üst