Nu executa o functie imediat
Nu executa o functie imediat
Buna. Vreau sa adun valorile pentru a,b,c,d
In Modules - Module1 am:
Function Suma(r As Range) As Single
Dim i As Integer
Suma = 0
For i = 1 To 9
If Cells(i, 1).Value = Cells(r.Row, 4).Value Then
Suma = Suma + Cells(i, 2).Value
End If
Next i
End Function
Calculeaza corect, dar nu imediat. Trebuie sa dau dublu click pe E1..E4 si apoi <Enter>
\ A B C D E
1 a 1 * a 10 E1=Module1.Suma(D1)
2 b 2 * b 13 E2=Module1.Suma(D2)
3 a 3 * c 13 E3=Module1.Suma(D3)
4 b 4 * d 9 E4=Module1.Suma(D4)
5 c 5 *
6 a 6 *
7 b 7
8 c 8
9 d 9
Daca modific B3 in 10 in E1 ramine 10. Ca sa obtin 17 trebuie sa dau dublu click pe E1 si apoi <Enter>. Daca uit ... asta e.
Ce gresesc? Exista vreo functie system care sa faca treaba asta? Nu am gasit.
Va multumesc.
In Modules - Module1 am:
Function Suma(r As Range) As Single
Dim i As Integer
Suma = 0
For i = 1 To 9
If Cells(i, 1).Value = Cells(r.Row, 4).Value Then
Suma = Suma + Cells(i, 2).Value
End If
Next i
End Function
Calculeaza corect, dar nu imediat. Trebuie sa dau dublu click pe E1..E4 si apoi <Enter>
\ A B C D E
1 a 1 * a 10 E1=Module1.Suma(D1)
2 b 2 * b 13 E2=Module1.Suma(D2)
3 a 3 * c 13 E3=Module1.Suma(D3)
4 b 4 * d 9 E4=Module1.Suma(D4)
5 c 5 *
6 a 6 *
7 b 7
8 c 8
9 d 9
Daca modific B3 in 10 in E1 ramine 10. Ca sa obtin 17 trebuie sa dau dublu click pe E1 si apoi <Enter>. Daca uit ... asta e.
Ce gresesc? Exista vreo functie system care sa faca treaba asta? Nu am gasit.
Va multumesc.
Re: Nu executa o functie imediat
Nu am testat codul dar ma indoiesc ca functioneaza.
Ce reprezinta r.Row?
Ataseaza un fisier sa vedem despre ce este vorba. Daca codul functioneaza atunci s-ar putea sa ai "calcularea" pe manual.
Ce reprezinta r.Row?
Ataseaza un fisier sa vedem despre ce este vorba. Daca codul functioneaza atunci s-ar putea sa ai "calcularea" pe manual.
Re: Nu executa o functie imediat
@EncyFunction Suma(r As Range) As Single
E destul de alambicat ceea ce ai în cod...
Bănuiesc că îți dorești ca în Ei să ai suma tuturor valorilor din B1:B9 care pentru care valorile din A1:A9 sunt egale cu valoarea din argumentul funcției tale. Pentru aceasta poți utilizat sumif() (nu mai țin minte dacă era în Excel 2003 sau a fost introdusă în 2007).
Încearcă să folosești (dacă este disponibilă funcția) =sumif(A1:A9,criteriu,B1:B9).
Re: Nu executa o functie imediat
Da, am simplificat prea mult problema pe care am prezentat-o. Acolo se putea folosi sumif(), dar problema mea ramine. Nu executa imediat functia mea suma().
Mi s-a cerut sa atasez fisierul excel ceea ce si fac.
Va multumesc
Mi s-a cerut sa atasez fisierul excel ceea ce si fac.
Va multumesc
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: Nu executa o functie imediat
Am observat ca intr-adevar nu se actualiza suma (apropo, nu este necesar sa pui in formula, =module1.suma(D2) ci simplu =suma(D2))
Am pus Application.Volatile in cod si datele s-au actualizat in timp real.
Am pus Application.Volatile in cod si datele s-au actualizat in timp real.