Stránka 1 z 1
excel vba automaticka vyska radku sloucenych bunek
Napsal: 20 bře 2018 10:51
od zutano
Dobrý den všem,
mám dokument v excelu do kterého se dopisují poznámky. Jelikož jsou ve sloučených buňkách, tak nejde upravovat automaticky výška řádku. Našel jsem makro, které to umí i ve sloučených buňkách. Bohužel toto makro funguje pouze na aktuálně vybrané buňce. Já bych potřeboval, aby zkontrolovalo více buněk a upravilo ty menší.
Podle mě by to mělo jít nějak jednoduše, zkoušel jsem několik postupů, bohužel jsem to nerozchodil. Dodávám přílohu s podrobnějším infem a makrem, které podle mě stačí jen upravit.
Budu rád za jakoukoliv pomoc.
Díky
Re: excel vba automaticka vyska radku sloucenych bunek
Napsal: 20 bře 2018 12:06
od atari
Jsem odpůrce slučování buněk, nejsou potřeba, stačí jen graficky přizbůsobit buňky. Již jsem tady psal, jaké to způsobuje problémy. (Například Tobě teď s makrem.)
Doporučuji zrušit slučování buněk a rozšířit sloupec A na celou šířku poznámky.
A nebo sloupec "A" nerozšiřovat, a vnitřní ozhraničení nastavit na bílou, zrušit zalamování textu, a používat ALT+ENTER.
V obou případech to bude vypadat stejně jako to máš teď.
Já tedy rozhodně ladit makro na sloučených buňkách odmítám. Možná tu však někoho najdeš ...
Re: excel vba automaticka vyska radku sloucenych bunek
Napsal: 20 bře 2018 12:57
od zutano
Vím, že slučování buněk komplikuje život. Bohužel jsou nad poznámkami tabulky s daty, takže nemohu roztáhnout sloupec A na celou šířku.
Když jsem zkusil druhou variantu, tak ve chvíli kdy dám ALT+ENTER, tak mi to automaticky vrátí "zalamování textu". Nevím jak udělat, aby mi to automaticky nevracelo a jestli je to vůbec možné (mám office 2016). Jsem schopen mít v jedné buňce jeden řádek textu, ale ne víc. Pokud dělám něco špatně, tak jestli můžeš, tak to prosím uprav v příloze podle tebe. Stačí třeba jen jedna buňka.
Re: excel vba automaticka vyska radku sloucenych bunek
Napsal: 20 bře 2018 17:45
od Grimm
Můžeš se inspirovat na
WALL
Re: excel vba automaticka vyska radku sloucenych bunek
Napsal: 21 bře 2018 08:04
od zutano
Díky za tip na Wall. To řešilo výšku řádků, tu už mám vyřešenou. Jen se mi jednalo o to, aby to prohledávalo více řádků a upravilo to všechny.
Něco jsem ještě zkoušel a nakonec jsem to zprovoznil, tak jak jsem si představoval. Musel jsem udělat několik úprav i původního makra kvůli chybě v cyklu a kvůli zamknutému listu. Přikládám kód a přílohu, pokud by to někdo taky v budoucnu potřeboval :)
Sub vyska_radku()
Dim CurrentRowHeight, MergedCellRgWidth, ActiveCellWidth, PossNewRowHeight As Single
Dim CurrCell As Range
Dim radek As Range
Set radek = ActiveWorkbook.Sheets("uvod").Range("A23")
Sheets("uvod").Unprotect Password:="h" 'odemkne list
Do Until IsEmpty(radek)
radek.Select
If ActiveCell.MergeCells Then
With ActiveCell.MergeArea
'Jsou sloucene bunky na jednom radku a maji zalamovani textu?
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
ActiveCellWidth = ActiveCell.ColumnWidth
For Each CurrCell In Selection
MergedCellRgWidth = CurrCell.ColumnWidth + MergedCellRgWidth
Next
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth ' na tomto řádku se zastaví kod při třetí smyčce
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = ActiveCellWidth
.MergeCells = True
.Locked = False 'odemkne bunky
.NumberFormat = "@" 'nastavi format bunky "text"
.RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, CurrentRowHeight, PossNewRowHeight)
MergedCellRgWidth = 0 ' kvůli chybě při opakování přídán tento řádek
End If
End With
End If
Set radek = radek.Offset(1, 0)
Loop
Sheets("uvod").Range("A23").Select
Application.ScreenUpdating = True
Sheets("uvod").Protect Password:="h", AllowFormattingRows:=True, AllowFormattingCells:=True 'zamkne list a povoli upravit vysku radku a formatovani bunek
End Sub
Re: excel vba automaticka vyska radku sloucenych bunek
Napsal: 21 bře 2018 20:37
od atari
Tady máš ještě stránky kde se řeší ten autofit, že ve sloučených buňkách nefunguje a jak to lze řešit:
https://proexcel.cz/sloucena-bunka/Píše to hezky:
"Automaticky zalomený text zpravidla Excel zvládá, u ručně zalomeného textu čekejte obtíže, a u sloučených buněk už narazí kosa na kámen."Jinak to ALT+ENTER je příkaz na zalomení řádku, a jakmile to uděláš, tak si to Excel pamatuje a tu buňku pak označí "zalamovat text"
Re: excel vba automaticka vyska radku sloucenych bunek
Napsal: 22 bře 2018 08:35
od guest
Jó, komu není rady

Re: excel vba automaticka vyska radku sloucenych bunek
Napsal: 22 bře 2018 10:20
od atari
Já bych tu poznámku tedy řešil dvouřádkově bez sloučených buněk. A ještě to šetří místo. Vzor v příloze. (Je to bez předělání makra, což je však velmi jednoduchá úprava)