Přeskočit navigaci | Přeskočit na novinky
     

Jste zde: Úvodní stránka » excel » vba-formulare » excel-vba-formular-textbox-textove-pole

TextBox (Textové pole) ve formuláři VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

... TextBox (Textové pole) a jeho použítí ve formuláři za pomocí VBA...

Vložit TextBox

Karta Vývojář - Visual Basic. Menu Insert - UserForm. Z Toolboxu vybereme TextBox.

MS Excel - formuláře - TextBox

Vlastnosti:

Seznam základních vlastností prvku TextBox (Textové pole). Okno vlastností můžeme zobrazit klávesou F4.

  • (Name)
  • AutoSize
  • AutoTab
  • AutoWordSelect
  • BackColor
  • BackStyle
  • BorderColor
  • BorderStyle
  • ControlSource
  • ControlTipText
  • Enabled
  • EnterFieldBehavior
  • Font
  • ForeColor
  • Height
  • HelpContextID
  • HideSelection
  • IMEMode
  • IntegralHeight
  • Left
  • Locked
  • MaxLength
  • MouseIcon
  • MousePointer
  • MultiLine
  • PasswordChar
  • ScrollBars
  • SelectionMargin
  • SpecialEffect
  • TabIndex
  • TabKeyBehavior
  • TabStop
  • Tag
  • Text
  • TextAlign
  • Top
  • Value
  • Visible
  • Width
  • WordWrap

(Name)

Pojmenování prvku (můžeme změnit). Ve vzorcích se pak budeme na tento prvek odkazovat. V našem příkladě je (Name) TextBox1

AutoSize

Specifikuje, zda mění objekt automaticky velikost v souladu se svým celým obsahem. Pokud mění tak velký text zvětší objekt.

Hodnota (True False)

  Label1.AutoSize = False
  AutosizeStav = Label1.AutoSize

AutoTab

Specifikuje, zda se vyvolá automatický tabelátor, jakmile uživatel vloží maximální přípustný počet znaků do ovládacího prvku. Případně vratí nastavení tohoto parametru. Hodnota TRUE, FALSE

  

AutoWordSelect

Specifikuje, zda se má jako základní jednotka pro rozšíření výběru používat slovo nebo znak

  • True - Výchozí nastavení. Jako základní jednotku použije slovo.
  • False - Základní jednotka znak.
  

BackColor

Vrací nebo nastavuje barva pozadí objektu TextBox.

  TextBox1.BackColor = RGB(255, 128, 128)
  BarvaPozadi = TextBox1.BackColor

BackStyle

Vrací nebo nastavuje styl pozadí objektu Label.

fmBackStyleTransparent (0) Pozadí je průhledné.

fmBackStyleOpaque (1) Pozadí je neprůhledné (výchozí nastavení).

  TextBox1.BackStyle = fmBackStyleTransparent

BorderColor

Vrací nebo nastavuje barvu okrajů. Pokud není nastaven okraj tak se změna barvy neprojeví.

  TextBox1.BorderColor = RGB(254, 127, 127)

BorderStyle

Vrací nastavení nebo změní nastavení okrajů.

fmBorderStyleNone - 0 - nemá viditelný okraj

fmBorderStyleSingle - 1 -

  TextBox1.BorderStyle = fmBorderStyleSingle

Poznámka ignoruje se pokud je vlastnost SpecialEffect = none

ControlSource

Identifikuje kde se budou ukládat data, která se vloží přes vlastnost Value. Případně vratí kde se budou data ukládat.

  TextBox1.ControlSource = "a1"
  HodnotaVBunce = TextBox1.ControlSource

ControlTipText

Bublinková nápověda. Zobrazí se při najetí nad objekt

  TextBox1.ControlTipText = "Můj text v bublinkové nápovědě."
  ControlTipText = TextBox1.ControlTipText

Enabled

Určuje, zda se může ovládací prvek stát aktivním a odpovídat na události, generované uživatelem. Nebo specifikuje jak je tato vlastnost aktuálně nastavena.

  TextBox1.Enabled = True
  EnabledNastaveni = TextBox1.Enabled

EnterFieldBehavior

Určuje chování při výběru po vstupu do TextBox. Nebo vrací jak je tato vlastnost nastavená.

  • fmEnterFieldBehaviorSelectAll - 0 - Při vstupu do ovládacího prvku vybere celý obsah editované oblasti (výchozí nastavení).
  • fmEnterFieldBehaviorRecallSelection - 1 - Ponechá výběr beze změny.
  

Font

Vrací nastavení fontu nebo nastaví požadovaný fontu (velikost, typ, ...).

  TextBox1.Font.Italic = True
  TextBox1.Font.Size = 22
  TextBox11.Font.Bold = True
  TextBox1.Font = "Times New Roman"
  velikostFontu = TextBox1.Font.Size
  typFontu = TextBox1.Font
  FontJeKurziva = TextBox1.Font.Italic

ForeColor

Varcí nastavení nebo definuje barvu popředí objektu tj. v našem případě jakou barvu bude mít text.

  TextBox1.ForeColor = RGB(255, 255, 0)
  BarvaPopredi = TextBox1.ForeColor

Height

Vrací výšku objektu nebo jeho výšku nastaví.

  TextBox1.Height = 28
  Vyska = TextBox1.Height

HelpContextID

Odkaz do nápovědy ve formátu Microsoft Windows pro konkretní objekt

  

HideSelection

Určuje, zda má zůstat vybraný text zvýrazněn i v případě, že se prvek není aktivním. Hodnoty True (výchozí) Neaktivní text není zvírazněn. FALSE - zůstane zvýrazněn.

  TextBox1.HideSelection = False

IMEMode

Specifikuje výchozí režim pro zpracování IME (Input Method Editor) daného ovládacího prvku.

IntegralHeight

Udává, zda TextBox zobrazí v seznamu celé řádky textu, nebo jen jejich část. Nybývá hodnot TRUE, FALSE.

Left

Umístění objektu od levého okraje. Nebo zjištění jak je umístěn objekt.

  umistenileft = TextBox1.Left
  TextBox1.Left = 12

Locked

Určuje, zda lze ovládací prvek editovat. Případně vrací stav této vlastnosti. Nabývá hodnot TRUE (nelze editovat), FALSE (lze editovat, jedná se o vychozí nastavení).

  TextBox1.Locked = TRUE
  TextBox1.Locked = FALSE

MaxLength

Specifikuje maximální počet znaků, které může uživatel zadat do TextBox nebo vrací tento počet znaků. (0 není zadáno)

  TextBox1.MaxLength = 5
  maxPocetZnaku = TextBox1.MaxLength

MouseIcon

Přiřazení ikony por objekt

  TextBox1.MouseIcon = LoadPicture("c:\mojeIkonka.ico")

MousePointer

Vrací typ ukazatele myši, nebo nastaví ukazatel myši. Hodnoty jsou:

  • fmMousePointerDefault 0 - standartní ukazatel
  • fmMousePointerArrow 1
  • fmMousePointerCross 2
  • fmMousePointerIBeam 3
  • fmMousePointerSizeNESW 6
  • fmMousePointerSizeNS 7
  • fmMousePointerSizeNWSE 8
  • fmMousePointerSizeWE 9
  • fmMousePointerUpArrow 10
  • fmMousePointerHourglass 11
  • fmMousePointerNoDrop 12
  • fmMousePointerAppStarting 13
  • fmMousePointerHelp 14
  • fmMousePointerSizeAll 15
  • fmMousePointerCustom 99
  TextBox1.MousePointer = fmMousePointerHelp

MultiLine

Určuje, zda ovládací prvek může pojmout a zobrazit více řádků textu. Hodnoty (True - Text se zobrazí ve více řádcích. False - Text se nezobrazí ve více řádcích.

  TextBox1.MultiLine = False
  TextBox1.MultiLine = True

PasswordChar

Určuje, zda se namísto skutečně zadaných znaků zobrazí v TextBox pouze náhradní znaky. Například *.

  TextBox1.PasswordChar = ""
  TextBox1.PasswordChar = "*"

ScrollBars

Určuje, zda ovládací prvek, formulář nebo stránka mají svislý posuvník, vodorovný posuvník nebo oba posuvníky. Případně vrací nastavení teto vlastnosti.

  • fmScrollBarsNone 0 - žádné (výchozí)
  • fmScrollBarsHorizontal 1 - Vodorovný.
  • fmScrollBarsVertical 2 - Sviský
  • fmScrollBarsBoth 3 - vodorovný a svislý posuvník.
  TextBox1.ScrollBars = fmScrollBarsHorizontal

SelectionMargin

Určuje, zda může uživatel vybrat řádek textu klepnutím na oblast vlevo vedle textu.

  • True - Klik na okraj způsobí výběr textu (výchozí nastavení).
  • False - Nezpůsobí výběr textu.
  

SpecialEffect

Vrací nebo určuje speciální efekty objektu.

  • fmSpecialEffectFlat 0
  • fmSpecialEffectRaised 1
  • fmSpecialEffectSunken 2
  • fmSpecialEffectEtched 3
  • fmSpecialEffectBump 6
  TextBox1.SpecialEffect = fmSpecialEffectFlat
  TextBox1.SpecialEffect = 6
   StavSpecialEfekt = TextBox1.SpecialEffect

TabIndex

Vrací nebo udává pozici jednoho objektu v pořadí karet formuláře.

  Label1.TabIndex = 0

TabKeyBehavior

Určuje, zda jsou v editační oblasti povoleny tabelátory

  • True - Stisk TAB zpusobí vložení znaku tabelátoru.
  • False - TAB - přesunutí na další objekt (le pořadí). Jde o vychozí nastavení.
  

TabStop

Určuje, zda se může objekt stát aktivním, když na něj uživatel přejde klávesou tabelátor. Nabývá hodnot TRUE, FALSE. True - Přístup TAB je možný (výchozí nastavení). False - Při použití tabelátoru se objekt vynechá.

  

Tag

Doplňkové informace o objektu.

  

Text

Vrací nebo nastavuje text v ovládacím prvku TextBox.

  TextBox1.Text = "Nastavíme náš text"
  NasText = TextBox1.Text
  TextBox1.Text = ""

Poznámka: Výchozí hodnotou je řetězec nulové délky ("").

TextAlign

Zaroznání textu. Vpravo, vlevo, na střed. Nabývá hodnot:

  • fmTextAlignLeft - 1 - Zarovnani vlevo
  • fmTextAlignCenter - 2 - Zarovnání na střed
  • fmTextAlignRight - 3 - Zarovnání vpravo
  TextBox1.TextAlign = fmTextAlignCenter
  TextBox1.TextAlign = 1
  jakZarovnano = TextBox1.TextAlign

Top

Umístění objektu od horní okraje. Nebo zjištění jak je umístěn objekt.

  umistenitop = TextBox1.Top
  TextBox1.Top = 12

Value

Udává stav nebo obsah daného ovládacího prvku.

  TextBox1.Value = "Muj jiný text"
  MujValue = TextBox1.Value

Visible

Nastavuje viditelnost objektu, nebo zobrazuje jaký stav má objekt. Nabývá hodnot TRUE (viditelný - výchozí nastavení), FALSE (neviditelný).

  TextBox1.Visible = False
  TextBox1.Visible = True

Width

Vrací šířku objektu nebo jeho výšku nastaví.

  TextBox1.Width = 110
  Sirka = TextBox1.Width

WordWrap

Určuje, zda se má obsah ovládacího prvku automaticky zalomit na konci řádku, nebo vrací jeho hodnotu. Nabývá hodnot TRUE, FALSE.

True - Text se zalamuje (výchozí nastavení). False - Text se nezalamuje.

  

Ke stažení

Hotový příklad ke stažení: Formulář TextBox (Textové pole) - ukázky použití soubor ve formátu 

*.xls

MS Excel - formuláře - TextBox

Závěr

Popis vlastnosti objektu TextBox1 máme za sebou :)

Článek byl aktualizován: 01.11.2014 14:04

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák

Pavel Lasák - autor webu

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2006. Své vědomosti a zkušenosti dávám k dispozici na různých školeních a konzultacích, ale také na tomto webu. K dispozici na tomto webu je mnoho návodu, tipů a triků včetně desítek různých šablon.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil

Doporučte tento článek přátelům

Pokud vám článek pomohl, případně si myslíte, že může pomoci i někomu dalšímu, budu rád když jej sdílením doporučíte přátelům - děkuji:



Komentáře


Karel

Přidáno: 10.02.12 08:45

Dobrý den, chtěl bych se Vás zeptat jestli je možné otočit celý prvek a nebo alespoň text v něm tak aby byl vertikálně.Jako když nastavím v buňce orientaci 90°.Děkuji

Pavel Lasák

Přidáno: 10.02.12 20:41

To Karel: O této možnosti bohužel nevím.

Radek

Přidáno: 13.02.12 18:56

Dobrý den, vytvořil jsem formulář a v něm textbox s vlastností MultiLine=True. Pokud zadám enter pro přechod na další řádek, tak celý formulář zamrzne a musím ho ukončit přes právce úloh. Přitom se to nestane pokaždé ... díky za odpověď

Pavel Lasák

Přidáno: 13.02.12 20:25

To Radek: Můžete poslat ukázku na lasak@centrum.cz? Tohle se mi zatím u žádného formuláře nestalo.

Cincur

Přidáno: 01.03.12 13:40

Dobrý den, mám problém a trápim sa s ním už 2 dni snáď mi pomôžete. Mám vloženú excel tabuľku vo worde,v tejto tabulke mám bunky,ktore potrebujem vyplniť cez formulár, to nie je problém,až na to,že keď chcem zadať cestu kam sa má zadaná hodnota napísať do excel tabulky,napríklad B3,tak to nejde,lebo VBA nevie najst list excelu a neviem ako mu ho zadať aby ho našiel. prosím poradte http://imgupload.sk/viewer.php?file=fqazrohs5xennttwpdo4.jpg

Cincur

Přidáno: 01.03.12 13:42

link čo vlastne potrebujem je vyššie,potrebujem, aby sa mi udaj z formulára,napr meno,po stlačení tlačítka OK, prenieslo do bunky "B3" v exceli,v samotnom exceli to nie je problem a vsetko mi funguje,ale akonáhle mám excel tabulku vlozenu do wordu tak to nejde. tách položiek ako meno a podobne bude viac,ale na začiatok potrebujem len toto snád si s tým už ďalej poradím, díky za akúkolvek pomoc.

Pavel Lasák

Přidáno: 01.03.12 19:16

To Cincur: Zkusím o tom popřemýšlet.

Cincur

Přidáno: 02.03.12 05:48

Mám nový poznatek prí to funguje kým je otvorené excel okno ale akonáhle se to uloží tak to stratí umístnení a nejde to . :-( Ďakujem že sa tým zaoberáte, potrebuju to v práci.

Vašek

Přidáno: 14.03.12 09:01

Přeji hezký den, mám takovýto problém, když udělám v textboxu nový řádek a přenesu pomocí makra text do buňky, tak se mi na konci řádku objeví čtvereček. Když chci tento čtvereček odstranit, odstraní se i nový řádek. Nemá někdo nápad, jak tento čtvereček odstranit? Děkuji

Martin

Přidáno: 07.05.12 21:05

Dobrý den, jsem úplný začátečník, tak omluvte můj dotaz.Existuje nějaká možnost, jak v Textboxu zobrazit zpětně již zadaný text? A ještě jeden dotaz, zpětná kontrola správnosti zadaných dat se provádí už při vložení do Textboxu nebo až po uložení v buňce? Děkuji

Pavel Lasák

Přidáno: 08.05.12 18:03

To Martin: 1) Předpokládám zadám text, poté zadám jiný potvrdím a teď potřebuji se dostat k tomu prvnímu (který již byl přepsán)? Před přepsáním "původního" textu z TextBox bych ho uložil do pomocné buňky. Tj. měl bych k dispozici předchozí verzi (v případě potřeby mohu zobrazit.

2) Kontrola (verifikace) před zapsaním dat z Textboxu Private Sub TextBox1_AfterUpdate()

Martin

Přidáno: 12.05.12 13:30

Jde mi o to, aby uživatel nemusel při každém otevření formuláře vyplňovat pole, která už byla vyplněna dříve. Aby se jen v TextBoxu zobrazila jakoby pro "kontrolu". A aby mohl uživatel, pokud bude třeba, vložit nový údaj. Potřebuji vyřešit problém, když nevyplním všechna pole formuláře, tak mě prázdný TextBox vlastně vymaže data, která už byla zadána. Snad jsem to vysvětlil lépe. Děkuji za odpověď

Pavel Lasák

Přidáno: 12.05.12 17:12

To Martin: Načtu vyplněnou buńku do příslušného TextBoxu TextBox1.Value , pokud je prázdná bude i TextBox prázdný

Pavel.D

Přidáno: 22.05.12 14:13

Přeji hezký den, prosím o radu jak docílit toto: Ve formuláři zadám do TextBox1 (datum 22.5.2012) TextBox2 přebere datum z TB1 a zobrazí(den úterý) TextBox3 potřebuji aby přebral datum TB1 a zobrazil v sobě ( týden v roce platný k 22.5.2012) Děkuji za radu

Lucie O.

Přidáno: 31.05.12 13:29

Dobry den, teprve se zacinam ucit a vytvorila sem si makro, ktere z vstupniho formulare na listu 1 prekopiruje na list2. Zaciname na A2. Vsechno funguje parada, ale prepisuju si porad radek 2. Vypada to asi takto: Private Sub cb_Close_Click() Dim Number_of_Entries, A, New_entry As Integer Dim claim_number, start As String Number_of_Entries = 65535 start = 2 For A = 1 To Number_of_Entries claim_number = Cells(start, 1) If claim_number <> "" Then start = start + 1 Else New_entry = start End If Next A Range("c2").Copy Destination:= _ Sheets("Sheet2").Range("A2") Range("c4").Copy Destination:= _ Sheets("Sheet2").Range("B2") Range("c6").Copy Destination:= _ Sheets("Sheet2").Range("C2") Range("C8").Copy Destination:= _ Sheets("Sheet2").Range("D2") Range("C10").Copy Destination:= _ Sheets("Sheet2").Range("E2") Range("c12").Copy Destination:= _ Sheets("Sheet2").Range("F2") Range("c14").Copy Destination:= _ Sheets("Sheet2").Range("G2") Range("c16").Copy Destination:= _ Sheets("Sheet2").Range("H2") Range("C2").Value = "" Range("C4").Value = "" Range("C6").Value = "" Range("C8").Value = "" Range("C10").Value = "" Range("c12").Value = "" Range("c14").Value = "" Range("c16").Value = "" MsgBox "The data has been successfully copied." End Sub Nenasel by se nekdo, kdo by mi pomohl se posunout dal ;-)

Pavel D

Přidáno: 12.07.12 15:25

Přeji hezký den, prosím o radu jak docílit toto: V Listbox1 nastaveném na multiselect označím 3 různé položky např. leden březen květen Jak docílit zápisu do buňky A1 na List1 aby v buňce byl převzatý text: leden, březen, květen ( řetězec s čárkou a mezerou) Děkuji za pomoc

Pavel Lasák

Přidáno: 15.07.12 08:30

To Pavel D: Ukázka kdy vybrané položky se zapíší do MsgBoxu. Nutno procházet cyklem. With ListBox1 For i = 0 To .ListCount - 1 If .Selected(i) Then zprava = zprava & .List(i) & vbNewLine End If Next i End With MsgBox (zprava)

Franc

Přidáno: 30.08.12 16:15

Chcem vás poprosit či by ste mi nepomohli s makrom kde v jednom liste je rolovacie menu "pole so zoznamom" s menami a vedla toho sú 4 prepínace s farbou napr.: biela, cervena, zelena, modra a tiež nieaké poznámky cez textové pole a nakoniec tlačítko uložiť. Po stlačení tlačitka sa na druhý list uloží vybrané meno, farba, a poznámka. Ak sa u niektorého mena priradí konkrétna farba viac krat ako 10 tak my vypíše toto meno farebne na prvom liste do volného priestoru. niečo ako upozornenie ze prekrocil limit 10.

Pavel Lasák

Přidáno: 31.08.12 18:12

To Franc: Tohle je na článek. Bude-li čas zkusím sepsat.

Franc

Přidáno: 01.09.12 12:55

Viem že toho chcem dosť. Ale poprosil by som o radu od čoho sa odraziť. Moj mail: francjose44@gmail.com

Pavel Lasák

Přidáno: 01.09.12 20:30

Franc: Doporučuji přečíst články na tomto webu věnující se VBA, nebo položit otázku do diskuzního fóra třeba na http://www.pc-help.cz/ nebo strejda google (dotazy pokladat anglicky)

Adam

Přidáno: 24.09.12 23:52

Dobrý den, je možné několika ActiveX TextBoxy procházet přesk klávesu tab tak, aniž bych musel využít VBA? Potřebuji sešit uložit jako xls. Děkuji.

Pavel Lasák

Přidáno: 25.09.12 16:27

To Adam: Zatím jsem nepřišel na řešení bez VBA, někde mám řešení s VBA.

Jiří T.

Přidáno: 25.10.12 14:02

Dobrý den,měl bych dotaz ohledně TextBoxu - můj kód vypadá takto: Dim j As Integer j = frm.edAdd.Value Dim Add As MSForms.TextBox For i = 1 To j Set Add = frm.Controls.Add("forms.TextBox.1") With Add .Name = "Load & i + 1" .Top = 35 + (20 * i) .Left = 390 .Width = 54 .Height = 15.75 End With Next Programuji ve VBA, mám definovaný UserForm, TextBoxy, CommandButtony apod. Cílem mého makra je, když uživatel zapíše ve formuláři nějaké číslo, tak tolikrát se vytvoří TextBox v daném UserForm. Toto funguje. Problém však nastane tehdy, když se na nově vytvořený TextBox (např. Load1, Load2, ...) nějakým způsobem odkazuji - jako kdyby neexistoval název TextBoxu. Pokud však "natvrdo" vytvořím TextBoxy v UserForm, přiřadím jim nějaká jména a odkážu se na ně - tak to funguje. Takto to ale nechci, protože nikdy dopředu nevím, kolik TextBoxů budu pro danou úlohu potřebovat. Nevím, zda to vůbec jde, proto se na Vás obracím s prosbou o radu. Děkuji

PavelD

Přidáno: 27.12.12 09:29

Dobrý den pane Lasák, prosím o radu jak docílit toto: Při otevření formuláře se naplní textboxy hodnotami z databáze: tb1 text třeba A,nebo B tb2 text třeba C, tb3 číslo třeba 22000112 Po naplnění textboxů potřebuji MsgBox ( podmínka když tb1 je A, nebo B, a tb2 je C a tb3 začíná číslem 2*******, tak MsgBox(" něco") Mám problém jak zapsat kód If ..... Then s první pozicí čísla v tb3 Děkuji za radu P.D.

Pavel Lasák

Přidáno: 27.12.12 11:50

TO PavelD: Potřebujete událost po spuštění formuláře se provedou požadované podmínky: Private Sub UserForm_Activate() MsgBox ("Ahoj právě jsi spustil formulář") 'tady další kód End Sub Hodnoty vkládané do tb1 máte již v proměnné např: HodnotaProTb1? Pak např. pomocí funkce LEFT (ZLEVA, VLEVO) zjistíte první hodnotu v proměné (tj. číslo 2) a pak použít podmínku IF Then http://office.lasakovi.com/excel/vba-teorie-zaklady/if-then-elseif-else-podminka-excel-vba/

PavelD

Přidáno: 06.02.13 14:03

Dobrý den pane Lasák, prosím o radu jak docílit toto: Do formuláře (nebo přes inputBox) Tetxbox1 zadám počáteční čas 8:00 Tetxbox2 zadám konečný čas 8:30 v Textbox3 nebo Label1 potřebuji rozdíl v minutách "30" (dostávám hodnotu 2,0833333) Chce to řešit funkcí?

Honza

Přidáno: 28.03.13 09:00

Dobrý den. Protože chci, aby se mi v textboxu zobrazovala hodnota 02 a ne jen 2, vložil jsem Private Sub TextBox134_Change() TextBox134.Value = Format(TextBox134.Value, "00") End Sub Textbox má také ControlSource, ale formát buňky nepřebere. Toto se mi při hodnotách menší než 10 při krokování zacykluje. Je nějaký lepší způsob. Děkuji

Pavel G.

Přidáno: 10.09.13 23:25

Zdravím, chtě bych pochválit autory za tento skvělý web. Mám jeden problém pro správu databáze v excelu (access v práci nemáme) používám jako vstupní oblasti formulář s text boxy. Náseledně je zadaným hodnotám přiřazené ID řádku. A zpětně jde hodnotami listovat a objeví se v text boxech. Mám problém s proměnou u hodin. Nevím jaky datový typ jim mám přiřadit. Při variant se uloží správně, ale načítá se do textboxu jako desetiné číslo. Při proměné date se zase zobrazuje formát např 04:00:00 PM místo 16:00 a pokud se nenačte z buňky žádná hodnota automaticky se mi vrací do textboxu 12:00:00 AM. Neméte nějaký trik jak načíst správnou hodnotu? Public Property Get Position() As Variant Position = Me.cboPosition End Property Public Property Let Position(ByVal vNewValue As Variant) Me.cboPosition = vNewValue End Property Public Property Get Timex() As Date Timex = Me.txtTimex End Property Public Property Let Timex(ByVal vNewValue As Date) Me.txtTimex = vNewValue End Property Děkuji

Vašek

Přidáno: 29.01.14 07:47

Dobrý den, mohl bych mít dotaz? Když v textbox mám určené aby se mi zapsal aktuální datum. (Textbox1.Text = date) Ale já ho při vyplňování formuláře přepíši, proč mi stejně ve výsledku zůstane aktuální datum?

Ivan

Přidáno: 22.06.14 20:56

Zdravím,chtěl bych se zeptat,zda je možné,abych mohl zablokovat pole když se při načtení z buňky načte text,ale pokud by po načtení zůstal prázdný,je možné do něj zapisovat.Doufám,že jsem můj dotaz napsal srozumitelně.Děkuji za odpověď.

Szagi

Přidáno: 28.07.14 16:28

To Ivan: Po načtení If Me.TextBox1.Text <> "" Then Me.TextBox1.Locked = True End If

Szagi

Přidáno: 28.07.14 16:34

To Vašek: Využít událost Change a stejným způsobem, jakým uvádíte, zapsat novou hodnotu?

Jaroslav

Přidáno: 26.10.14 14:32

To Lucie O: Rozhodl jsem se že vám s vaším problémem pomohu, jelikož nikdo nereagoval. Sub cb_Close() Dim NextRow As Long, NextCol As Long Dim A As Long, claim_number As String 'Nastavení počítání sloupců od 1, jinak počítá od 0 NextCol = 1 'Určení poslední prázdné buňky na Listu 2 a uložení do proměné NextRow NextRow = Sheets("List2").Range("A65536").End(xlUp).Row + 1 'Aktivace Listu 1 Sheets("List1").Activate 'Smyčka For To z krokem 2 (Step 2) For A = 2 To 20 Step 2 'Přebírá hodnotu buňky na listu1 v řádkách A - 2,4,6.. a sloupci3 (čili C) claim_number = Cells(A, 3) 'Rozhodnutí jestli v proměnné claim_number je hodnota buňky If claim_number <> "" Then 'Hodnota proměnné bude přenesena do určitého řádku a sloupce na Listu2 Sheets("List2").Cells(NextRow, NextCol).Value = claim_number 'Vymazání hodnot v buňkách na List1 Cells(A, 3).ClearContents 'Přičtení 1 pro další sloupec na Listu2 NextCol = NextCol + 1 Else 'Zobrazení zprávy pokud v proměnné nebude žádná hodnota MsgBox "The data has been successfully copied." 'Ukončení cyklu End End If Next A End Sub Ještě k vašemu původnímu programu. Vaše deklarování proměných Dim Number_of_Entries, A, New_entry As Integer je špatné. V tomto případě by pouze New_entry byla Integer a ostatní proměnné by byly Variant. Správně je to Dim Number_of _Enteries As Integer, A As Integer, New_entry As Integer. Co se týká vašeho problému přepisování řádku 2 je chyba v zadání Range("C2").Copy Destination:= Sheets("Sheet2").Range("A2"). Vždy vam toto kopírování bude přepisovat řádek 2 na Listu2. Musíte k řádku nebo sloupci při každém průchodu cyklu přičítat 1.

Jozef

Přidáno: 06.12.14 07:09

Dobrý den , prosim o radu ,akým spôsobom je možné zmeniť farbu písma v textovom poli pri nastavení enabled=false ďakujem

Jojo

Přidáno: 08.12.14 07:30

To Jozef: -- zmeniť sa dá, ale zmena sa prejaví až po Enabled=True

Michal

Přidáno: 22.04.15 18:12

Dobrý den, prosím o radu, mám vytvořený formulář s textboxy 1 až 10 a chtěl bych zřetězit jejich vyplnění hodnotami. Např < for i=1 to 10 listbox(i).value=range("a"&i) next >

Pavel

Přidáno: 01.12.15 15:18

Dobrý den, lze makrem upravit chování kurzoru v textboxu? Chtěl bych, aby se kurzor umístil po kliknutí na textbox hned za první znak a to kdykoliv, kdy na pole kliknu. Hledal jsem po různých fórech, ale chytrej z toho nejsem ani trochu (s VBA začínám). Kdyby jste někdo věděl alespoň zhruba věděl po čem pátrat, za každou radu budu rád. textbox1.SelStart = 1 mi sice kurzor nastaví tam, kam chci, ale vždy jen po spuštění makra.

George

Přidáno: 28.02.16 12:54

Na "Form" mám "TextBox" do kterého vepíši hodnotu. Po uzavření a novém otevření "Form" hodnota tam není. Je možno H=TextBox.Text někde uskladnit aby se při příštím otevření "Form" znovu objevila? Dík

Aleš Vonka

Přidáno: 20.05.16 14:43

Dobrý den, váš web je pro me alfou když něco nevím, ale nemužu nikde na netu ani tady najit kus kodu ktery potrebuji: 'takhle se samozrejme nastavi hodnota prvku, treba textbox: textbox1.value = 1 'Ale jak tuto hodnotu ulozim tak, aby se i po vypnuti a ulozeni excelu tato hodnota zachovala? 'Neco jako: textbox1.SetDefault.value = 1 Samozrejme vim, ze ve vlastnostech prvku se da tato hodnota nastavit, ale ja to chci udelat makrem a zaroven se vyvarovat tomu abych operoval s nejakou bunkou a vkladal do ni makrem hodnotu, kterou si samozrejme pak do prvku nactu.

Jirka

Přidáno: 24.07.16 11:00

Prosím o pomoc se snad jednoduchým dotazem. V aplikaci, která mi jako taková funguje, mám ve formuláři textové pole, do kterého chci pouze posílat informace pro uživatele o tom, co aplikace právě dělá. Jde o to, že některé procedury trvají dlouho, tak aby uživatel neměl pocit, že se "to zaseklo." Jenomže i když prokazatelně před samotným kódem určitého vyhledávacího cyklu dám příkaz: TextBox1.Text = "Hledání...." Do while.... loop (dlouhotrvající kód) tak příslušná smyčka do - loop se provede, ale zobrazení stavové hlášky "Hledání..." do textového pole se uživateli zobrazí až na konci smyčky, kdy to už vlastně není potřeba.... Je vůbec způsob, jak to udělat, aby stavová hláška posílaná do textového pole plnila účel a zobrazila se prostě včas tak, jak by měla? Díky moc, já už nevím, kudy kam :-( Jirka







Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články

25.03.2017:
ROUNDUP, ROUNDDOWN - zaokrouhlování

07.04.2017:
Řazení Excel - bug - problém

09.04.2017:
Podmínkové funkce Excel - bug - problém


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2017 | 41266

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.