Excel 2003: Tvorba dynamického formuláře

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

Moderátor: Mods_senior

Odpovědět
Dave-fm
nováček
Příspěvky: 1
Registrován: 27 lis 2010 17:15

Excel 2003: Tvorba dynamického formuláře

Příspěvek 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
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

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

Příspěvek 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
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

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

Příspěvek od navstevnik »

V priloze je demo na skryti/zobrazeni casti uzivatelskeho formulare.
Přílohy
UseRFormHiddenShow.xls
(29 KiB) Staženo 209 x
Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Napojení Webnode kontaktního formuláře na Raynet CRM přes Make
    od mahy133 » » v Programování a tvorba webu
    1 Odpovědi
    17371 Zobrazení
    Poslední příspěvek od HelFix
  • Hra ve Scratch - tvorba
    od zuzana3 » » v Hry
    5 Odpovědi
    6423 Zobrazení
    Poslední příspěvek od zuzana3
  • Hra ve Scratch - tvorba
    od zuzana3 » » v Hry
    9 Odpovědi
    9938 Zobrazení
    Poslední příspěvek od zuzana3
  • Přechod z Excel 21 na Excel 24
    od Snekment » » v Kancelářské balíky
    2 Odpovědi
    14497 Zobrazení
    Poslední příspěvek od Snekment
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7417 Zobrazení
    Poslední příspěvek od atari

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