Stránka 1 z 1

Záloha šířky sloupců ve VBA

Napsal: 03 led 2017 10:21
od Kurimak
Zdravím,
vytvořil jsem si v jednom makru ve formuláři zálohu šířky sloupců pro zpracovávanou oblast dat, která se ukládá do pole hodnot SUndo. Ukládá se číslo sloupce a jeho šířka. Vše lze pomocí tlačítka Zpět vrátit do původní podoby, avšak problém nastává, mají li buňky ve sloupci datumový formát např.: “m/d/yyyy” nebo “dd/mm/yyyy”. Potom se původní šířka sloupců správně neobnoví. Věděl by někdo, jak to vyřešit?

Ukázka použitého VBA kódu:

Kód: Vybrat vše

'Vlastní formát pro zálohu šířky sloupce v modulu
Type SloupecUndo
SIndex As Long
SSirka As Integer
End Type
'SIndex – číslo sloupce
'SSirka – šířka sloupce

'Definování proměnných ve formuláři
Dim PocetSloupcu As Long
Dim Sloupec As Range
Dim SUndo() As SloupecUndo

'Záloha šířky sloupců
For Each Sloupec In PracOblast.Columns
    PocetSloupcu = PocetSloupcu + 1
    ReDim Preserve SUndo(PocetSloupcu)
    SUndo(PocetSloupcu).SIndex = Sloupec.Column
    SUndo(PocetSloupcu).SSirka = Sloupec.ColumnWidth
Next Sloupec

  'Obnovení předchozí šířky sloupců
    For s = 1 To UBound(SUndo)
    Columns(SUndo(s).SIndex).ColumnWidth = SUndo(s).SSirka
    Next s

Re: Záloha šířky sloupců ve VBA

Napsal: 03 led 2017 11:13
od guest
V tom to myslím nebude, spíš bych někde hádal sloučené buňky.

Re: Záloha šířky sloupců ve VBA

Napsal: 03 led 2017 11:24
od Kurimak
Zdravím,
proměnná pro šířku sloupce musí být nadefinovaná tak, aby šlo do ní ukládat i desetinná čísla, protože některé šířky sloupců obsahují desetinná čísla. To byl ten problém. Mělo mě to napadnout hned.
Oprava:

Kód: Vybrat vše

SSirka As Single

Re: Záloha šířky sloupců ve VBA  Vyřešeno

Napsal: 03 led 2017 12:03
od guest
Aha, Integer..