Makro v excelu (VBA)

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

Moderátor: Mods_senior

Zamčeno
xp3
nováček
Příspěvky: 6
Registrován: 22 bře 2017 17:18

Makro v excelu (VBA)

Příspěvek od xp3 »

Dobrý den,
potřebuji poradit. V práci mám jednotnou tabulku jako výkaz pro předávání práce.
Potřebuji, aby po vyplnění 10 cifer v buňce "C3" došlo k automatickému přeskoku na buňku "H3". Lze to vyřešit pomocí VBA?
Po zapsání poslední 10-té cifry potřebuji automatický skok v témže řádku do sloupce "H". Na další řádek, opět sloupec "C" se dokážu přesunout pomocí vlastního makra. Ve sloupci "H" mám totiž jednu nebo dvě cifry, což by šlo pro automatický skok asi těžko definovat.
Děkuji
guest

Re: Makro v excelu (VBA)

Příspěvek od guest »

V režimu editace buňky nedokážete nic, bez ohledu na počet cifer.
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3375
Registrován: 24 říj 2008 19:50

Re: Makro v excelu (VBA)

Příspěvek od atari »

Jediné co mě napadá tak to obejít. Editaci buňky nedělat v buňce, ale přes formulář. A ve formuláři (pokud se nepletu) lze nastavit omezení počtu znaků. To však vyžaduje jistou úroveň znalostí VBA.
xp3
nováček
Příspěvky: 6
Registrován: 22 bře 2017 17:18

Re: Makro v excelu (VBA)

Příspěvek od xp3 »

To je dobrý nápad vkládat data pomocí inputboxu. Zadat deset cifer, potvrdit entrem. Skočí to do sloupce "H" znova enter, skočí to do sloupce "C" o řádek níž. A tak pořád dokola až se dostanu na řádek 63. To by mi moc pomohlo kdyby se to dalo ve VBA udělat. Bohužel takovej borec přes VBA nejsem.
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3375
Registrován: 24 říj 2008 19:50

Re: Makro v excelu (VBA)

Příspěvek od atari »

Takhle přesně jednoduše (z pohledu uživatele) to jde udělat.
Já jsem formuláře začal studovat před 3 lety, abych udělal 2 jednoduché prográmky ve VBA. Byla to pro mě úplná novinka. Sice jsem nad tím strávil asi 20 až 5O hodin času. Ale ty dva projekty jsem udělal. Kdyby to dělal programátor, tak to má za dva večery hotové. Ale já se to chtěl naučit. Sice jsem to zapomněl za ty ti roky, protože jsem ve VBa přestal dělat.
Není to však nic složitého. Nejlepší je najít na netu vzorové Excely s formulářema a na nich to studovat plus je spousta návodů na netu.
xp3
nováček
Příspěvky: 6
Registrován: 22 bře 2017 17:18

Re: Makro v excelu (VBA)

Příspěvek od xp3 »

Prosím o radu do začátku. Jak zapíšu inputboxem, co buňky C7 hodnotu třeba 123. Jsem ve VBA úplnej začátečník
Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: 14 led 2012 18:44
Bydliště: Země, bohužel...
Kontaktovat uživatele:

Re: Makro v excelu (VBA)

Příspěvek od Azuzula »

Ahoj, třeba takhle:

Kód: Vybrat vše

Range("C7").Value = InputBox("Zadej hodnotu", "Zápis")
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.
xp3
nováček
Příspěvky: 6
Registrován: 22 bře 2017 17:18

Re: Makro v excelu (VBA)

Příspěvek od xp3 »

To mi nefunguje. Potřebuju to do začátku jako pro blbce.
Makro.png
Azuzula
Level 3
Level 3
Příspěvky: 452
Registrován: 14 led 2012 18:44
Bydliště: Země, bohužel...
Kontaktovat uživatele:

Re: Makro v excelu (VBA)

Příspěvek od Azuzula »

Makro se nesmí jmenovat stejně jako příkazy to je celý problém. Přejmenuj makro na něco jinýho a bude fungovat pokud je syntaxe stejná i v nových excelech než je 2010 kterou mám já.
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.
xp3
nováček
Příspěvky: 6
Registrován: 22 bře 2017 17:18

Re: Makro v excelu (VBA)

Příspěvek od xp3 »

Děkuji všem za pomoc :-)
Už mi to funguje dokázal jsem jako úplný lajk definovat cyklus i podmínku pro zastavení pokud nechci zadávat data až do konce.
Sub zadání1()
Dim i As Integer
a = 10000
For i = 7 To 26
Cells(i, 3).Select
Cells(i, 3).Value = inputbox("Zadej číslo PP", "Číslo PP", , a, 1)
If Cells(i, 3).Value = 0 Then Exit Sub

Cells(i, 8).Select
Cells(i, 8).Value = inputbox("Zadej počet NH", "Počet NH", , a, 1)
If Cells(i, 8).Value = 0 Then Exit Sub
Next i
End Sub
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3375
Registrován: 24 říj 2008 19:50

Re: Makro v excelu (VBA)

Příspěvek od atari »

Výborně, jen tak dál :thumbup: . Doporučuji však (u projektů které jsou více obsáhlejší) název porměnné místo "a" napsat něco, co popíše tu hodnotu, například "pocet_sekund". Sice to trochu zvětší a znepřehlední kód, ale při ladění kodu s větším množstvím proměnných, to pak pomáhá se v tom lépe orientovat.
xp3
nováček
Příspěvky: 6
Registrován: 22 bře 2017 17:18

Re: Makro v excelu (VBA)

Příspěvek od xp3 »

atari píše:Výborně, jen tak dál :thumbup: . Doporučuji však (u projektů které jsou více obsáhlejší) název porměnné místo "a" napsat něco, co popíše tu hodnotu, například "pocet_sekund". Sice to trochu zvětší a znepřehlední kód, ale při ladění kodu s větším množstvím proměnných, to pak pomáhá se v tom lépe orientovat.

To je rozumné u větších projektů bych pak třeba přemejšlej cože to to "a" vlastně je. V mém případě by název byl "X_pozice_okna" :-)
Zamčeno

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