Excel függvények helyett összegzés VBA-ben ciklus segítségével

Excel függvények helyett összegzés VBA-ben ciklus segítségével
2021-04-14T16:22:26+02:00
2021-04-14T17:44:07+02:00
2022-10-15T21:26:01+02:00
bogdanypeter
Sziasztok!

Lehet, hogy nem a legszebb megoldás, de azt szeretném megoldani a lenti kóddal, hogy ne az excel függvényeit használja, hanem a lenti kóddal összegezze az adatokat. Ha ezt beteszem Worksheet_Change-be, akkor leáll az excel. Kissé tele van a fejem már és nem látom mi lehet a baj! Ha nagyon triviális, elnézést kérek!
A cél az lenne, hogy ha beírok adatokat, a vba kiszámolja és azonnal jelenítse is meg egy cellában az eredményt:

Sub osszesit() Range(Cells(34, 22), Cells(42, 22)).ClearContents For j = 34 To 42 For i = 3 To 42 If Cells(i, 5).Text = Cells(j, 21).Text And Cells(i, 6).Text = "Kész" Then Cells(j, 22).Value = Cells(j, 22).Value + Cells(i, 7).Value / 440 Exit Sub End If If Cells(i, 9).Text = Cells(j, 21).Text And Cells(i, 10).Text = "Kész" Then Cells(j, 22).Value = Cells(j, 22).Value + Cells(i, 11).Value / 440 Exit Sub End If Next Next End Sub
Mutasd a teljes hozzászólást!
Szia!
Mivel Change eseménykezelőbe tetted be, ezért valahányszor a makró megváltoztatja egy cella értékét, azonnal ismét beindul a Change eseménykezelő és így tovább....
Ezt megelőzendő az eseménykezelést le kell tiltani:

Application.EnableEvents=False
a makró elején, majd ne felejtsd el a végén - a kilépés előtt - visszaállítani:

Application.EnableEvents=True
Üdv.
(Ps. Miért nem jó neked, ha munkalap függvényekkel oldod ezt meg? Akkor is azonnal átszámolja az értékeket változáskor.)
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd