Excel - makró több lap rendezéséhez

Probléma

11 lap van excellel. 10 lapnak kell az 1-es lapról húzni az információkat.

Ez a szakácsok részére egy vendéglátó-ipari szolgálat.

Van egy kulcsszó az A oszlopban, hogy megkülönböztessem az egyes információs sorokat.

Amire szükségem van ...

  • 2-es és 3-as lap, hogy a teljes sort az 1-es lapból húzza, ha az A oszlopban szereplő szó "Hot".
  • 4. és 5. lap, hogy a teljes sort az 1. lapból húzza ki, ha az A oszlopban lévő szó "hideg".
  • A 6. lap az 1-es lapról a teljes sort húzza, ha az A oszlopban szereplő szó "Bulk".
  • A 8. és 9. lap, hogy a teljes sort az 1. lapból húzza ki, ha az A oszlopban szereplő szó "Péksütemény".
  • A 10. lap az 1-es lapról a teljes sort húzza, ha az A oszlopban szereplő szó "Pres".

A többi lap már lefedett.

Hoztam létre egy makrót a lapok rendezésére három oszlop alapján. Jó lenne, ha ez a makró automatikusan futna minden alkalommal, amikor az adatokat hozzáadták a laphoz. Nem egy bizonyos sorhoz, hanem a lap bármely területéhez, hogy az információkat rendben tartsák.

Megoldás

Próbálja ki ezt a makrót:

 Opció Kifejezetten privát Sub Worksheet_Change (ByVal Target As Range) Dim nxtRow As Integer 'Határozza meg, hogy a változás a H (8) oszlopban van-e Ha a Target.Column = 8 Ezután' Ha igen, határozza meg, hogy cell = Hot Ha a Target.Value = "H" Majd 'Ha igen, keresse meg a következő üres sort a 2-es lapon nxtRow = Lapok (2) .Range ("G" és sorok. Szám) .End (xlUp) .Row + 1' Másolás sora és beillesztése a 2-es lapra. Target.EntireRow .Copy _ Úticél: = Lapok (2) .Range ("A" & nxtRow) Ha igen, keresse meg a következő üres sort a 3-as lapon nxtRow = Lapok (3) .Range ("G" és sorok.Count). xlUp) .Row + 1 'Másolt sor másolása és beillesztése a 3. lapba Target.EntireRow.Copy _ Úticél: = Lapok (3) .Rang ("A" & nxtRow) Vége Ha vége Ha' Határozza meg, hogy a változás H oszlopra változik-e. 8) Ha Target.Column = 8 Ezután 'Ha igen, határozza meg, hogy cell = hideg Ha Target.Value = "C" Ezután Ha igen, keresse meg a következő üres sort a 4-es lapon nxtRow = Lapok (4) .Range ("G" & Sorok.Count) .End (xlUp) .Row + 1 'Másolt sor másolása és beillesztése a 4. lapba Target.EntireRow.Copy _ Úticél: = Lapok (4) .Range ("A" & nxtRow) "Ha igen, keresse meg következő üres sor az 5-ös lapon nxtRow = Lapok (5) .Range ("G" és sorok. Szám) .End (xlUp) .Row + 1 'Másolt sor átmásolása és beillesztése a 3. lapba Target.EntireRow.Copy _ Cél: = Lapok (5) .Rangolás ("A" & nxtRow) Vége Ha vége Ha "Meghatározza, hogy a változás H oszlopban van-e (8) Ha Target.Column = 8 Ezután" Ha igen, akkor határozza meg, hogy cell = prezentáció Ha Target.Value = " P "Ezután" Ha igen, keresse meg a következő üres sort a 8-as lapon nxtRow = Lapok (8) .Range ("G" és sorok. Szám) .End (xlUp). .EntireRow.Copy _ Úticél: = Lapok (8) .Range ("A" & nxtRow) Vége Ha befejeződik Ha 'Meghatározza, hogy a változás H oszlophoz tartozik-e (8) Ha Target.Column = 8 Ezután' Ha igen, határozza meg, hogy a cellát = Péksütemények Ha Target.Value = "PY" Ezután "Ha igen, keresse meg a következő üres sort a 10 - es lapon nxtRow = Lapok (10) .Range (" G "és sorok. Szám) .End (xlUp). megváltoztatta a sort és illessze be a 10-es lapra. Target.EntireRow.Copy _ Úticél: = Lapok (10) .Range ("A" & nxtRow) Ha igen, keresse meg a következő üres sort a 12-es lapon nxtRow = Lapok (11). G "& Sorok. Számla) (xlUp) .Row + 1 'Másolt sor másolása és beillesztése a 12-es lapra Target.EntireRow.Copy _ Úticél: = Lapok (11) .Rang ("A" & nxtRow) Vége Ha vége Ha "Meghatározza, hogy a változás a H oszlophoz tartozik (8) Ha Target.Column = 8 Ezután 'Ha igen, akkor határozza meg, hogy cell = Bulk Ha Target.Value = "B" Ezután Ha igen, keresse meg a következő üres sort a 6-os lapon nxtRow = Lapok (6) .Range ("G "& Rows.Count) .End (xlUp) .Row + 1 'Másolt sor másolása és beillesztése a 6-os lapra Target.EntireRow.Copy _ Cél: = Lapok (6) .Rang (" A "& nxtRow) vége Ha vége Ha Vége vége 

Köszönet Jlee1978-nak a tippért.

Előző Cikk Következő Cikk

Top Tippek