„Makro-parok-1” változatai közötti eltérés
A Miau Wiki wikiből
4. sor: | 4. sor: | ||
*select pozíciók pontosítása | *select pozíciók pontosítása | ||
*kimutatás1 vs 4 | *kimutatás1 vs 4 | ||
+ | *(FormulaVersion:=xlReplaceFormula2<--felesleges paraméterek f2*.xlsm) | ||
A lap jelenlegi, 2022. október 10., 15:37-kori változata
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