• DİKKAT

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

Kapalı CSV Dosyasından Veri Çekmek

Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
Benim istediğim virgülle ayrılmış csv dosyasındaki verileri kendi dosyama a2 hücresinden başlayarak aşağıya doğru doldurmasını istiyorum.

Birde şunu merak ediyorum. CSV dosyasında


QuizName,QuizClass,FirstName,LastName,StudentID,CustomID,Earned Points,Possible Points,PercentCorrect,QuizCreated,DataExported,Key Version,Stu1,PriKey1,Points1,Mark1,Stu2,PriKey2,Points2,Mark2,Stu3,PriKey3,Points3,Mark3,Stu4,PriKey4,Points4,Mark4,Stu5,PriKey5,Points5,Mark5,Stu6,PriKey6,Points6,Mark6,Stu7,PriKey7,Points7,Mark7,Stu8,PriKey8,Points8,Mark8,Stu9,PriKey9,Points9,Mark9,Stu10,PriKey10,Points10,Mark10,Stu11,PriKey11,Points11,Mark11,Stu12,PriKey12,Points12,Mark12,Stu13,PriKey13,Points13,Mark13,Stu14,PriKey14,Points14,Mark14,Stu15,PriKey15,Points15,Mark15,Stu16,PriKey16,Points16,Mark16,Stu17,PriKey17,Points17,Mark17,Stu18,PriKey18,Points18,Mark18,Stu19,PriKey19,Points19,Mark19,Stu20,PriKey20,Points20,Mark20

format bu. Acaba mesela First Name bölümü almak istersem nasıl bir komut eklemem gerek?
 
Acaba fikri olan var mı? Sadece A sütunu dolu olan csv dosyasındaki verileri kendi dosyamdaki A2 den başlayarak yazmak istiyorum.
 
Merhaba,

Sorularınızı; gerçek belgenizin, özel bilgi içermeyen kopyası şeklinde hazırlayacağınız örnek belge (excel ve csv) üzerinden sorarsanız,
sorunuzun cevapsız kalacağını sanlıyorum, bir üye mutlaka çözüm önerisinde bulunacaktır.

Ayrıca;
-- Ms.Excelin kendi menü çubuğunda, istediğiniz husus ile ilgili bir düğme var. Öncelikle bu yöntemi denemenizde yarar olabilir.
Benim Excel versiyonumda, VERİ menüsündeki DIŞ VERİ AL bölümünde METİNDEN şeklinde bir düğme görülüyor.
-- Aşağıdaki konu sayfasında da benzer bir soru ve çözüm mevcut, inceleyiniz.
*.xls ve *.csv dosyalarından veri alma=>.
.
 
İsteklerim ve Dosyalar ekte. Dİğer konulara baktım ancak yapamadım Genelde klasördeki tüm verileri almak adına var. BEn her seferinde 1 dosya seçmek istiyorum.
 

Ekli dosyalar

Tekrar merhaba.
Veriler ana dosyaya alırken TAM isteğinizi biraz detaylandırır mısınız?
Verileri;
-- CSV uzantılı belgede yer aldığı gibi mi alınsın istiyorsunuz?
-- CSV'deki bilgilerin, sütunlara dağıtılmasını mı istiyorsunuz?
-- CSV'deki verilerin sadece belli kısmını mı almak istiyorsunuz?
.
 
Son düzenleme:
Tam alsın.

Başka bir makro ile bu yazıdan numarasını çekmesini istersem
format bu şekilde olduğundan
QuizName,QuizClass,FirstName,LastName,StudentID,CustomID ...

Split(2, 3).Value, ",")(4)

komutu ile başka sayfalara veri gönderebilirim değil mi?
 
Bir de yazdım mı hatırlayamadım ama 2 dosya var örnek olarak. Mesela 1. A sütununa 2. B sütuna şeklinde olacak. Tabii bu 6 ders olacak.
 
Tekrar merhaba.

Örnek belgelerinize göre, olması gereken birkaç satırlık sonucu elle yazarak veya basit kopyala yapıştır işlemi yaparak
örneklendirirseniz sonuca ulaşmanız daha kolay olur diye düşünüyorum.
.
 
Csv dosyalarınızla ana dosya ayni klasörde olmalıdır.
Dosya linki aşağıdadır.

DOSYA YUKLE

Kod:
Sub csvaktar59()
Dim dosya, sh As Worksheet, sat As Long
Dim ds, f, dsy As String, a As String
ChDir (ThisWorkbook.Path)
Sheets("Sayfa1").Select
Range("A2:A" & Rows.Count).ClearContents
dosya = Application.GetOpenFilename("CSV dosyaları,*.csv", , "CSV dosya seçiniz.")
If dosya = False Then
    MsgBox "Csv dosya seçilmemiştir."
End If
Set ds = CreateObject("Scripting.FileSystemObject")
f = ds.GetFileName(dosya)
dsy = Left(f, Len(f) - 4)
sat = 1
Open (dosya) For Input As #1
Do While Not EOF(1)
    Line Input #1, a
    Cells(sat, "A").Value = Replace(Split(a, ",")(2), """", "")
    sat = sat + 1
Loop
Close #1

MsgBox "bitti"
End Sub
 
Sayın Evren Hocam,
Kod:
Run time error '9':
Subscript out of range
Kod içindeki hatayı alıyorum, neden olabilir?
Saygılarımla
 

Ekli dosyalar

  • hata_Mesaji_9.jpg
    hata_Mesaji_9.jpg
    121.2 KB · Görüntüleme: 9
Aşağıdaki yerleri ekleyiniz.
Rich (BB code):
Do While Not EOF(1)

    Line Input #1, a

on error goto atla

    Cells(sat, "A").Value = Replace(Split(a, ",")(2), """", "")

    sat = sat + 1

atla:

on error goto 0

Loop
 
Sayın Evren Hocam,
Dediklerinizi yaptım, ama aynı yerde yine hata veriyor. Nedenini anlamadım. CSV dosya da ekte.
Saygılarımla
 

Ekli dosyalar

  • Hata_9.jpg
    Hata_9.jpg
    121 KB · Görüntüleme: 4
  • Deneme.rar
    Deneme.rar
    385 bayt · Görüntüleme: 13
Sayın Evren Hocam,
Dediklerinizi yaptım, ama aynı yerde yine hata veriyor. Nedenini anlamadım. CSV dosya da ekte.
Saygılarımla
Buyurun:cool:
Kod:
Sub csvaktar59V2()
Dim dosya, sh As Worksheet, sat As Long
Dim ds, f, dsy As String, a As String
ChDir (ThisWorkbook.Path)
Sheets("Sayfa1").Select
Range("A2:A" & Rows.Count).ClearContents
dosya = Application.GetOpenFilename("CSV dosyaları,*.csv", , "CSV dosya seçiniz.")
If dosya = False Then
    MsgBox "Csv dosya seçilmemiştir."
End If
Set ds = CreateObject("Scripting.FileSystemObject")
f = ds.GetFileName(dosya)
dsy = Left(f, Len(f) - 4)
sat = 1
Open (dosya) For Input As #1
Do While Not EOF(1)
    Line Input #1, a
    Cells(sat, "A").Value = Split(a, ";")(3)
    sat = sat + 1
Loop
Close #1

MsgBox "bitti"
End Sub
 
Sayın Evren Hocam,
Çok teşekkür ederim.
Saygılarımla
 
Çok özür dileyerek sorumu düzeltmem gerekecek. Ben çıktıları virgül ile verince hep CSV dosyası olarak zannetmişim. Sizin programınızı çalıştırınca görmeyince ilk kez baktım. Dosyalarım .XLS formatındaymış :(

Tekrar çok özür diliyorum. Vaktinizi aldım. Örnek dosyalar düzgün olarak yüklemişim bu arada.
 
Hocam bende makroyu XLS ye çevirince

Run time error 55
File already open

uyarısı aldım.
 
Aynen hocam. Örnek var ikinci mesajda. Xls dosyaları var. Onları alıp ana klasörde sayfa1 de a2 den başlayarak yaoıltıracak.
 
Geri
Üst