VBA - formátování buňky Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

VBA - formátování buňky

Příspěvekod VALL » 06 čer 2012 12:37

Ahoj, formátuji oblast buněk pomocí VBA a hledám řešení, které by bylo rychlejší než je uvedeno níže.
Dělám to tak, že nejdříve v celém skloupci vymažu veškeré formátování (trvá dlouho), poté označím oblast (sloupec v KonTab) jejíž formát zkopíruju do jiného sloupce.
celé je to strašně pomalé, potřeboval bych to celé nějak z optimalizovat.

1. Mažu formátování

Kód: Vybrat vše

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
  Columns("F:F").Select

    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Selection.Interior.Pattern = xlNone
    Selection.Font.ColorIndex = xlAutomatic


2.kopíruju formátování (je to ve stejné proceduře jako předešlý krok):

Kód: Vybrat vše

a = WorksheetFunction.CountA(Range("PopisRadku")) + 2

    Range("D3:D" & a).Select
    Selection.Copy
    Range("F3:F" & a).Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False


Potom by mě zajímalo, zda událost "PivotTableUpdate" je vhodnou událostí pro spuštění procedury. Proceduru potřebuji spustit vždy po aktualizaci KonTab.

Reklama
Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: VBA - formátování buňky

Příspěvekod Azuzula » 06 čer 2012 12:59

Ahoj,
potíž asi bude v množství dat ve sloupku, čím víc dat tím víc to pak trvá. Spíš bych použila vymazání sloupku a následné vložení nového pokud jsou další data vpravo od tohoto sloupce aby se po pár spuštění makra nesmazaly taky.

Kód: Vybrat vše

Application.ScreenUpdating = False
a = WorksheetFunction.CountA(Range("F:F"))
    Range("F1:F" & a).Select
    Selection.Delete Shift:=xlToLeft
    Selection.Insert Shift:=xlToRight
Application.ScreenUpdating = True

proces pak bude rychlejší ;)
Naposledy upravil(a) Azuzula dne 06 čer 2012 13:03, celkem upraveno 1 x.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1544
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: VBA - formátování buňky

Příspěvekod cmuch » 06 čer 2012 13:01

Zkus toto

Kód: Vybrat vše

With Columns("F:F")

    .Borders(xlDiagonalDown).LineStyle = xlNone
    .Borders(xlDiagonalUp).LineStyle = xlNone
    .Borders(xlEdgeLeft).LineStyle = xlNone
    .Borders(xlEdgeTop).LineStyle = xlNone
    .Borders(xlEdgeBottom).LineStyle = xlNone
    .Borders(xlEdgeRight).LineStyle = xlNone
    .Borders(xlInsideVertical).LineStyle = xlNone
    .Borders(xlInsideHorizontal).LineStyle = xlNone
    .Interior.Pattern = xlNone
    .Font.ColorIndex = xlAutomatic
End With


Edit//
Azuzula má taky dobrý nápad.

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBA - formátování buňky

Příspěvekod VALL » 06 čer 2012 13:03

Smazání sloupku bohužel nejde, protože do nich doplním data pomocí vzorce, který potom makrem rozkopíruji na celou délku KonTab.

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: VBA - formátování buňky  Vyřešeno

Příspěvekod Azuzula » 06 čer 2012 13:07

Myslím si, že mazání nebude tak velký problém, přidá se jeden řádek do makra který zapíše vzorec a ten se pak kopíruje dál. Zvažte to.

--- Doplnění předchozího příspěvku (06 Čer 2012 13:14) ---

Teď se divím, proč mě nenapadlo použít čistě jen: Range("F:F").ClearFormats na 10k řádků dat to zabere sotva vteřinu na mém 8let starém PC
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBA - formátování buňky

Příspěvekod VALL » 06 čer 2012 14:19

Dík, fce clearformat - skvělé, rychlé.
Pravděpodobně jsem narazil na problém, který navyšuje objem souboru. Ve výše uvedeném makru kopíruji formát z KonTab a v určitý okamžit extrémě vzroste objem dat (nechápu proč), který nelze vrátit zpět. Neznáte nějakou šikovnější metodu kopírování formátu?

Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: leden 12
Bydliště: Země, bohužel...
Pohlaví: Žena
Stav:
Offline
Kontakt:

Re: VBA - formátování buňky

Příspěvekod Azuzula » 06 čer 2012 15:40

Na to kopírování mě nic nenapadá, ale jediná věc co dokáže neuvěřitelně zvětšit datový objem sešitu jsou buňky které byly použity třeba zapsáním textu nebo vzorce ale na pohled v nich už nic není. Zkuste odstranit všechny buňky od posledního využitého řádku. Abych zjistila proč tohle makro dělá, tak potřebuji vidět ten sešit a odkrokovat si to makro abych zjistila co dělá špatně.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.

VALL
Level 1
Level 1
Příspěvky: 95
Registrován: únor 12
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBA - formátování buňky

Příspěvekod VALL » 07 čer 2012 11:29

Tak jsem na to přišel. Měl jsem chybu v kódu, který v určitém okamžiku prokopíroval formátování až na konec listu a 1 mil řádků už bylo moc.
Jinak děkuji za pomoc.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Excel - filtr na formát buňky + obsah Příloha(y)
    od popcorn » 19 zář 2023 17:07 » v Kancelářské balíky
    0
    2214
    od popcorn Zobrazit poslední příspěvek
    19 zář 2023 17:07
  • Formatování SD karty
    od P. Sedlacek » 18 kvě 2023 14:27 » v Mobily, tablety a jiná přenosná zařízení
    7
    1621
    od mmmartin Zobrazit poslední příspěvek
    19 kvě 2023 10:07
  • Podmíněné formátování poměru Příloha(y)
    od veselypettr » 25 kvě 2023 14:01 » v Kancelářské balíky
    7
    1978
    od veselypettr Zobrazit poslední příspěvek
    31 kvě 2023 14:00
  • Formátování SSD před prodejem
    od Honzis » 05 čer 2023 23:16 » v Vše ostatní (hw)
    11
    1236
    od Cemada Zobrazit poslední příspěvek
    06 čer 2023 13:07

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 10 hostů