< návrat zpět

MS Excel


Téma: Makro smyčka rss

Zaslal/a 17.4.2024 11:45

Ahoj lidičky,

byl by někdo prosím tak hodný a přidal smyčku do makra níže. Netuším jak to mám udělat aby se makro opakovalo dokud ho nezastaví podmínka.

Moc děkuji.

Sub Zápis()
' Vložit řádek hodnot
Sheets("Data Plantyst").Select
Rows("2:2").Select
Selection.Copy
Sheets("Zápis").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rows("2:2").Select
Range("A2").Select
' podmínka pro spuštění makra
If Sheets("Zápis").Range("A18").Value = "NE" Then
MsgBox "Už není žádná hodnota pro zápis, nebo nejsou splněny podmínky", vbCritical, "Zastavení Makra"
Exit Sub
End If
' Aktualizace Tabule
Sheets("Tabule").Select
Application.CutCopyMode = False
ActiveWorkbook.RefreshAll
' Vložení prázdného řádku Sap
Sheets("Data pro Sap").Select
Selection.End(xlDown).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=True
Range("A1").Select
' Vložení prázdného řádku Report
Sheets("Data pro Report").Select
Range("A3").Select
Selection.End(xlDown).Select
Selection.ListObject.ListRows.Add AlwaysInsert:=True
Range("A3").Select
' Vložení dat pro Sap
Sheets("Tabule").Select
Range("Z3:AV3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Sheets("Data pro Sap").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
' Vložení dat pro Report
Sheets("Data pro Report").Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
Range("A3").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A3").Select
' Smazat řádek hodnot
Sheets("Data Plantyst").Select
Rows("2:2").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Sheets("Zápis").Select
Rows("2:2").Select
Selection.ClearContents
Range("A2").Select
ActiveWorkbook.RefreshAll
End Sub

Zaslat odpověď >

#056431
elninoslov
Priložte prílohu a čo je cieľom makra. To makro je, ... ehm ... zle napísané. Samý Select a Copy. Treba to prerobiť.citovat
#056432
avatar

elninoslov napsal/a:

Priložte prílohu a čo je cieľom makra. To makro je, ... ehm ... zle napísané. Samý Select a Copy. Treba to prerobiť.


Cílem Makra je vzít výtažek dat jednoho programu a udělat převod dat do dvou dalších, aby data byla kompatibilní. Ty ostatní dva reporty mají absolutně stupidní formáty, ale také se musí většina dat převádět na jiné hodnoty a některá mají zase pevně daný sloupec, nějaká data se tam musí doplňovat atd atd.. Proto to vypadá takto :-D
Toto makro vlastně vezme řádek ze zdroje, nahraje do tabulky ta propojí s dalšími, které převádějí hodnoty na určité parametry a na místa kde mají být, zapíše a ukončí makro. Jenže těch řádků je tam třeba 200 a klikat tolikrát na tlačítko je absurdní, proto bych potřeboval smyčku. Vím že to vypadá špatně, ale je to první verze a je funkční.citovat
#056435
elninoslov
Musíte priložiť prílohu. Tých dôvodov je milión, vypisovať ich nebudem. BackEnginering v tomto prípade nefunguje.
Ponechajte všetky formáty, rozloženie, odsadenie, typy (tabuľka vs Tabuľka), vzorce, rozsahy, ale nechajte tam iba 3-5 riadkov anonymizovaných dát.
Dodatočné otázky položím až potom.citovat
#056445
avatar

elninoslov napsal/a:

Musíte priložiť prílohu. Tých dôvodov je milión, vypisovať ich nebudem. BackEnginering v tomto prípade nefunguje.
Ponechajte všetky formáty, rozloženie, odsadenie, typy (tabuľka vs Tabuľka), vzorce, rozsahy, ale nechajte tam iba 3-5 riadkov anonymizovaných dát.
Dodatočné otázky položím až potom.


Tak nic, už jsem to vyřešil. Bylo to naprosto primitivní, nechápu že mě to nenapadlo hned. Prostě na konec toho Makra vložit příkaz pro spuštění tohoto makra a jede to dokolečka, dokud jsou nějaká data pro zápis. I tak děkuji za ochotu pomoct ;-)citovat
#056446
elninoslov
Na mobile som videl poobede, že ste dal prílohu, no keď som sa teraz konečne dostal pred spaním k PC, už tu nie je.
Každopádne, to Vaše makro nie je dobre napísané, je pomalé, nevhodne maže po jednom riadku, neprestajne sa zbytočne prepína medzi listami a selektuje bunky. Neviem, čo je účelom, ale na 99% by to šlo efektívnejšie.citovat
#056447
avatar

elninoslov napsal/a:

Na mobile som videl poobede, že ste dal prílohu, no keď som sa teraz konečne dostal pred spaním k PC, už tu nie je.
Každopádne, to Vaše makro nie je dobre napísané, je pomalé, nevhodne maže po jednom riadku, neprestajne sa zbytočne prepína medzi listami a selektuje bunky. Neviem, čo je účelom, ale na 99% by to šlo efektívnejšie.


Aha, myslel jsem že jste to již stáhl, asi jiný gang :-) Můžete na to juknout k optimalizaci se dostanu později.
Příloha: rar56447_wall-automat.rar (341kB, staženo 4x)
citovat
#056454
elninoslov
Včera som si to pozrel, no a že ... fúúú to bude na dlho. Budem musieť veľmi zapojiť fantáziu, aby som dal dokopy vôbec kopec otázok, aby som aspoň trochu z odpovedí pochopil, čo ste chcel asi dosiahnuť, a prečo ste to alebo ono riešil tak či onak. A či je možné zmeniť logiku. Je to celé poprepletané medzi listami, duplicitné, triplicitné výpočty, zbytočná (?) KT, zdrojové dáta asi importované z nejakých výstupov (CSV, TXT a pod), následne zle upravované, veci sa nemusia neustále vypisovať do listov, aby sa prečítali, veď to sa dá (asi, ešte som to nepobral) dopočítať a rozdeliť makrom rovno, dvojitá hlavička (?), kopíruje sa "Začátek zápisu" no uvidíme.
Ako vravím, už len správne sa popýtať potrvá.citovat
#056455
avatar

elninoslov napsal/a:

Včera som si to pozrel, no a že ... fúúú to bude na dlho.


No, myslím že nemá cenu to řešit ne?

Je tem hlavní zdroj dat (list Data Plantyst)
Pak je tam zdroj informací ze systému (List PP)
Převodní tabulky pro scrap kódy, podle druhu příkazu a pracoviště, počet lidí atd.. (List Data)

V listu Tabule vzorečky přepočítají ten jeden vložený řádek a v KT tabulce je poté výsledek, který se zapíše do listu Data pro Sap. List Tabule je nejkomplikovanější, jelikož určité druhy příkazů se musejí zapsat určitým způsobem, jinak to systém neskousne a vyplivne s chybou. Také Scrap kódy se liší podle druhu příkazu či pracoviště a musí se zobrazovat jen řádky se zapsanou hodnotou.

List Data pro report nemá cenu rozebírat, to jsou data pro mojí potřebu ve formátu k dalšímu zpracování.

No prostě jsem si musel nějak poradit a to v časovém tlaku. Co nebylo včera hotovo je pozdě. Takže asi tak..citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse