Excel Sınırlı Satır Sayısı ve Çüzümü ¿

Katılım
2 Ocak 2009
Mesajlar
2
Excel Vers. ve Dili
2003 Türkçe
Merhaba, 65.536' dan fazla bir veriyi Oracle' den çekiyorum fakat excel'e atmakta sorun yaşıyorum çünkü excel' in satır sayısı 65.536. Bunun için forumu incelerken aşağıdaki kodu buldum ancak bu kod txt dosyasını excel' de ki sayfaya şu şekilde verileri getiriyor;

Kod:
"Kartno	Musno	Musad	Email	Soyad	Evtel	Ceptel	Cins"
"123456789		ADIM		SADI	3121234567	5421234567	E"
"123456789		ERDAL		ÖZER	3121234567	5051234567	E"
Kısacası 'Kart No' Kısmı A Sütun'una, 'Musno' Kısmı B Sütun'una Gelecek Şekilde olması gerek ama ne yaptıysam başaramadım bunu.



Aşağıdaki kod ; Eğer text dosyasındaki satır sayısı 65.536' den fazlaysa, kalanını diğer sayfalara aktarmak için kullanılmaktadır.


Kod:
Sub GetTxtData2()
    'Raider ®
    Dim MyFile As String
    MyFile = "C:\Test.txt"
    j = 0
    Set NewSh = Worksheets.Add
    j = j + 1
    NewSh.Name = "TextSheet-" & j
    Open MyFile For Input As #1
        Do While Not EOF(1)
            i = i + 1
                Line Input #1, InputData
                    Cells(i, 1) = InputData
                        If i > 65535 Then
                            Set NewSh = Worksheets.Add
                            j = j + 1
                            NewSh.Name = "TextSheet-" & j
                            i = 0
                        End If
        Loop
    Close #1
    Set NewSh = Nothing
End Sub
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,607
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,

Aşağıdaki linki incelemenizi öneririm.

http://www.excel.web.tr/f50/csv-format-nda-buyuk-bir-dosyay-excelde-acmak-t39934.html

Ayrıca ekli kod, dosyayı parçalara ayırır. Ayrılmış dosyaları doğğrudan excele alabilirsiniz.


Kod:
Sub DosyaParcala()
    Const fName = "C:\test.txt" ' Burada tam dosya yolunu ve adını belirtin.
    Const targetName = ".part%n.txt"
    Dim i As Double, tmp As String
    Dim fs As Object
    Dim tFile As Object
    Dim sFile As Object
    Dim sLine As String
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set sFile = fs.GetFile(fName).OpenAsTextStream
    i = 1
    tmp = Replace(targetName, "%n", i)
    Set tFile = fs.CreateTextFile(Replace(fName, ".txt", tmp))
    Do
        If sFile.Line Mod 65536 = 1 And sFile.Line <> 1 Then
            tFile.Close
            i = i + 1
            tmp = Replace(targetName, "%n", i)
            Set tFile = fs.CreateTextFile(Replace(fName, ".txt", tmp))
        End If
        sLine = sFile.ReadLine
        tFile.WriteLine sLine
    Loop Until sFile.AtEndOfStream = True
    sFile.Close
    tFile.Close
    Set sFile = Nothing
    Set sFile = Nothing
    Set fs = Nothing
End Sub
 
Üst