aynılarını birleştirip toplamlarını çıkarma

Katılım
10 Nisan 2007
Mesajlar
43
Excel Vers. ve Dili
Office 2003 Türkçe
oldu şimdi tşk ederim ufak tefek aynılarından vardı onlarıda elle birleştirdim :)
 
Katılım
10 Nisan 2007
Mesajlar
43
Excel Vers. ve Dili
Office 2003 Türkçe
merhaba arkadaşlar,

buna benzer bişey daha var, fakat biraz değişiklik yaptım kodlarda olmadı. Size gönderiyorum bi bakarmısınız.

istenilenler:
zip içinde 3 dosya var 2008-2009-2010 diye şimdi: a sütununda firmalar var, b sütununda markalar var, c sütununda ise fiyatlar var.
Hangi firma hangi markadan kaç para satmış bunlar hesaplanacak
örnek
NBG ÇORAP İML.SAN.VE TİC.A.Ş. ADAMS £12,79
NBG ÇORAP İML.SAN.VE TİC.A.Ş. NEXT £321,70

bunun gibi
her yıl ayrı ayrı olacak birde hepsi birleşmiş olarak olacak, yani 2 dosya olacak

teşekkür ederim
 

Ekli dosyalar

Orion1

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

Ofis-2010-TR 32 Bit
Sorunuzun ilk bölümünü yaptım.
Bunu inceleyin.
Olmuşsa genekl toplamları byaradn alıcan.
Dosyayı ekledim.
Dosya Evren_59
Diğer dostyalarla ayni klasöede olamalıdır.:cool:
Kod:
Option Explicit

Option Base 1

Sub firamalar_59()
Dim z As Object, yil As String, a(), n As Long, myarr()
Dim sh As Worksheet, fso As Object, f As Object, ds As Object, sat As Long
Dim sat2 As Long, i As Long, deg As String, son_sat As Long
Sheets("Yillik").Select
Range("A2:D65536").ClearContents
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.getfolder(ThisWorkbook.Path).Files
sat = 2
Application.ScreenUpdating = False
For Each ds In f
    If ds.Name <> ThisWorkbook.Name Then
        If Workbooks.Open(ds).ReadOnly = True Then Workbooks(ds.Name).Close
        'Workbooks(ds.Name).Sheets(1).AutoFilter
        sat2 = Workbooks(ds.Name).Sheets(1).Cells(65536, "A").End(xlUp).Row
        If sat2 > 1 Then
            a = Workbooks(ds.Name).Sheets(1).Range("A2:C" & sat2).Value
            Workbooks(ds.Name).Close False
            Set z = CreateObject("Scripting.Dictionary")
            ReDim myarr(1 To 3, 1 To sat2)
            For i = 1 To UBound(a, 1)
                deg = a(i, 1) & "-" & a(i, 2)
                If deg <> "" Then
                    If Not z.exists(deg) Then
                        n = n + 1
                        z.Add deg, n
                        myarr(1, n) = a(i, 1)
                        myarr(2, n) = a(i, 2)
                    End If
                    myarr(3, z.Item(deg)) = myarr(3, z.Item(deg)) + a(i, 3)
                End If
            Next i
            son_sat = ThisWorkbook.Sheets(1).Cells(65536, "A").End(xlUp).Row + 1
            ThisWorkbook.Sheets(1).Range("A" & son_sat).Resize(n, 1) = Left(ds.Name, 4)
            ReDim Preserve myarr(1 To 3, 1 To n)
            ThisWorkbook.Sheets(1).Range("B" & son_sat).Resize(n, 3) = Application.Transpose(myarr)
            Set z = Nothing
            n = 0
            Erase myarr: Erase a
        End If
    End If
Next ds
Set fso = Nothing: Set f = Nothing
Application.ScreenUpdating = True
MsgBox "Veriler Yıl - Firma ismi - Marka bazında Ayrışıp Toplandı." & _
vbLf & "evrengizlen@hotmail.com", vbOKOnly + vbInformation, "E V R E N"
End Sub
 

Ekli dosyalar

Katılım
10 Nisan 2007
Mesajlar
43
Excel Vers. ve Dili
Office 2003 Türkçe
çözüm yok mu arkadaşlar :(
 
Üst