IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Rada VisualBasic v Excel

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Maros2470
Člen
Avatar
Maros2470:14.6.2018 7:11

Sčítání buněk v Excel pomocí Makra

Zkusil jsem: Zkoušel jsem to počítat přímo v Excel, ale mám tam pořád cyklický vzorec

Chci docílit:

Jelikož Visual Basic neovládám prosím o radu.
Mám v Excel skladovou kartu, v ní sloupec A zůstatek, B nákup, C výdej.
Potřeboval bych makro: A = A+B-C a po výpočtu B=0, C=0. Ideálně pro všechny řádky sloupce.
Můžete mi někdo poradit?
Díky

Editováno 14.6.2018 7:13
 
Odpovědět
14.6.2018 7:11
Avatar
Odpovídá na Maros2470
Michal Štěpánek:14.6.2018 8:07

V Excelu nemůžeš mít vzoreček A=A+B, protože se ti to tím zacyklí. Vzoreček v Excelu musí dělat početní operace vždycky na jiných buňkách, než kde bude výsledek. Takže bude třeba udělat další sloupce. Ale Excel vše počítá automaticky a rovnou, tak nemůžeš mít po provedení výpočtu vstupní buňky "nulové", protože by se výsledek vynuloval taky.

Nahoru Odpovědět
14.6.2018 8:07
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Miroslav Hrdý:14.6.2018 8:27

Ahoj, tady to máš, ale bacha, jakmile to jednou pustíš, data jsou pryč - změněna, takže pustit na XLS kopii.
Ke stažení ZDE: https://drive.google.com/…Ub1KSW5/view?…

Sub Pocitej()
Dim KolikRadku As Integer
Dim A, B, C As Integer
KolikRadku = InputBox("Zadej počet řádků pro kalkulaci:")
Range("A1").Ac­tivate
ActiveCell.Of­fset(1, 0).Activate
For i = 1 To KolikRadku
A = ActiveCell.Value
ActiveCell.Of­fset(0, 1).Activate
B = ActiveCell.Value
ActiveCell.Of­fset(0, 1).Activate
C = ActiveCell.Value
A = A + B - C
ActiveCell.Value = 0
ActiveCell.Of­fset(0, -1).Activate
ActiveCell.Value = 0
ActiveCell.Of­fset(0, -1).Activate
ActiveCell.Value = A
ActiveCell.Of­fset(1, 0).Activate
Next
End Sub

 
Nahoru Odpovědět
14.6.2018 8:27
Avatar
Maros2470
Člen
Avatar
Odpovídá na Miroslav Hrdý
Maros2470:14.6.2018 9:25

Něco jsem vygooglil a změnil jsem koncepci, Použil jsem form pro nákup a výdej. Vše mi funguje, jen bych potřeboval vytvořit vyhledávání v Column 0 v listboxu. Do návrhu formu jsem přidal SearchTextBox pro zadání hledané hodnoty a tlačítko SearchButon pro spuštění hledání. Přikládám dosavadní výsledek http://leteckaposta.cz/189210249. Můžeš mi poradit jak s tím vyhledáváním?

 
Nahoru Odpovědět
14.6.2018 9:25
Avatar
Miroslav Hrdý:14.6.2018 12:40

Asi bych tam přidal něco takového:

for f = 0 to listbox1.listcount - 1

if listbox.list(f, 0) = co_hledam.....
' co se stane, když najdu
end if
next

pozn. v proměnné f index řádku a druhý parametr, v tomto případě 0 je sloupec

 
Nahoru Odpovědět
14.6.2018 12:40
Avatar
Tarantula222
Člen
Avatar
Tarantula222:14.6.2018 23:13

Pridal som ti vyhľadávanie a trocha upravil pôvodný kód lebo bol strašný ;-), vyskúšaj.
http://leteckaposta.cz/358144829

Nahoru Odpovědět
14.6.2018 23:13
Chceš realizovat své sny? Probuď se!
Avatar
Maros2470
Člen
Avatar
Odpovídá na Tarantula222
Maros2470:15.6.2018 4:28

Díky, ale nejde mi to stáhnout. Zkus mi to poslat na maros2470@seznam.cz.

 
Nahoru Odpovědět
15.6.2018 4:28
Avatar
Tarantula222
Člen
Avatar
Tarantula222:15.6.2018 4:44

Mne to stiahnuť ide, každopádne som ti to poslal na mail.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
15.6.2018 4:44
Chceš realizovat své sny? Probuď se!
Avatar
Maros2470
Člen
Avatar
 
Nahoru Odpovědět
15.6.2018 15:14
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.