Txt den veri alıp aynı olanları toplamak

Katılım
24 Haziran 2006
Mesajlar
39
Yapmak istediklerimle ilgili forumu araştırdım ve ona yakın şeyler de buldum fakat kendime göre uyarlayamadım.

Bir dat dosyası var ve bunun içinde barkod,adet gibi bir format mevcut.

Kod:
IT. Sayim Fisi[COLOR=Black]
CH. G01 GECICI CARI KART[/COLOR][COLOR=Black]
CA. 000 MERKEZ[/COLOR][COLOR=Black]
GA. 000 MERKEZ[/COLOR][COLOR=Black]
FN. 298355[/COLOR][COLOR=Black]
PR. 001 BILAL[/COLOR][COLOR=Black]
DT. 13/02/2007[/COLOR][COLOR=Black]
4023103095199,12[/COLOR][COLOR=Black]
8690803740504,12[/COLOR][COLOR=Black]
8690803711702,42[/COLOR][COLOR=Black]
8690803760601,12[/COLOR][COLOR=DarkOrange]
8690803713515[/COLOR],[COLOR=DarkRed]12[/COLOR][COLOR=Blue]
8690803760908[/COLOR],[COLOR=Navy]20[/COLOR][COLOR=Black]
8002030142004,12[/COLOR][COLOR=Black]
8690784211703,12[/COLOR][COLOR=Black]
8690784910224,12[/COLOR][COLOR=Black]
8690784910330,12[/COLOR][COLOR=Black]
8690784910880,6[/COLOR][COLOR=Blue]
8690803760908[/COLOR],[COLOR=Navy]10[/COLOR][COLOR=Blue]
8690803760908[/COLOR],[COLOR=Navy]24[/COLOR][COLOR=Blue]
8690803760908[/COLOR],[COLOR=Navy]2[/COLOR][COLOR=DarkOrange]
8690803713515[/COLOR],[COLOR=DarkRed]20[/COLOR]

Userform üzerindeki bir button ile buradan barkod ve miktarları "Dış veri al" yolu ile alıp aynı olan barkodların adetlerini birleştirmek istiyorum. Bunu yapmak mümkün müdür ?

Bunun için aşşağıdaki kodları kullandım fakat kısmen istediğim oldu. Yardımcı olursanız sevinirim.

Syn. Rakkas ın http://excel.web.tr/showthread.php?t=20363 linkteki konuya verdiği yanıtta kullandığı kod ;

Kod:
[LEFT] Sub TXTAL()
'adres kısmını kendınize göre duzenleyınız.
    ADRES = "TEXT;C:\Documents and Settings\cati\Desktop\RNEK.txt"
    With ActiveSheet.QueryTables.Add(Connection:= _
        ADRES, Destination:=Range("A1"))
        .TextFileOtherDelimiter = ";"
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
        .Refresh BackgroundQuery:=False
    End With
End Sub
[/LEFT]
Syn. Cost_Control un http://excel.web.tr/showthread.php?t=23600 linkindeki konuya cevaben kullandığı kod :

Kod:
[LEFT] Private Sub CommandButton3_Click()

  Application.ScreenUpdating = False
    [S2] = 1
    [S3] = 2
    [S2:S3].AutoFill Destination:=Range("S2:S" & [A65536].End(3).Row), Type:=xlFillDefault
    Range("A1:S" & [A65536].End(3).Row).Sort Key1:=Range("A2")
    For x = [A65536].End(3).Row To 2 Step -1
    If Cells(x, 1) = Cells(x - 1, 1) Then
    For Y = 2 To 18
    Cells(x - 1, Y) = Cells(x - 1, Y) + Cells(x, Y)
    Next
    Rows(x).EntireRow.Delete
    End If
    Next
    Range("A2:S" & [A65536].End(3).Row).Sort Key1:=Range("S2")
    Columns("S").ClearContents
    Application.ScreenUpdating = True
    MsgBox "MÜKERRER KAYITLARI SİLME İŞLEMİ TAMAMLANMIŞTIR.", vbInformation
End Sub
[/LEFT]

Bu kodlar ile yaptığımda dışardan verileri alırken eski verileri yan satırlara kaydırıyor, veri alma özelliklerinden bunu düzenleyebiliyorum fakat vba kodları ile nasıl olacağı hakkında bir fikrim yok.

İkinci kod ile aynı olanları toplatıyorum lakin orada da topladığı barkodun yanındaki colonlara 0 gibi değerler atıyor.

 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,605
Excel Vers. ve Dili
Pro Plus 2021
Örnek dat dosyası ekleseydiniz, iyi olurdu ama aşağıdaki kodları bir deneyiniz.
Kod:
Sub deneme()
Cells.ClearContents

Open "c:\sil.dat" For Input As #1
Do Until EOF(1)
Line Input #1, veri

ver = Split(veri, ",")
If UBound(ver) > 0 Then
    sat = sat + 1
    Cells(sat, 1) = ver(0): Cells(sat, 2) = ver(1)
End If
Loop
Close #1
son = [a65536].End(3).Row
Range("A1:A" & son).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("F1"), Unique:=True

For x = 1 To [f65536].End(3).Row
    Cells(x, "G") = Evaluate("SUMPRODUCT(--(A1:A" & son & "=F" & x & "),--(B1:B" & son & "))")
Next x
End Sub
 
Katılım
24 Haziran 2006
Mesajlar
39
Syn veyselemre, istediğim aynen de buydu :)

sadece 2 ufak tefferuat var;
1. Verileri içeri aldığında sutun genişliklerini ayarlamasını da sağlayabilir miyiz
2. Toplanan verileri yani sizin F1 hücresinden başlayarak yazdırdığınız toplamları başka bir sayfadaki başka bir hücreden başlayarak aktarmak için For x kodunu nasıl düzeltmek gerekir.

Çok çok teşekkür ediyorum :)
 
Katılım
24 Haziran 2006
Mesajlar
39
Syn veyselemre, istediğim aynen de buydu :)

sadece 2 ufak tefferuat var;
1. Verileri içeri aldığında sutun genişliklerini ayarlamasını da sağlayabilir miyiz
2. Toplanan verileri yani sizin F1 hücresinden başlayarak yazdırdığınız toplamları başka bir sayfadaki başka bir hücreden başlayarak aktarmak için For x kodunu nasıl düzeltmek gerekir.

Çok çok teşekkür ediyorum :)
Syn veyselemre

Az önce yazdıklarıma gerek kalmadı.
Tekrar çok teşekkür ederim, sağolun.
 
Üst