Stránka 1 z 1

Excel 2003: Tvorba dynamického formuláře

Napsal: 27 lis 2010 18:41
od Dave-fm
Dobrý den, potřebuji poradit s úpravou formuláře v excelu 2003. V jedné jeho části chci mít dva přepínače (ANO/NE). V případě, že bude platit podmínka ANO, bude uživatel formulář vyplňovat dál v nezměněné podobě. V případě, že zvolí NE, chci, aby se některé řádky nebo určitá část formuláře skryly. A dále, v případě, že uživatel zvolí NE a následně se rozmyslí a zvolí ANO, aby se formulář vrátil do původní nezkrácené podoby.
Poradíte mi jak na to? Předem díky.

// Změna názvu tématu. Původní název "formulář - excel 2003" svou nulovou informační hodnotou porušoval pravidla fóra.
// mike007

Re: Excel 2003: Tvorba dynamického formuláře

Napsal: 28 lis 2010 00:35
od navstevnik
Doplneno: Asi nocni doba zpusobila, ze jsem zamenil Excel s Wordem, nasledujici je tedy zcela mimo.
Rucni skryti casti formulare (text a formularova pole) - postup viz http://office.microsoft.com/cs-cz/word- ... yti-textu-
HP005189458.aspx
Vyber casti textu a operace s touto casti viz http://www.tek-tips.com/viewthread.cfm? ... 386&page=1

Takze skryti procedurou - nutno vlozit do textu vhodna jedinecna klicova slova (napr.: Startword a Endword), mezi nimiz bude text skryt, proceduru volej zmenou stavu prepinacu:

Kód: Vybrat vše

Sub HiddenText()
  Dim StartWord As String, EndWord As String
  StartWord = "Startword"
  EndWord = "Endword"

  With ActiveDocument.Content.Duplicate
    .Find.Execute Findtext:=StartWord & "*" & EndWord, MatchWildcards:=True
    .MoveStart wdCharacter, Len(StartWord)
    .MoveEnd wdCharacter, -Len(EndWord)
    .Font.Hidden = True
  End With
End Sub

obdobne pro zobrazeni nutno pouzit:

Kód: Vybrat vše

Sub ShowText()
  Dim StartWord As String, EndWord As String
  StartWord = "Startword"
  EndWord = "Endword"

ActiveWindow.ActivePane.View.ShowAll = Not ActiveWindow.ActivePane.View.ShowAll
  With ActiveDocument.Content.Duplicate
    .Find.Execute Findtext:=StartWord & "*" & EndWord, MatchWildcards:=True
    .MoveStart wdCharacter, Len(StartWord)
    .MoveEnd wdCharacter, -Len(EndWord)
    .Font.Hidden = False
  End With
  ActiveWindow.ActivePane.View.ShowAll = Not ActiveWindow.ActivePane.View.ShowAll
End Sub

Protoze formular byva uzamknut, je zapotrebi dokument odemknou/uzamknout pred volanim uvedenych procedur:

Kód: Vybrat vše

Sub HidenTextProtectDoc()
  With ActiveDocument
    If .ProtectionType <> wdNoProtection Then
      .Unprotect
      HiddenText
      .Protect Type:=wdAllowOnlyFormFields
    Else
      HiddenText
    End If
  End With
End Sub
Sub ShowTextProtectDoc()
  With ActiveDocument
    If .ProtectionType <> wdNoProtection Then
      .Unprotect
      ShowText
      .Protect Type:=wdAllowOnlyFormFields
    Else
      ShowText
    End If
  End With
End Sub

Re: Excel 2003: Tvorba dynamického formuláře

Napsal: 28 lis 2010 13:13
od navstevnik
V priloze je demo na skryti/zobrazeni casti uzivatelskeho formulare.