Hiányzó értékek gyűjtése makróval (egyszerűsítés)

Hiányzó értékek gyűjtése makróval (egyszerűsítés)
2020-01-21T09:38:03+01:00
2020-01-21T11:29:47+01:00
2022-10-15T21:25:31+02:00
A.Ortega
Sziasztok!


Van egy működő makróm, de túl soknak érzem benne a parancsokat és ezeknek a leegyszerűsítésében kérném szépen a segítségeteket.

A fájl lényege, hogy van két lista a Munka2 és Munka3 lapokon. A makró létrehoz egy "Eredmény" oszlopot a Munka2 lap AQ oszlopában, ahol egy Hol.Van függvénnyel megnézi, hogy bizonyos azonosítók jelen vannak-e a Munka3 lapon, majd egy új szűréssel megnézi, hogy a hiányzó adatokban van-e "1”, „2”, „3”, „4”, „5". Aztán ami hiányzik is és megfelel az 1-5 feltételnek, átmásolja a Munka1 lap megfelelő részére. A Munka2 lapon az eredmény átláthatósága érdekében szándékosan elrejtésre kerül néhány oszlop. A listák változó hosszúságúak és nem mindig kell lennie eredménynek/találatnak.

Eddig a makró:

Sub Indítás() ' ' Indítás Makró ' ' Sheets("Munka2").Select ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 5 ActiveWindow.ScrollColumn = 9 ActiveWindow.ScrollColumn = 10 ActiveWindow.ScrollColumn = 11 ActiveWindow.ScrollColumn = 12 ActiveWindow.ScrollColumn = 13 ActiveWindow.ScrollColumn = 14 ActiveWindow.ScrollColumn = 15 ActiveWindow.ScrollColumn = 16 ActiveWindow.ScrollColumn = 17 ActiveWindow.ScrollColumn = 20 ActiveWindow.ScrollColumn = 21 ActiveWindow.ScrollColumn = 22 Range("AQ1").Select With Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With ActiveCell.FormulaR1C1 = "Eredmény" Range("AQ2").Select ActiveCell.FormulaR1C1 = "=+MATCH(RC[-5],MUNKA3!R3C10:R600C10,0)" Range("AQ2").Select Selection.AutoFill Destination:=Range("AQ2:AQ6000") Range("AQ2:AQ6000").Select Range("AQ1").Select Selection.AutoFilter ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 5 ActiveWindow.ScrollColumn = 9 ActiveWindow.ScrollColumn = 10 ActiveWindow.ScrollColumn = 11 ActiveWindow.ScrollColumn = 12 ActiveWindow.ScrollColumn = 13 ActiveWindow.ScrollColumn = 14 ActiveWindow.ScrollColumn = 15 ActiveWindow.ScrollColumn = 16 ActiveWindow.ScrollColumn = 17 ActiveWindow.ScrollColumn = 20 ActiveWindow.ScrollColumn = 21 ActiveWindow.ScrollColumn = 22 ActiveSheet.Range("$A$1:$AQ$6000").AutoFilter Field:=43, Criteria1:= _ "#HIÁNYZIK" ActiveWindow.ScrollColumn = 21 ActiveWindow.ScrollColumn = 20 ActiveWindow.ScrollColumn = 18 ActiveWindow.ScrollColumn = 16 ActiveWindow.ScrollColumn = 15 ActiveWindow.ScrollColumn = 14 ActiveSheet.Range("$A$1:$AQ$6000").AutoFilter Field:=20, Criteria1:=Array( _ "1”, „2”, „3”, „4”, „5"), _ Operator:=xlFilterValues ActiveWindow.ScrollColumn = 13 ActiveWindow.ScrollColumn = 13 ActiveWindow.ScrollColumn = 12 ActiveWindow.ScrollColumn = 11 ActiveWindow.ScrollColumn = 10 ActiveWindow.ScrollColumn = 9 ActiveWindow.ScrollColumn = 7 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Columns("H:H").Select Selection.EntireColumn.Hidden = True Columns("K:K").Select Selection.EntireColumn.Hidden = True Columns("N:S").Select Selection.EntireColumn.Hidden = True ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 5 Columns("U:U").Select Selection.EntireColumn.Hidden = True Columns("Z:AF").Select Selection.EntireColumn.Hidden = True Columns("AO:AP").Select Selection.EntireColumn.Hidden = True Columns("AQ:AQ").EntireColumn.AutoFit ActiveWindow.ScrollColumn = 4 ActiveWindow.ScrollColumn = 3 ActiveWindow.ScrollColumn = 2 ActiveWindow.ScrollColumn = 1 Range("A1").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("MUNKA1").Select Range("B5").Select ActiveSheet.Paste Range("D2").Select End Sub
Előre is köszönöm a hozzászólásokat!
Mutasd a teljes hozzászólást!
Szia!

A #HIÁNYZIK-ra biztos működik a makró?
Nekem még sohasem működött.
IFERROR fv-nyel kezeld a keresésénél.
A SOk scroll-os osrt töröld ki.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd