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?
 
Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
Acaba fikri olan var mı? Sadece A sütunu dolu olan csv dosyasındaki verileri kendi dosyamdaki A2 den başlayarak yazmak istiyorum.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
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=>.
.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
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:
Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
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?
 
Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
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.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
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.
.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,580
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
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

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,580
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
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

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,580
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Sayın Evren Hocam,
Çok teşekkür ederim.
Saygılarımla
 
Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
Ç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.
 
Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
Hocam bende makroyu XLS ye çevirince

Run time error 55
File already open

uyarısı aldım.
 
Katılım
26 Ocak 2013
Mesajlar
232
Excel Vers. ve Dili
Excel 2016 Türkçe
Aynen hocam. Örnek var ikinci mesajda. Xls dosyaları var. Onları alıp ana klasörde sayfa1 de a2 den başlayarak yaoıltıracak.
 
Üst