< návrat zpět
MS Excel
Téma: Výpočet pomocí VBA
Zaslal/a Pak 8.6.2014 14:28
Ahoj, do sloupců A, B budu zapisovat hodnoty. Ve sloupci C se budou sčítat. A potřeboval bych aby pokaždé když zapíšu hodnoty se sečetly a výsledek se zapsal do buňky, tj. A1+B1=C1 atd. A potřebuju to vyřešit pomocí VBA. Jak na to? Něco jsem pohledal, ale to zapisovalo vzorec a ne hodnotu. Budu tam mít i daleko složitější výpočty a potom mi moc narůstá velikost souboru.
Díky za odpovědi
Příloha: 19859_vzor.zip (6kB, staženo 23x)
dream(8.6.2014 15:36)#019860 Pust si záznamník maker a výsledek si uprav
citovat
huji(8.6.2014 16:32)#019861 Sub Secti()
Dim radek As Long
radek = Cells(65000, 1).End(xlUp).Row
For i = 1 To radek
Cells(i, 3) = Cells(i, 1) + Cells(i, 2)
Next i
End Subcitovat
Opičák(8.6.2014 17:51)#019862 nebo
Sub soucetC_AplusB()
Dim n%
n = 1
While IsNumeric(Cells(n, 1)) And Len(Cells(n, 1)) <> 0
Cells(n, "C") = Cells(n, "A") + Cells(n, "B"): n = n + 1
Wend
End Subcitovat
Pak(8.6.2014 18:09)#019863 Oboje VBA funguje výborně. Jak jsem psal že jsem našel makro co do buněk píše vzorce tak to se spustí pokaždé když se zapíše do sloupce A hodnota, ale nejde mi to na tyhle makra dostat. Prosím lze to udělat i u těchto maker?
citovat
Opičák(8.6.2014 22:42)#019866 Makro musí být spouštěno událostí listu.
Makro ale přepočítává (resp. spouští se ) při každé změně na listu. Nevím o co se jedná, ale je třeba zvážit, zda je vhodné neustále přepočítávat.
Příloha: 19866_vzor1.zip (13kB, staženo 25x) citovat
kp57(9.6.2014 18:27)#019876 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, Range(Columns(1), Columns(2))) Is Nothing Then Exit Sub
Dim n%
n = Target.Row
If Not IsNumeric(Cells(n, 1)) Or IsEmpty(Cells(n, 1)) Then Exit Sub
Application.EnableEvents = False
Cells(n, "C") = Cells(n, "A") + Cells(n, "B")
Application.EnableEvents = True
End Sub
citovat
AL(9.6.2014 22:29)#019878 @kp57
"potřeboval bych aby pokaždé když zapíšu hodnoty"
má sa teda jednať o udalosť Worksheet_Change, nie Worksheet_SelectionChange
Krom toho, prečo testuješ iba hodnotu v stĺpci A a nie i hodnotu v stĺpci B??? Platí i pre opičáka..
citovat
kp57(9.6.2014 23:15)#019879 Jojo, máš pravdu! Bezhlavě jsem zkopíroval kód od Opičáka a toho "Selection" jsem si vůbec nevšiml.
I s tím druhým máš samo taky pravdu.
citovat
Opičák(10.6.2014 8:52)#019880 Testoval jsem jen jednu hodnotu, protože to stačí.
citovat
AL(10.6.2014 10:03)#019881 Testoval jsem jen jednu hodnotu, protože to stačí. Rozumiem, vychádzaš z prílohy OP. Ja som do prílohy nenazeral a tak ma napadlo, že pokiaľ bude napr v A2 nenumerická hodnota a v B2 numerická, tak makro skočí do chyby...
citovat