Makro-parok-1
A Miau Wiki wikiből
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