- Katılım
- 11 Ocak 2008
- Mesajlar
- 1,395
- Excel Vers. ve Dili
- Office 365 (Türkçe)
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Reseller hosting kontrol panelinde ad soyad site bilgilerinizi içeren csv dosyanın xls e çevrilmesi nasıl olur.dosya ekte.
Sub veri_al()
ThisWorkbook.Sheets(ActiveSheet.Name).Range(Cells(2, 1), Cells(Rows.Count, Columns.Count)).ClearContents
Dim sayfa_adi As String
Dosya = Application.GetOpenFilename(filefilter:="Text dosyaları (*.txt), *.txt", Title:="Import Data From...")
If Dosya = "False" Then
Exit Sub
End If
sayfa_adi = Dir(Dosya)
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dosya, Destination:=Range("A1"))
.Name = sayfa_adi
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.Refresh BackgroundQuery:=False
End With
Range("a1").Select
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next qt
Columns("A:A").TextToColumns Destination:=Range("A1"), 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)), TrailingMinusNumbers:=True
Selection.ColumnWidth = 26.14
Range("a1").Select
MsgBox "işlem tamam"
End Sub
Kodu boş bir modüle kopyalayın
Kod:Sub veri_al() ThisWorkbook.Sheets(ActiveSheet.Name).Range(Cells(2, 1), Cells(Rows.Count, Columns.Count)).ClearContents Dim sayfa_adi As String Dosya = Application.GetOpenFilename(filefilter:="Text dosyaları (*.txt), *.txt", Title:="Import Data From...") If Dosya = "False" Then Exit Sub End If sayfa_adi = Dir(Dosya) With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dosya, Destination:=Range("A1")) .Name = sayfa_adi .RefreshOnFileOpen = False .RefreshStyle = xlInsertDeleteCells .Refresh BackgroundQuery:=False End With Range("a1").Select Dim qt As QueryTable For Each qt In ActiveSheet.QueryTables qt.Delete Next qt Columns("A:A").TextToColumns Destination:=Range("A1"), 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)), TrailingMinusNumbers:=True Selection.ColumnWidth = 26.14 Range("a1").Select MsgBox "işlem tamam" End Sub
Merhabalar,
ekli csv dosyasını excel ortamına alırken değerleri aradaki nokta işaretlerini almıyor ; csv dosyasındaki veriyi metin olarak algılayıp, aynen ne yazıyorsa bire-bir aynı şekilde alsın.
1.4359 >> 14359
1.1608 >> 11608
excel'e bu şekilde alıyor.
olması gereken ise bire-bir aynısı
teşekkürler,
iyi çalışmalar.
Sub veri_al()
ThisWorkbook.Sheets(ActiveSheet.Name).Range(Cells(2, 1), Cells(Rows.Count, Columns.Count)).ClearContents
Dim sayfa_adi As String
Dosya = Application.GetOpenFilename(filefilter:="Text dosyaları (*.csv), *.csv", Title:="Import Data From...")
If Dosya = "False" Then
Exit Sub
End If
sayfa_adi = Dir(Dosya)
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dosya, Destination:=Range("A1"))
.Name = sayfa_adi
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.Refresh BackgroundQuery:=False
End With
Range("a1").Select
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next qt
Columns("A:A").TextToColumns Destination:=Range("A1"), 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)), TrailingMinusNumbers:=True
Selection.ColumnWidth = 26.14
Range("a1").Select
MsgBox "işlem tamam"
End Sub
[FONT="Trebuchet MS"]Dim yol As String
Private Sub UserForm_Initialize()
Dim Rky As Object, Evn As Object
yol = ThisWorkbook.Path
Set Rky = VBA.CreateObject("Scripting.FilesystemObject")
For Each Evn In Rky.getfolder(yol).Files
If Right(Evn.Name, 3) = "txt" Then ComboBox1.AddItem Split(Evn.Name, ".")(0)
Next Evn
End Sub
Private Sub ComboBox1_Change()
Dim con As Object, rs As Object
Set con = VBA.CreateObject("Adodb.Connection")
con.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" & _
yol & ";Extensions=asc,csv,tab,txt;"
Set Rky = CreateObject("Scripting.FilesystemObject")
For Each Evn In Rky.getfolder(yol).Files
Set rs = con.Execute("Select * from [" & Evn.Name & "]")
Do While Not rs.EOF
On Error Resume Next
Range("A1").CopyFromRecordset rs
Loop
Exit For
Next Evn
con.Close
Set con = Nothing: Set rs = Nothing
End Sub[/FONT]
Merhaba halit3 txt dosya formatını zannedersem virgülle hücrelere ayırıyor bunu noktalı virgülle yapabilir miyiz..
kesenek dosya hazırlama noktalı virgülle ayırıyor.
Sub veri_al()
ThisWorkbook.Sheets(ActiveSheet.Name).Range(Cells(2, 1), Cells(Rows.Count, Columns.Count)).ClearContents
Dim sayfa_adi As String
Dosya = Application.GetOpenFilename(filefilter:="Text dosyaları (*.csv), *.csv", Title:="Import Data From...")
If Dosya = "False" Then
Exit Sub
End If
sayfa_adi = Dir(Dosya)
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dosya, Destination:=Range("A1"))
.Name = sayfa_adi
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.Refresh BackgroundQuery:=False
End With
Range("a1").Select
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next qt
Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=[COLOR="Red"]True[/COLOR], Comma:=[COLOR="red"]False[/COLOR], Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
Selection.ColumnWidth = 26.14
Range("a1").Select
MsgBox "işlem tamam"
End Sub
Tam olarak ne dediğinizi anlayamadım ben ofis 2003 kullanıyorum aşağıdaki kod csv formatındaki kapalı bir dosyadan verileri ayrıştırarak almaktadır.
kod:
Kod:Sub veri_al() ThisWorkbook.Sheets(ActiveSheet.Name).Range(Cells(2, 1), Cells(Rows.Count, Columns.Count)).ClearContents Dim sayfa_adi As String Dosya = Application.GetOpenFilename(filefilter:="Text dosyaları (*.csv), *.csv", Title:="Import Data From...") If Dosya = "False" Then Exit Sub End If sayfa_adi = Dir(Dosya) With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dosya, Destination:=Range("A1")) .Name = sayfa_adi .RefreshOnFileOpen = False .RefreshStyle = xlOverwriteCells .Refresh BackgroundQuery:=False End With Range("a1").Select Dim qt As QueryTable For Each qt In ActiveSheet.QueryTables qt.Delete Next qt Columns("A:A").TextToColumns Destination:=Range("A1"), 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)), TrailingMinusNumbers:=True Selection.ColumnWidth = 26.14 Range("a1").Select MsgBox "işlem tamam" End Sub
Sub veri_al()
ThisWorkbook.Sheets(ActiveSheet.Name).Range(Cells(2, 1), Cells(Rows.Count, Columns.Count)).ClearContents
Dim sayfa_adi As String
Dosya = Application.GetOpenFilename(filefilter:="Text dosyaları (*.csv), *.csv", Title:="Import Data From...")
If Dosya = "False" Then
Exit Sub
End If
sayfa_adi = Dir(Dosya)
With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
End With
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Dosya, Destination:=Range("A1"))
.Name = sayfa_adi
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.Refresh BackgroundQuery:=False
End With
Range("a1").Select
Dim qt As QueryTable
For Each qt In ActiveSheet.QueryTables
qt.Delete
Next qt
Columns("A:A").TextToColumns Destination:=Range("A1"), 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)), TrailingMinusNumbers:=True
Range("a1").Select
With Application
.DecimalSeparator = ","
.ThousandsSeparator = "."
End With
MsgBox "işlem tamam"
End Sub