Makro v MS Excel - problém se sloučenými buňkami

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

Moderátor: Mods_senior

Odpovědět
MatesBossy
Level 1
Level 1
Příspěvky: 55
Registrován: 14 dub 2012 14:23
Bydliště: Bludov

Makro v MS Excel - problém se sloučenými buňkami

Příspěvek od MatesBossy »

Dobrý pozdní večer,
řeším následující problém:

V rámci 1 sešitu mám více listů, na všech listech se nachází naprosto stejná tabulka. Potřebuji makro, které po aktivaci aktualizuje tabulku na prvním listu s daty ze všech ostatních listů. Níže uvádím VB kód, který používám. Pokud ho použiji na sešit, ve kterém nepoužívám sloučené buňky je vše v pořádku. Pokud ho použiji v sešitu se sloučenými buňkami (v záhlaví tabulky), makro nefunguje. Problém je zřejmě s identifikací řádků resp. sloupců, které mají sloučené buňky. Přijde mi, že VB pracuje s "viditelnými řádky" (2 sloučené počítá jako jeden) a ne s excelem označenými řádky (2 sloučené jako 2).

Prosím o radu, jak makro upravit popřípadě jaký jiný způsob použít.
Předem mockrát díky za všechny rady ;-)

Kód pro tabulku s 54 sloupci:

Kód: Vybrat vše

Sub SpojListy()
Dim ws As Worksheet, rs As Long, rd As Long
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
With ThisWorkbook
With .Worksheets("List1")
rs = .Cells(Rows.Count, 4).End(xlUp).Row - 1
If rs > 0 Then .Cells(4, 1).Resize(rs, 54).ClearContents
End With
For Each ws In .Worksheets
rs = .Worksheets("List1").Cells(Rows.Count, 4).End(xlUp).Row
With ws
If .Name <> "List1" Then
rd = .Cells(Rows.Count, 4).End(xlUp).Row - 1
If rd > 0 Then ThisWorkbook.Worksheets("List1").Cells(rs + 1, 1).Resize(rd, 54).Value = .Cells(4, 1).Resize(rd, 54).Value
End If
End With
Next ws
End With
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3376
Registrován: 24 říj 2008 19:50

Re: Makro v MS Excel - problém se sloučenými buňkami

Příspěvek od atari »

Makro ignoruje sloučené buňky. Ovšem umí do sloučených buněk psát pouze pokud tu sloučenou buňku označíš původní buńkou v levém horním rohu. Pokud zadáš jinou původní buňku, tak makro neudělá nic.

Dodatečně přidáno po 12 minutách 16 vteřinách:
Napíší to srozumitelněji: Sloučené buňky (např. B2 až E10) si makro označí jedinou buňkou, a to původní levou horní. V tomo případě "B2", a ta pak pro makro reprezentuje všechny sloučené buňky. Takže veškeré operace s těmi součenými buňkami musíš zadávat pouze přes "B2" nebo Cells(2,2).

Dodatečně přidáno po 6 hodinách 34 minutách 36 vteřinách:
Ještě poznámka:
Doporučuji zrušit sloučené buňky. Podle mě nejsou potřeba. Způsobuje to problémy, například při kopírování celých listů.
Před 10 lety jsem sloučené buňky u nás v práci zakázal. Tabulky se sloučenýma buňkama jsem předělal na nesloučené buňky. Sice to dá trochu více práce, ale stojí to za to. Od té doby neřeším problémy se sloučenýma buňkama.
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Přechod z Excel 21 na Excel 24
    od Snekment » » v Kancelářské balíky
    2 Odpovědi
    14326 Zobrazení
    Poslední příspěvek od Snekment
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7285 Zobrazení
    Poslední příspěvek od atari
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    5830 Zobrazení
    Poslední příspěvek od atari
  • Excel 2016 - vzorec kombinace podmínek
    od MK_Vs » » v Kancelářské balíky
    5 Odpovědi
    6062 Zobrazení
    Poslední příspěvek od lubo.
  • Problém s FPS
    od mcrakvar » » v Vše ostatní (sw)
    4 Odpovědi
    8954 Zobrazení
    Poslední příspěvek od petr22

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