Makro-parok-1

A Miau Wiki wikiből
A lap korábbi változatát látod, amilyen Pitlik (vitalap | szerkesztései) 2022. október 10., 15:37-kor történt szerkesztése után volt.

(eltér) ← Régebbi változat | legfrissebb változat (eltér) | Újabb változat→ (eltér)

Konklúziók

  • version 8 vs 6
  • add vs add2
  • select pozíciók pontosítása
  • kimutatás1 vs 4
  • (FormulaVersion:=xlReplaceFormula2<--felesleges paraméterek f2*.xlsm)


Excel_2016

Sub A_to_F1A()


' ' A_to_F1A Makró ' ' Billentyűparancs: Ctrl+Shift+Q '

   Sheets("A").Select 'ez a sor nem keletkezik a makrórögzítés során, nem is kötelező, ha a szabály az, hogy ezt a makrót az "A" munkalapon KELL indítani, ahová az éppen feldolgozandó log-ot már bemásoltuk
   Cells.Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("F1_A").Select
   Range("A1").Select
   ActiveSheet.Paste
   Sheets("f1_a1").Select
   Range("G11:K3333").Select 'itt látható úm. beégetve a 3333-as rendszerparaméter, melyek felül kell írni mindenhol, ha szükséges, vagy változóvá kell tenni és a kód elején kell definiálni, értéket adni neki
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("F1_A").Select
   Range("G11").Select
   ActiveSheet.Paste 'ha az időigény képletét is máshonnan vesszük át, akkor az f1_a1 oldalt is 3333-ra kell előkészíteni!!!
   Range("A11:K3333").Select
   Application.CutCopyMode = False
   Application.CutCopyMode = False
   
   Sheets("F1_P").Select 'kimutatás beszúrása nem ÚJ, hanem meglévő munkalapra
   Range("A1").Select
   
   
   
       
   ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
       "F1_A!R12C1:R3333C10", Version:=6).CreatePivotTable TableDestination:= _
       "F1_P!R3C1", TableName:="Kimutatás1", DefaultVersion:=6 'a Kimutatás_4 olyan beégett paraméter, mely gondot okozhat vö. automatikus diagram_sorszámozás
   Sheets("F1_P").Select 'ennek a munkalapnak előre léteznie kell
   Cells(3, 1).Select
   With ActiveSheet.PivotTables("Kimutatás1")
       .ColumnGrand = True
       .HasAutoFormat = True
       .DisplayErrorString = False
       .DisplayNullString = True
       .EnableDrilldown = True
       .ErrorString = ""
       .MergeLabels = False
       .NullString = ""
       .PageFieldOrder = 2
       .PageFieldWrapCount = 0
       .PreserveFormatting = True
       .RowGrand = True
       .SaveData = True
       .PrintTitles = False
       .RepeatItemsOnEachPrintedPage = True
       .TotalsAnnotation = False
       .CompactRowIndent = 1
       .InGridDropZones = False
       .DisplayFieldCaptions = True
       .DisplayMemberPropertyTooltips = False
       .DisplayContextTooltips = True
       .ShowDrillIndicators = True
       .PrintDrillIndicators = False
       .AllowMultipleFilters = False
       .SortUsingCustomLists = True
       .FieldListSortAscending = False
       .ShowValuesRow = False
       .CalculatedMembersInFilters = False
       .RowAxisLayout xlCompactRow
   End With
   With ActiveSheet.PivotTables("Kimutatás1").PivotCache
       .RefreshOnFileOpen = False
       .MissingItemsLimit = xlMissingItemsDefault
   End With
   ActiveSheet.PivotTables("Kimutatás1").RepeatAllLabels xlRepeatLabels
   ActiveWorkbook.ShowPivotTableFieldList = True
   With ActiveSheet.PivotTables("Kimutatás1").PivotFields("event")
       .Orientation = xlPageField
       .Position = 1
   End With
   With ActiveSheet.PivotTables("Kimutatás1").PivotFields("element")
       .Orientation = xlRowField
       .Position = 1
   End With
   ActiveSheet.PivotTables("Kimutatás1").AddDataField ActiveSheet.PivotTables( _
       "Kimutatás1").PivotFields("time_eltérés"), "Összeg / time_eltérés", xlSum
   With ActiveSheet.PivotTables("Kimutatás1").PivotFields("Összeg / time_eltérés")
       .Caption = "Mennyiség / time_eltérés"
       .Function = xlCount
   End With
   ActiveSheet.PivotTables("Kimutatás1").PivotSelect "event", xlButton, True
   
       Sheets("F1_P").Select 'kimutatás beszúrása nem ÚJ, hanem meglévő munkalapra
   Range("A1").Select
   ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
       "F1_A!R12C1:R3333C11", Version:=6).CreatePivotTable TableDestination:= _
       "F1_P!R3C4", TableName:="Kimutatás5", DefaultVersion:=6 'a Kimutatás_5 olyan beégett paraméter, mely gondot okozhat
   Sheets("F1_P").Select 'ennek a munkalapnak előre léteznie kell
   Cells(3, 4).Select
   With ActiveSheet.PivotTables("Kimutatás5")
       .ColumnGrand = True
       .HasAutoFormat = True
       .DisplayErrorString = False
       .DisplayNullString = True
       .EnableDrilldown = True
       .ErrorString = ""
       .MergeLabels = False
       .NullString = ""
       .PageFieldOrder = 2
       .PageFieldWrapCount = 0
       .PreserveFormatting = True
       .RowGrand = True
       .SaveData = True
       .PrintTitles = False
       .RepeatItemsOnEachPrintedPage = True
       .TotalsAnnotation = False
       .CompactRowIndent = 1
       .InGridDropZones = False
       .DisplayFieldCaptions = True
       .DisplayMemberPropertyTooltips = False
       .DisplayContextTooltips = True
       .ShowDrillIndicators = True
       .PrintDrillIndicators = False
       .AllowMultipleFilters = False
       .SortUsingCustomLists = True
       .FieldListSortAscending = False
       .ShowValuesRow = False
       .CalculatedMembersInFilters = False
       .RowAxisLayout xlCompactRow
   End With
   With ActiveSheet.PivotTables("Kimutatás5").PivotCache
       .RefreshOnFileOpen = False
       .MissingItemsLimit = xlMissingItemsDefault
   End With
   ActiveSheet.PivotTables("Kimutatás5").RepeatAllLabels xlRepeatLabels
   ActiveWorkbook.ShowPivotTableFieldList = True
   With ActiveSheet.PivotTables("Kimutatás5").PivotFields("event")
       .Orientation = xlPageField
       .Position = 1
   End With
   With ActiveSheet.PivotTables("Kimutatás5").PivotFields("element")
       .Orientation = xlRowField
       .Position = 1
   End With
   ActiveSheet.PivotTables("Kimutatás5").AddDataField ActiveSheet.PivotTables( _
       "Kimutatás5").PivotFields("time_eltérés"), "Összeg / time_eltérés", xlSum
   With ActiveSheet.PivotTables("Kimutatás5").PivotFields("Összeg / time_eltérés")
       .Caption = "Mennyiség / time_eltérés"
       .Function = xlCount
   End With
   ActiveSheet.PivotTables("Kimutatás5").PivotSelect "event", xlButton, True
   
   Cells.EntireColumn.AutoFit
  
   ActiveSheet.PivotTables("Kimutatás5").PivotFields("event").ClearAllFilters 'a Kimutatás5 olyan beégetett paraméter, ami gondot okozhat
   ActiveSheet.PivotTables("Kimutatás5").PivotFields("event").CurrentPage = _
       "pointermove"
   Range("E3").Select
   With ActiveSheet.PivotTables("Kimutatás5").PivotFields( _
       "Mennyiség / time_eltérés")
       .Caption = "Összeg / time_eltérés"
       .Function = xlSum
   End With
   ActiveSheet.PivotTables("Kimutatás5").AddDataField ActiveSheet.PivotTables( _
       "Kimutatás5").PivotFields("time"), "Összeg / time", xlSum
   Range("F3").Select
   ActiveSheet.PivotTables("Kimutatás5").PivotFields("Összeg / time").Function = _
       xlMin
   Range("D3:F12").Select
   Selection.Copy
   
   
   
   Range("D18").Select
   ActiveSheet.Paste
   Application.CutCopyMode = False
   ActiveWorkbook.Worksheets("F1_P").Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("F1_P").Sort.SortFields.Add Key:=Range( _
       "F19:F27"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
       xlSortNormal
   With ActiveWorkbook.Worksheets("F1_P").Sort
       .SetRange Range("D18:F27")
       .Header = xlYes
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
   Range("D18").Select
   ActiveCell.FormulaR1C1 = "Válaszkártyák"
   Range("E18").Select
   ActiveCell.FormulaR1C1 = "Időigény"
   Range("D18:E27").Select
   ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
   ActiveChart.SetSourceData Source:=Range("F1_P!$D$18:$E$27")
   ActiveSheet.Shapes("Diagram 1").IncrementLeft 229.8 'a Diagram_sorszámozás gondot okoz, mert nyitott munkafüzet esetén n próbálkozás alatt folyamatosan nő a következő érvényes sorszám! Ezért minden egyes futtatás után be kell zárni a munkafüzetet és újra meg kell nyitni, ami inicializálja a diagram-sorszámot 1-re!
   ActiveSheet.Shapes("Diagram 1").IncrementTop -99.6
   ActiveSheet.Shapes("Diagram 1").ScaleHeight 1.7916666667, msoFalse, _
       msoScaleFromTopLeft
   ActiveChart.FullSeriesCollection(1).Select
   ActiveChart.FullSeriesCollection(1).Trendlines.Add
   ActiveChart.FullSeriesCollection(1).Trendlines(1).Select
   Selection.DisplayEquation = True
   Selection.DisplayRSquared = True
   Application.CommandBars("Format Object").Visible = False
   ActiveChart.FullSeriesCollection(1).Trendlines(1).DataLabel.Select
   Selection.Left = 246.593 'a diagram helye pixel-grafikusan alakítható, de pl. az autofit miatt az egyes oszlopok pixel-grafikus helye változhat, így a grafikonok és a kimutatások egymáshoz való viszonya log-ról log-ra változhat
   Selection.Top = 7.442

End Sub

Excel_365

Sub A_to_F1A() ' ' A_to_F1A Makró ' ' Billentyűparancs: Ctrl+Shift+Q '

   Sheets("A").Select 'ez a sor nem keletkezik a makrórögzítés során, nem is kötelező, ha a szabály az, hogy ezt a makrót az "A" munkalapon KELL indítani, ahová az éppen feldolgozandó log-ot már bemásoltuk
   Cells.Select
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("F1_A").Select
   ActiveSheet.Paste
   Sheets("f1_a1").Select
   Range("G11:K3333").Select 'itt látható úm. beégetve a 3333-as rendszerparaméter, melyek felül kell írni mindenhol, ha szükséges, vagy változóvá kell tenni és a kód elején kell definiálni, értéket adni neki
   Application.CutCopyMode = False
   Selection.Copy
   Sheets("F1_A").Select
   Range("G11").Select
   ActiveSheet.Paste 'ha az időigény képletét is máshonnan vesszük át, akkor az f1_a1 oldalt is 3333-ra kell előkészíteni!!!
   Range("A11:K3333").Select
   Application.CutCopyMode = False
   Application.CutCopyMode = False
   
   Sheets("F1_P").Select 'kimutatás beszúrása nem ÚJ, hanem meglévő munkalapra
   Range("A1").Select
   ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
       "F1_A!R12C1:R3333C11", Version:=8).CreatePivotTable TableDestination:= _
       "F1_P!R3C1", TableName:="Kimutatás4", DefaultVersion:=8 'a Kimutatás_4 olyan beégett paraméter, mely gondot okozhat vö. automatikus diagram_sorszámozás
   Sheets("F1_P").Select 'ennek a munkalapnak előre léteznie kell
   Cells(3, 1).Select
   With ActiveSheet.PivotTables("Kimutatás4")
       .ColumnGrand = True
       .HasAutoFormat = True
       .DisplayErrorString = False
       .DisplayNullString = True
       .EnableDrilldown = True
       .ErrorString = ""
       .MergeLabels = False
       .NullString = ""
       .PageFieldOrder = 2
       .PageFieldWrapCount = 0
       .PreserveFormatting = True
       .RowGrand = True
       .SaveData = True
       .PrintTitles = False
       .RepeatItemsOnEachPrintedPage = True
       .TotalsAnnotation = False
       .CompactRowIndent = 1
       .InGridDropZones = False
       .DisplayFieldCaptions = True
       .DisplayMemberPropertyTooltips = False
       .DisplayContextTooltips = True
       .ShowDrillIndicators = True
       .PrintDrillIndicators = False
       .AllowMultipleFilters = False
       .SortUsingCustomLists = True
       .FieldListSortAscending = False
       .ShowValuesRow = False
       .CalculatedMembersInFilters = False
       .RowAxisLayout xlCompactRow
   End With
   With ActiveSheet.PivotTables("Kimutatás4").PivotCache
       .RefreshOnFileOpen = False
       .MissingItemsLimit = xlMissingItemsDefault
   End With
   ActiveSheet.PivotTables("Kimutatás4").RepeatAllLabels xlRepeatLabels
   ActiveWorkbook.ShowPivotTableFieldList = True
   With ActiveSheet.PivotTables("Kimutatás4").PivotFields("event")
       .Orientation = xlPageField
       .Position = 1
   End With
   With ActiveSheet.PivotTables("Kimutatás4").PivotFields("element")
       .Orientation = xlRowField
       .Position = 1
   End With
   ActiveSheet.PivotTables("Kimutatás4").AddDataField ActiveSheet.PivotTables( _
       "Kimutatás4").PivotFields("time_eltérés"), "Összeg / time_eltérés", xlSum
   With ActiveSheet.PivotTables("Kimutatás4").PivotFields("Összeg / time_eltérés")
       .Caption = "Mennyiség / time_eltérés"
       .Function = xlCount
   End With
   ActiveSheet.PivotTables("Kimutatás4").PivotSelect "event", xlButton, True
   
       Sheets("F1_P").Select 'kimutatás beszúrása nem ÚJ, hanem meglévő munkalapra
   Range("A1").Select
   ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
       "F1_A!R12C1:R3333C11", Version:=8).CreatePivotTable TableDestination:= _
       "F1_P!R3C4", TableName:="Kimutatás5", DefaultVersion:=8 'a Kimutatás_5 olyan beégett paraméter, mely gondot okozhat
   Sheets("F1_P").Select 'ennek a munkalapnak előre léteznie kell
   Cells(3, 4).Select
   With ActiveSheet.PivotTables("Kimutatás5")
       .ColumnGrand = True
       .HasAutoFormat = True
       .DisplayErrorString = False
       .DisplayNullString = True
       .EnableDrilldown = True
       .ErrorString = ""
       .MergeLabels = False
       .NullString = ""
       .PageFieldOrder = 2
       .PageFieldWrapCount = 0
       .PreserveFormatting = True
       .RowGrand = True
       .SaveData = True
       .PrintTitles = False
       .RepeatItemsOnEachPrintedPage = True
       .TotalsAnnotation = False
       .CompactRowIndent = 1
       .InGridDropZones = False
       .DisplayFieldCaptions = True
       .DisplayMemberPropertyTooltips = False
       .DisplayContextTooltips = True
       .ShowDrillIndicators = True
       .PrintDrillIndicators = False
       .AllowMultipleFilters = False
       .SortUsingCustomLists = True
       .FieldListSortAscending = False
       .ShowValuesRow = False
       .CalculatedMembersInFilters = False
       .RowAxisLayout xlCompactRow
   End With
   With ActiveSheet.PivotTables("Kimutatás5").PivotCache
       .RefreshOnFileOpen = False
       .MissingItemsLimit = xlMissingItemsDefault
   End With
   ActiveSheet.PivotTables("Kimutatás5").RepeatAllLabels xlRepeatLabels
   ActiveWorkbook.ShowPivotTableFieldList = True
   With ActiveSheet.PivotTables("Kimutatás5").PivotFields("event")
       .Orientation = xlPageField
       .Position = 1
   End With
   With ActiveSheet.PivotTables("Kimutatás5").PivotFields("element")
       .Orientation = xlRowField
       .Position = 1
   End With
   ActiveSheet.PivotTables("Kimutatás5").AddDataField ActiveSheet.PivotTables( _
       "Kimutatás4").PivotFields("time_eltérés"), "Összeg / time_eltérés", xlSum
   With ActiveSheet.PivotTables("Kimutatás5").PivotFields("Összeg / time_eltérés")
       .Caption = "Mennyiség / time_eltérés"
       .Function = xlCount
   End With
   ActiveSheet.PivotTables("Kimutatás5").PivotSelect "event", xlButton, True
   
   Cells.EntireColumn.AutoFit
  
   ActiveSheet.PivotTables("Kimutatás5").PivotFields("event").ClearAllFilters 'a Kimutatás5 olyan beégetett paraméter, ami gondot okozhat
   ActiveSheet.PivotTables("Kimutatás5").PivotFields("event").CurrentPage = _
       "pointermove"
   Range("E3").Select
   With ActiveSheet.PivotTables("Kimutatás5").PivotFields( _
       "Mennyiség / time_eltérés")
       .Caption = "Összeg / time_eltérés"
       .Function = xlSum
   End With
   ActiveSheet.PivotTables("Kimutatás5").AddDataField ActiveSheet.PivotTables( _
       "Kimutatás5").PivotFields("time"), "Összeg / time", xlSum
   Range("F3").Select
   ActiveSheet.PivotTables("Kimutatás5").PivotFields("Összeg / time").Function = _
       xlMin
   Range("D3:F12").Select
   Selection.Copy
   Range("D18").Select
   ActiveSheet.Paste
   Application.CutCopyMode = False
   ActiveWorkbook.Worksheets("F1_P").Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("F1_P").Sort.SortFields.Add2 Key:=Range( _
       "F19:F27"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
       xlSortNormal
   With ActiveWorkbook.Worksheets("F1_P").Sort
       .SetRange Range("D18:F27")
       .Header = xlYes
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
   Range("D18").Select
   ActiveCell.FormulaR1C1 = "Válaszkártyák"
   Range("E18").Select
   ActiveCell.FormulaR1C1 = "Időigény"
   Range("D18:E27").Select
   ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
   ActiveChart.SetSourceData Source:=Range("F1_P!$D$18:$E$27")
   ActiveSheet.Shapes("Diagram 1").IncrementLeft 229.8 'a Diagram_sorszámozás gondot okoz, mert nyitott munkafüzet esetén n próbálkozás alatt folyamatosan nő a következő érvényes sorszám! Ezért minden egyes futtatás után be kell zárni a munkafüzetet és újra meg kell nyitni, ami inicializálja a diagram-sorszámot 1-re!
   ActiveSheet.Shapes("Diagram 1").IncrementTop -99.6
   ActiveSheet.Shapes("Diagram 1").ScaleHeight 1.7916666667, msoFalse, _
       msoScaleFromTopLeft
   ActiveChart.FullSeriesCollection(1).Select
   ActiveChart.FullSeriesCollection(1).Trendlines.Add
   ActiveChart.FullSeriesCollection(1).Trendlines(1).Select
   Selection.DisplayEquation = True
   Selection.DisplayRSquared = True
   Application.CommandBars("Format Object").Visible = False
   ActiveChart.FullSeriesCollection(1).Trendlines(1).DataLabel.Select
   Selection.Left = 246.593 'a diagram helye pixel-grafikusan alakítható, de pl. az autofit miatt az egyes oszlopok pixel-grafikus helye változhat, így a grafikonok és a kimutatások egymáshoz való viszonya log-ról log-ra változhat
   Selection.Top = 7.442

End Sub