Stránka 1 z 1
Excel odstraneni urovne ze seskupeni pomoci makra
Napsal: 21 kvě 2014 10:18
od jiri255
Zdravím,
chtěl bych požádat o radu ohledně makra. Mám excel viz příloha obsahující seskupení
a já bych potřeboval s toho seskupení odstranit úroveň 4 včetně řádků s tím, aby úrovně
1 až 3 zůstali nezměněny.
Ve vzoru je jen pár řádků, ale soubor může obsahovat až 2000 řádků, je toto nějak řešitelné?
Předem děkuji za případnou pomoc.
Re: Excel odstraneni urovne ze seskupeni pomoci makra
Napsal: 21 kvě 2014 10:38
od Azuzula
Ahoj,
oddělit řádky:
(pro sloučení je zase příkaz .group)
odstranit řádky:
Podobně i pro sloupky:
Kód: Vybrat vše
collumns("A:C").ungroup
collumns("A:C").delete
Re: Excel odstraneni urovne ze seskupeni pomoci makra
Napsal: 21 kvě 2014 11:22
od jiri255
děkuji za radu, ale tohle mi jaksi nechodí nebo to možná neumím poskládat, tak aby mi to odstranilo co potřebuju

Re: Excel odstraneni urovne ze seskupeni pomoci makra
Napsal: 21 kvě 2014 12:16
od Azuzula
Nevidím na tom nic složitýho, když chceš oddělit řádky, dejmetomu 65-114, tak příkaz bude:
rows("65:114").ungroup nebo delete pro smazání, záleží na tom co s tím chceš udělat.
Pokud všechny řádky v oblasti nejsou seskupené, tak to hodí chybu.
V excelu 2007 a 2010 to určitě funguje, v novějším by mělo taky. Jak je na tom Excel 2003 a starší nevím. Za to se omlouvám, nevšimla jsem si v jakém formátu je ten vzor uložený.
Re: Excel odstraneni urovne ze seskupeni pomoci makra
Napsal: 21 kvě 2014 12:22
od jiri255
v tom jsme se možná nepochopili... omlouvám se za nepřesnou úvodní specifikaci problému. Ten vzorový excel má nějak dané řádky,
ale toto nebude vždy stejné, pokaždé bude excel vypadat jinak, jak v úrovni 1, úrovni 2, úrovni 3 i úrovni 4 bude vždy jiný počet řádků,
takže ano pro vzorový excel je to použitelné, ale pro tu spoustu dalších bohužel ne.
Tedy otřeboval bych, aby to makro dokázalo prohledat celý excel a odstranit všechny řádky v úrovni 4.
Re: Excel odstraneni urovne ze seskupeni pomoci makra
Napsal: 21 kvě 2014 13:04
od Azuzula
Tak teď už to chápu, moje chyba.
Kód: Vybrat vše
Sub priklad()
Dim a As Long
For a = Cells(Rows.Count, 1).End(xlUp).row To 1 Step -1
If Rows(a).OutlineLevel = 4 Then 'zjistí level sdružení řádků
Rows(a).Delete
End If
Next
End Sub
Projde list od konce a odstraní všechny seskupené řádky v lvl4
Nesloučené řádky jsou lvl1
Re: Excel odstraneni urovne ze seskupeni pomoci makra
Napsal: 21 kvě 2014 13:44
od jiri255
funguje to na tom vzorovém excelu bezvadně, tak jak jsem potřeboval, ale nevím proč jen po řádek 27 poslední seskupení, jako kdyby to nechtělo vzít

nedělám něco špatně?
Re: Excel odstraneni urovne ze seskupeni pomoci makra
Napsal: 21 kvě 2014 14:01
od Azuzula
Možná to bude tím, že ve sloupku 1 nemáš vyplněné buňky až po posledí řádek?
For a = Cells(Rows.Count, 1).End(xlUp).row ... <- Zvýrazněné číslo nastavuje ve kterém sloupku hledá poslední data. Stačí napsat jeden znak na konec sloupku odkud to chceš hlídat, nebo změnit číslo na sloupek ve kterém jsou data až na konec tabulky.
Re: Excel odstraneni urovne ze seskupeni pomoci makra Vyřešeno
Napsal: 21 kvě 2014 16:55
od jiri255
teď je to dokonalé

děkuji mnohokrát za objasnění a trpělivost...