ödeme tipine göre raporlama

Katılım
9 Ekim 2021
Mesajlar
335
Excel Vers. ve Dili
excell 2013
Altın Üyelik Bitiş Tarihi
19-12-2023
Excel web ailesine sevgiler saygılar.

Benim pivot table a uyumsuz bir dosyam var. 3 tip ödeme tipi var. ödeme tiplerine göre rapor dosyası oluştursun istiyorum.

yardımcı olabilirseniz sevinirim.

Herkese iyi günler dilerim.
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,353
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Ben de alternatif olsun, kullanıcının isteğine göre hazırladım.
Kod:
Public Sub Rapor()

Dim col As Collection
Dim arr As Variant
Dim i   As Long
Dim j   As Long
Dim k   As Integer
Dim kol As Integer

Dim bsl As Variant

Application.ScreenUpdating = False

bsl = Array("Sıra No", "Mağaza Adı", "Bakiye")
Sayfa2.Cells.ClearContents

Set col = New Collection

arr = Sayfa1.Range("B4").CurrentRegion.Value

On Error Resume Next
For i = LBound(arr, 1) + 1 To UBound(arr, 1)
    col.Add arr(i, 4), arr(i, 4)
Next i
On Error GoTo 0

For k = 1 To col.Count
    kol = (k - 1) * 4 + 1
    With Sayfa2.Cells(1, kol)
        .Value = col(k)
        .Font.Bold = True
        .Font.Size = 14
        .Font.Color = vbRed
    End With
    
    Sayfa2.Cells(2, kol).Resize(1, UBound(bsl) + 1) = bsl
    j = 2
    For i = 2 To UBound(arr, 1)
        If arr(i, 4) = col(k) Then
            j = j + 1
            Sayfa2.Cells(j, kol).Offset(0, 0) = j - 2
            Sayfa2.Cells(j, kol).Offset(0, 1) = arr(i, 2)
            Sayfa2.Cells(j, kol).Offset(0, 2) = arr(i, 3)
        End If
    Next i
Next k

Application.ScreenUpdating = True

MsgBox "Aktarım Tamamlanmıştır....."

End Sub
 

Ekli dosyalar

Katılım
9 Ekim 2021
Mesajlar
335
Excel Vers. ve Dili
excell 2013
Altın Üyelik Bitiş Tarihi
19-12-2023
Merhaba,
Ben de alternatif olsun, kullanıcının isteğine göre hazırladım.
Kod:
Public Sub Rapor()

Dim col As Collection
Dim arr As Variant
Dim i   As Long
Dim j   As Long
Dim k   As Integer
Dim kol As Integer

Dim bsl As Variant

Application.ScreenUpdating = False

bsl = Array("Sıra No", "Mağaza Adı", "Bakiye")
Sayfa2.Cells.ClearContents

Set col = New Collection

arr = Sayfa1.Range("B4").CurrentRegion.Value

On Error Resume Next
For i = LBound(arr, 1) + 1 To UBound(arr, 1)
    col.Add arr(i, 4), arr(i, 4)
Next i
On Error GoTo 0

For k = 1 To col.Count
    kol = (k - 1) * 4 + 1
    With Sayfa2.Cells(1, kol)
        .Value = col(k)
        .Font.Bold = True
        .Font.Size = 14
        .Font.Color = vbRed
    End With
   
    Sayfa2.Cells(2, kol).Resize(1, UBound(bsl) + 1) = bsl
    j = 2
    For i = 2 To UBound(arr, 1)
        If arr(i, 4) = col(k) Then
            j = j + 1
            Sayfa2.Cells(j, kol).Offset(0, 0) = j - 2
            Sayfa2.Cells(j, kol).Offset(0, 1) = arr(i, 2)
            Sayfa2.Cells(j, kol).Offset(0, 2) = arr(i, 3)
        End If
    Next i
Next k

Application.ScreenUpdating = True

MsgBox "Aktarım Tamamlanmıştır....."

End Sub
Tam istediğim gbi hocam emeğinize sağlık. çok harika olmuş.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,353
Excel Vers. ve Dili
Ofis 365 Türkçe
Anladım, patronları ikna etmek zordur, patron hep haklıdır, bilirim :)
 
Son düzenleme:
Katılım
9 Ekim 2021
Mesajlar
335
Excel Vers. ve Dili
excell 2013
Altın Üyelik Bitiş Tarihi
19-12-2023
Anladım, patronları ikna etmek zordur, patron hep haklıdır, bilirim :)
Aynen Hocam mesela 0 olan bakiyeleri görmek istemiyor :)) . 0 olan bakiyeleri aktarmaması için bir ekleme yapmanız mümkünmü acaba ?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,353
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Deneyiniz.
Kod:
Public Sub Rapor()

Dim col As Collection
Dim arr As Variant
Dim i   As Long
Dim j   As Long
Dim k   As Integer
Dim kol As Integer

Dim bsl As Variant

Application.ScreenUpdating = False

bsl = Array("Sıra No", "Mağaza Adı", "Bakiye")
Sayfa2.Cells.ClearContents

Set col = New Collection

arr = Sayfa1.Range("B4").CurrentRegion.Value

On Error Resume Next
For i = LBound(arr, 1) + 1 To UBound(arr, 1)
    col.Add arr(i, 4), arr(i, 4)
Next i
On Error GoTo 0

For k = 1 To col.Count
    kol = (k - 1) * 4 + 1
    With Sayfa2.Cells(1, kol)
        .Value = col(k)
        .Font.Bold = True
        .Font.Size = 14
        .Font.Color = vbRed
    End With
    
    Sayfa2.Cells(2, kol).Resize(1, UBound(bsl) + 1) = bsl
    j = 2
    For i = 2 To UBound(arr, 1)
        If arr(i, 4) = col(k) Then
            If arr(i, 3) > 0 Then
                j = j + 1
                Sayfa2.Cells(j, kol).Offset(0, 0) = j - 2
                Sayfa2.Cells(j, kol).Offset(0, 1) = arr(i, 2)
                Sayfa2.Cells(j, kol).Offset(0, 2) = arr(i, 3)
            End If
        End If
    Next i
Next k

Application.ScreenUpdating = True

MsgBox "Aktarım Tamamlanmıştır....."

End Sub
 
Katılım
9 Ekim 2021
Mesajlar
335
Excel Vers. ve Dili
excell 2013
Altın Üyelik Bitiş Tarihi
19-12-2023
Merhaba,

Deneyiniz.
Kod:
Public Sub Rapor()

Dim col As Collection
Dim arr As Variant
Dim i   As Long
Dim j   As Long
Dim k   As Integer
Dim kol As Integer

Dim bsl As Variant

Application.ScreenUpdating = False

bsl = Array("Sıra No", "Mağaza Adı", "Bakiye")
Sayfa2.Cells.ClearContents

Set col = New Collection

arr = Sayfa1.Range("B4").CurrentRegion.Value

On Error Resume Next
For i = LBound(arr, 1) + 1 To UBound(arr, 1)
    col.Add arr(i, 4), arr(i, 4)
Next i
On Error GoTo 0

For k = 1 To col.Count
    kol = (k - 1) * 4 + 1
    With Sayfa2.Cells(1, kol)
        .Value = col(k)
        .Font.Bold = True
        .Font.Size = 14
        .Font.Color = vbRed
    End With
 
    Sayfa2.Cells(2, kol).Resize(1, UBound(bsl) + 1) = bsl
    j = 2
    For i = 2 To UBound(arr, 1)
        If arr(i, 4) = col(k) Then
            If arr(i, 3) > 0 Then
                j = j + 1
                Sayfa2.Cells(j, kol).Offset(0, 0) = j - 2
                Sayfa2.Cells(j, kol).Offset(0, 1) = arr(i, 2)
                Sayfa2.Cells(j, kol).Offset(0, 2) = arr(i, 3)
            End If
        End If
    Next i
Next k

Application.ScreenUpdating = True

MsgBox "Aktarım Tamamlanmıştır....."

End Sub
Necdet hocam eyw patron gıkını çıkaramadı ama şapka çıkardı valla :) yine isviçre saati gibi çalışıyor. emeğinize sağlık herşey gönlünüzce olsun.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,353
Excel Vers. ve Dili
Ofis 365 Türkçe
;) hiç isviçre saatim olmadı, onu bilemem dee güle güle kullanın
 
Üst