Telefonszámunk: 1-472-0679

Hozzászólás: [Resolved] Kimutatások automatikus elkészítése

Kezdőlap Fórumok Excel programozás [Resolved] Kimutatások automatikus elkészítése Hozzászólás: [Resolved] Kimutatások automatikus elkészítése

#10578
Adri0324
Felhasználó

    Kedveseim! Nagyon köszönöm!

    Képzeljétek, megoldottam. 3 napom ment rá. (Tudom, jó béna vagyok)
    Kicsit csentem innen, kicsit kérdeztem onnan… De megoldottam.
    Mondtam is a főnöknek, elmentem pezsgőt bontani… 🙂
    Íme a művem:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim ws As Worksheet
        Dim tbl As ListObject
        Dim pivotDestRange As Range
        Dim pivotCache As pivotCache
        Dim pivotTable As pivotTable
        Dim lastColumn As Long
        Dim i As Integer
        Dim foundK As Boolean
        Dim cell As Range
        
         If Me.Name = "Munka1" Then
            If UCase(Left(Target.Cells(1, 1).Value, 1)) = "K" Then
              Set ws = ThisWorkbook.Sheets("Munka1")
                For Each tbl In ws.ListObjects
                    If UCase(Left(tbl.HeaderRowRange.Cells(1, 1).Value, 1)) = "K" Then
                      Set pivotDestRange = tbl.Range.Cells(1, tbl.Range.Columns.Count + 2)
                        On Error Resume Next
                        If pivotDestRange.pivotTable Is Nothing Then
                            Set pivotCache = ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=tbl.Range)
                            Set pivotTable = pivotCache.CreatePivotTable(TableDestination:=pivotDestRange, TableName:="Kimutatas")
                            If i = 0 Then
                                pivotTable.Name = "Kimutatas_" & tbl.Name
                                i = 1
                            Else
                                pivotTable.Name = "Kimutatas_" & tbl.Name & "_" & i
                            End If
                            pivotTable.TableStyle2 = "Boss1"
                           pivotTable.TableRange2.Select
                            pivotTable.PivotFields(2).Orientation = xlDataField
                        End If
                        On Error GoTo 0
                    End If
                Next tbl
            End If
        End If
        
        If Not Intersect(Target, Me.UsedRange) Is Nothing Then
            Application.EnableEvents = False
            ActiveWorkbook.RefreshAll
            Application.EnableEvents = True
        End If
    End Sub

    Azért csatolom a fájlt is, amiben működik.
    A kimutatás formázásával még küzdök, de már alakul.

    Attachments:
    You must be logged in to view attached files.