WWW pro školy
Jak na Office - tutoriály, video návody











Vytvoř si párové triko

Poradna - Makro - nahradzovanie po stlpcoch

hlavní kategorie | zpět | + odpovědět na toto téma
Makro - nahradzovanie po stlpcoch - diskuze na toto téma
Ahoj, vedel by mi niekto pomoct s makrom v exceli? Situacia je takato. Mam tabulku, kde na prvom riadku je hlavicka s nejakymi hodnotami. Potreboval by som aby od napriklad stlpca D po stlpec napr. AZ makro skopirovalo obsah bunky z prveho riadku daneho stlpca do vsetkych buniek v ramci stlpca D, kde sa nachadza nejaky vyraz, napriklad "ano". Po skonceni by mal pokracovat na stlpec E, kde je zasa iny nazov na prvom riadku, ten skopirovat a vlozit do vsetkych buniek v sltpci E, ktore obsahuju ten isty vyraz "ano". Takto az po posledne zadany stlpec (napr. AZ). Na prvom riadku je vzdy hlavicka od druheho riadku su naplnene hodnoty. Pocet riadkov pre cyklus sa da spocitat v stlpci A, kde sa da spravit spocitanie od A2 po prvu prazdnu bunku v stlpci. Skusal som to vyklikat cez relativne makro, ale bude to chciet nejakeho VBA majstra, ktorym ja nie som :( Vedel by niekto nieco podobne napisat? Vdaka a vsetko dobre prajem. R.

Lobo | 29.1.2018 12:40  
 
 
Můžeš přiložit soubor?
Odpověď
Roman S | 29.1.2018 13:51  
 
 
Pripojil som excel. Hodnoty 1 by sa mali nahradit podla nazvu stlpca v ktorom sa nachadzaju
Odpověď
Lobo | 29.1.2018 20:53  
 
 
Ahoj, tak sem se k tomu dostal až teď. Makro si najde poslední obsazený řádek a sloupec. Vybere oblast dat (začínající buňkou D1 a rozšíří podle max řádku a sloupce - včetně prvního řádku), kterou načte do pole. Toto pole se poté prochází v cyklu a pokud buňka obsahuje hodnotu 1 je tato hodnota nahrazena hodnotou v poli na prvním "řádku". Jedničku si nahraď v makru svojí hodnotou. Nebo by se dalo při spuštění makra vyvolat inputbox do kterého by se zadala hledaná hodnota, která má být nahrazena. Jinak makro pracuje s aktivním listem.
Odpověď
Lobo | 30.1.2018 21:17  
 
 
Ještě drobná oprava. Tento řádek: For x = LBound(DATA, 1) To UBound(DATA, 1) nahraď tímto For x = 2 To UBound(DATA, 1)
Odpověď
Roman S. | 31.1.2018 06:39  
 
 
Aj ja som sa dostal k tomu az teraz a funguje to uplne bajecne a presne tak ako som potreboval. Skvela praca, moc krat dakujem. R.
Odpověď