Verileri diğer sayfaya aynı olanları toplayarak aktarma

Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
selam.... benim isteğim veri sayfasında bulunan listede aynı kişiye ait aynı özelliğe sahip malzemeyi tek tek değil toplayıp bir satırda özelliği ile birlikte vermesini makro kod yardımı ile yapmak istiyorum
 
Son düzenleme:
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
ustalarım o kadar zor bir soru sormadım herhalde yardımcı olacak kimse yokmu
 
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
ustalarım o kadar zor bir soru sormadım herhalde yardımcı olacak kimse yokmu
 
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
ustalar lütfen yardımınızı bekliyorum
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodları deneyiniz.

Kod:
[COLOR=blue]Sub[/COLOR] AktarSay()
Dim a, i, n, k, b(), z
Set s1 = Sheets("VERİ")
Set s2 = Sheets("RAPOR")
'*******************************************
a = s1.Range("a2:d" & s1.[a65536].End(3).Row).Value
ReDim b(1 To [COLOR=blue]UBound[/COLOR](a, 1), 1 To 5)
With CreateObject("[COLOR=blue]Scripting.Dictionary[/COLOR]")
    .CompareMode = [COLOR=blue]vbTextCompare[/COLOR]
    For i = 1 To [COLOR=blue]UBound[/COLOR](a, 1)
           If [COLOR=blue]Not IsEmpty[/COLOR](a(i, 2)) Then
                z = a(i, 2) & ":" & a(i, 3) & ":" & a(i, 4)
                If [COLOR=blue]Not .exists[/COLOR](z) Then
                    n = n + 1
                    b(n, 1) = n
                    b(n, 2) = a(i, 2)
                    b(n, 3) = a(i, 3)
                    b(n, 4) = a(i, 4)
                    .[COLOR=blue]Add [/COLOR]z, n
                End If
                    b(.Item(z), 5) = b(.Item(z), 5) + 1
            End If
    Next
End With
s2.Range("a2:e500").ClearContents
s2.[a2].Resize(n, 5).Value = b
'*******************************************
MsgBox "Bitti"
[a1].Select
Set s1 = [COLOR=blue]Nothing[/COLOR]
Set s2 = [COLOR=blue]Nothing[/COLOR]
[COLOR=blue]End Sub[/COLOR]
 
Son düzenleme:
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
Aşağıdaki kodları deneyiniz.

Kod:
[COLOR=blue]Sub[/COLOR] AktarSay()
Dim a, i, n, k, b(), z
Set s1 = Sheets("VERİ")
Set s2 = Sheets("RAPOR")
'*******************************************
a = s1.Range("a2:d" & s1.[a65536].End(3).Row).Value
ReDim b(1 To [COLOR=blue]UBound[/COLOR](a, 1), 1 To 5)
With CreateObject("[COLOR=blue]Scripting.Dictionary[/COLOR]")
    .CompareMode = [COLOR=blue]vbTextCompare[/COLOR]
    For i = 1 To [COLOR=blue]UBound[/COLOR](a, 1)
           If [COLOR=blue]Not IsEmpty[/COLOR](a(i, 2)) Then
                z = a(i, 2) & ":" & a(i, 3) & ":" & a(i, 4)
                If [COLOR=blue]Not .exists[/COLOR](z) Then
                    n = n + 1
                    b(n, 1) = n
                    b(n, 2) = a(i, 2)
                    b(n, 3) = a(i, 3)
                    b(n, 4) = a(i, 4)
                    .[COLOR=blue]Add [/COLOR]z, n
                End If
                    b(.Item(z), 5) = b(.Item(z), 5) + 1
            End If
    Next
End With
s2.Range("a2:e500").ClearContents
s2.[a2].Resize(n, 5).Value = b
'*******************************************
MsgBox "Bitti"
[a1].Select
Set s1 = [COLOR=blue]Nothing[/COLOR]
Set s2 = [COLOR=blue]Nothing[/COLOR]
[COLOR=blue]End Sub[/COLOR]
TEŞEKKÜR EDERİM ÇALIŞIYOR.
 
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
ripek ustam benim veri sayfamda verilerin başında numara yok onun için hata veriyor. aktarma işlemini a sütunundan nasıl başlatırız
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Kodları aşağıdaki şekilde değiştiriniz.

Kod:
Sub AktarSay()
Dim a, i, n, k, b(), z
Set s1 = Sheets("VERİ")
Set s2 = Sheets("RAPOR")
'*******************************************
a = s1.Range("a2:c" & s1.[a65536].End(3).Row).Value
ReDim b(1 To UBound(a, 1), 1 To 5)
With CreateObject("Scripting.Dictionary")
    .CompareMode = vbTextCompare
    For i = 1 To UBound(a, 1)
           If Not IsEmpty(a(i, 1)) Then
                z = a(i, 1) & ":" & a(i, 2) & ":" & a(i, 3)
                If Not .exists(z) Then
                    n = n + 1
                    b(n, 1) = n
                    b(n, 2) = a(i, 1)
                    b(n, 3) = a(i, 2)
                    b(n, 4) = a(i, 3)
                    .Add z, n
                End If
                    b(.Item(z), 5) = b(.Item(z), 5) + 1
            End If
    Next
End With
s2.Range("a2:e500").ClearContents
s2.[a2].Resize(n, 5).Value = b
'*******************************************
MsgBox "Bitti"
[a1].Select
Set s1 = Nothing
Set s2 = Nothing
End Sub
 
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
tşk ederim ilgin için ama sayısız bilgileri süzüyor ancam raporu sayılı veriyor, birde raporu hangi sütunlara vereceğini nasıl ayarlıyoruz. bende raporu a, e, f, g sütunlarına yazmasını diğer sütunların boş olması gerekiyor.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
O zaman bu şekilde deneyiniz.

Kod:
Sub AktarSay()
Dim a, i, n, k, b(), z
Set s1 = Sheets("VERİ")
Set s2 = Sheets("RAPOR")
'*******************************************
a = s1.Range("a2:c" & s1.[a65536].End(3).Row).Value
ReDim b(1 To UBound(a, 1), 1 To 7)
With CreateObject("Scripting.Dictionary")
    .CompareMode = vbTextCompare
    For i = 1 To UBound(a, 1)
           If Not IsEmpty(a(i, 1)) Then
                z = a(i, 1) & ":" & a(i, 2) & ":" & a(i, 3)
                If Not .exists(z) Then
                    n = n + 1
                    b(n, 1) = a(i, 1)
                    b(n, 5) = a(i, 2)
                    b(n, 6) = a(i, 3)
                    .Add z, n
                End If
                    b(.Item(z), 7) = b(.Item(z), 7) + 1
            End If
    Next
End With
s2.Range("a2:g500").ClearContents
s2.[a2].Resize(n, 7).Value = b
'*******************************************
MsgBox "Bitti"
[a1].Select
Set s1 = Nothing
Set s2 = Nothing
End Sub
 
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
program güzel çalışıyor ancak raporu a, e, f, g sütunlarına oluştururken bu rapordan bağımsız olarak c ve d sütunlarına yazdığım yazıyı her rapor almamda siliyor bunu önleyebilirmiyiz
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Biraz acele etmiyormusunuz?

Kodlarını alt kısmını aşağıdaki şekilde değiştiriniz.

Kod:
s2.Range("a2:a500").ClearContents
s2.Range("e2:g500").ClearContents
s2.[a2].Resize(n, 1).Value = b
For x = 1 To UBound(b)
    For j = 5 To 7
        Cells(x + 1, j) = b(x, j)
    Next j
Next
 
Son düzenleme:
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
ustam teşekkür ederim kusursuz çalışıyor
 
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
ustam aşağıdaki programı dosyamın birinde kullanıyorum. diğer bir dosyamda bunu kullanmak istiyorum ve bu kod yardımı ile rapor verirken g sütununda mevcut yazıları silmemesi gerekiyor düzenlemeniz mümkünmü saygılarımla..... şimdiden teşekkür ederim.



Sub AktarSay()
Dim a, i, n, k, b(), z
Set s1 = Sheets("EL TELSİZİ")
Set s2 = Sheets("SARJ CİHAZI")
'*******************************************
a = s1.Range("a2:h" & s1.[a65536].End(3).Row).Value
ReDim b(1 To UBound(a, 1), 1 To 8)
With CreateObject("Scripting.Dictionary")
.CompareMode = vbTextCompare
For i = 1 To UBound(a, 1)
If Not IsEmpty(a(i, 1)) Then
z = a(i, 1) & ":" & a(i, 4) & ":" & a(i, 5)
If Not .exists(z) Then
n = n + 1
b(n, 1) = a(i, 1)
b(n, 5) = a(i, 5)
b(n, 6) = a(i, 6)
.Add z, n
End If
b(.Item(z), 8) = b(.Item(z), 8) + 1
End If
Next
End With
s2.Range("a2:a500").ClearContents
s2.Range("e2:g500").ClearContents
s2.[a2].Resize(n, 1).Value = b
For x = 1 To UBound(b)
For j = 5 To 8
Cells(x + 1, j) = b(x, j)
Next j
Next
'*******************************************
MsgBox "Bitti"
[a1].Select
Set s1 = Nothing
Set s2 = Nothing
End Sub
 
Son düzenleme:
Katılım
27 Şubat 2007
Mesajlar
141
Excel Vers. ve Dili
excel 2010
ustalarım lütfen yardım o kadar zor bir soru değil kanısındayım
 
Üst