Presentation is loading. Please wait.

Presentation is loading. Please wait.

Funcţii Excel definite de utilizator (FDU) în VBA

Similar presentations


Presentation on theme: "Funcţii Excel definite de utilizator (FDU) în VBA"— Presentation transcript:

1 Funcţii Excel definite de utilizator (FDU) în VBA
Funcţiile definite de utilizator (UDF – User Defined Function) în Excel reprezintă o alternativă personalizată la funcţiile proprii. FDU pot reduce substanţial încărcarea unei foi de calcul. Prin FDU este posibil a se reduce un calcul care necesită numeroase celule pentru rezultate intermediare, la un singur apel de funcţie, efectuat dintr-o singură celulă. FDU pot creşte productivitatea în momentul în care mai mulţi utilizatori trebuie să repete aceleaşi proceduri de calcul. Astfel, se poate defini o bibliotecă de funcţii adaptate utilizării într-un mediu personalizat.

2 FDU: Creare FDU nu pot fi înregistrate ca operaţii manuale (Tools – Macro – Record New Macro) FDU trebuiesc editate (de la zero), utilizând un modul VBE (Tools – Macro – Visual Basic Editor / Alt+F11). Dacă este necesar (dacă nu există în fereastra VBA Project nici un modul predefinit), se poate insera prin comanda Insert Module Principala diferenţă între o procedură VBA de tip sub şi o procedură de tip funcţie, rezidă în faptul că o FDU returnează o valoare. Astfel , numeFDU() calculează o valoare numerică plecând de la variabilele sale declarate ca argumente şi transpune acea valoare într-o celulă în care este editată formula Excel care face apel la funcţia “numeFDU”.

3 Funcţii Definite de Utilizator (funcţii personalizate)
Funcţiile personalizate vor fi editate utilizând un modul VBA (Tools – Macro – Visual Basic Editor / Alt+F11). Inserarea unui modul predefinit în fereastra VBA Project se realizează prin comanda Insert Module Close and Return to Excel / Alt+F11 În Excel, funcţia se editează în mod obişnuit, cu argumentele proprii adrese de celule / nume de câmpuri în loc de variabile.

4 FDU: Exemple: Exemplul 1 Structură If...Then...Else...EndIf Exemplul 2
Structură If ... ElseIf...EndIf Exemplul 3 Structură Select Case ... End Select Exemplul 4 Structură If cu Vlookup

5 If...Then...Else...EndIf

6 If...ElseIf...EndIf

7 If...ElseIf...EndIf =IF(OR(J5="DA";TODAY()<H5);0;
IF((TODAY()-H5)<=30;(TODAY()-H5)*I5*0,3%; IF((TODAY()-H5)<=90;(I5*30*0,3%)+(TODAY()-H5-30)*I5*0,5%; IF((TODAY()-H5)<=180;(I5*30*0,3%)+(I5*60*0,5%)+(TODAY()-H5-90)*I5*0,7%; (I5*30*0,3%)+(I5*60*0,5%)+(I5*90*0,7%)+(TODAY()-H5-180)*I5*1%))))

8 Select Case...End Select

9 Obiecte VBA de tip funcţii (funcţia Vlookup)
IF (Cantitate>Cantitate_discount; Dif_cant*Preţ*(1-Reducere)+Cantitate_discount*Preţ; Cantitate*Preţ)

10 Modul VBA cu funcţia Vlookup

11 Modul VBA cu funcţia Vlookup (Test de existenţă a cheii de consultare)

12 Modul VBA cu funcţia Vlookup

13 FDU: Limite în utilizare
Imposibilitatea de creare a unei funcţii capabile să modifice (sau să se refere la) structura unei foi de calcul. O FDU nu poate să returneze o valoare pentru o altă celulă, nu poate modifica o caracteristică fizică a unei celule (font, culoare) . O FDU nu poate îndeplini acţiuni cum ar fi copierea sau deplasarea conţinutului celulelor, modificarea poziţiei cursorului, etc. O FDU poate apela o altă procedură de tip funcţie (Function) sau subrutină (Sub), dar se supune aceloraşi restricţii structurale. Funcţiile sau procedurile care nu sunt legate de celulele foii de calcul pot executa orice acţiune Excel, numai dacă nu sunt integrate în FDU Utilizând numeroase FDU, timpul de recalcul pentru formulele existente scade.


Download ppt "Funcţii Excel definite de utilizator (FDU) în VBA"

Similar presentations


Ads by Google