Documente Academic
Documente Profesional
Documente Cultură
Examinator:Braniște Rodica
Chișinău 2020
Scopul lucrării:
4.2 De găsit elementul minimal și maximal, suma din diapozonul celuleor A1-A20 și media
aritmetică. Aplicația Excel conține în jur de 400 de funcții predefinite pentru pagina de lucru.
4.3 Scrieți un program ce determină maximul, minimul, media aritmetică și produsul numerelor,
ce se află în diapazonul A1:A10 pe pagina ”Numere”. Înscrieți rezultatele calculelor cu titluri
informative în celulele C2:D5. Rezolvați aceste probleme prin 2 metode.
4.4 Scrieți un program, care din perechea de numere A2 și B2, A3 și B3 ,..., va selecta cel mai
mare și-l va înscrie în coloana D, începînd cu celula D2. Creați un buton pentru ștergerea
rezultatelor din coloanele A,B și D.
Condiții:
• Cantitatea perechilor de numere pentru comparare, dar și însăși numerele trebuie să fie
generate aleator.
• În celulele A1, B1, D1 inscripțiile ”1-ul număr”, ”2-lea număr” și ”Cel mai mare” se
introduc din program.
• Programul începe să se execute prin apăsarea pe buton, creat pe aceeși pagină.
Creați un buton pentru ștergerea rezultatelor din coloanele A,B și D prin orice metodă cunoscută
de voi.
Etapele elaborării:
4.1 Am redenumit ”Sheet1” în ”Numere”. În celulele A1:A20 am generat aleatoriu cu ajutorul
funcțiilor Rnd și Integer Function numere cuprinse între diapazonul (-50;50). Pentru aceasta, am
creat butonul Numere, căruia i-am atribuit subprocedura ”Numere()”. Am creat foile de lucru cu
denumirea Pozitive și Negative.
La fel am creat butoanele cu atribuirea subprocedurilor după cum urmează:
Butonul ”Curăță Numere” - Public Sub Sterge_Numere()
Butonul ”Cantitatea” – Public Sub Cantit()
Butonul ”Mutare” - Public Sub Mutare()
Butonul ”Golire Calcule” - Public Sub Golire_Calcule()
4.2 Am creat butonul ”Min, Max, Med, Suma - Met1” care va identifica minimul și maximul și
va calcula suma și media numerelor din diapazonul A1:A20. Rezultatele vor fi afișate în celulele
C5:C9. Pentru butonul respectiv am scris în VBA subprocedura Public Sub
min_max_med_prod().
„Screenshot-ul paginii Numere după ce facem click pe butonul Min,Max,Med,Suma-Met1”
4.3 Am creat butonul ”Min, Max, Med, Prod - Met2” ,care va identifica minimul și maximul și
va calcula produsul și media numerelor din diapazonul A1:A10. Rezultatele vor fi afișate în
celulele C13:C17. Pentru butonul respectiv am scris în VBA subprocedura Public Sub
min_mex_med_prod_V2().
4.4 Am creat foaia de lucru Perechi. Am scris subprocedura Sub Perechi_numere() în VBA
pentru generarea în coloana A și B unui număr aleator de perechi (între 6 și 20) de numere
întregi (între -50 și 50). Creez butonul ”Generare perechi”, cărui îi atribui subprocedura Sub
Perechi_numere().
Creez butonul ”Curăță Pagina” căruia îi atribui subprocedura Sub Curata_Pagina().
În colona D, începînd cu celula D2 se va afișa numărul maxim din perechea de pe același rînd.
„Screenshot-ul paginii Perechi după ce facem click pe butonul Generare Perechi”
Dim I As Integer
Dim min As Integer, max As Integer, sum As Integer
Dim med As Double, prod As Double
sum = 0
prod = 1
min = Sheets("Numere").Cells(1, 1)
max = Sheets("Numere").Cells(1, 1)
For I = 1 To 20
If Sheets("Numere").Cells(I, 1) < min Then
min = Sheets("Numere").Cells(I, 1)
End If
med = sum / 20
With Sheets(1)
Range("C6") = "Elem. Minimal"
Range("D6") = min
Range("C7") = "Elem. Maximal"
Range("D7") = max
Range("C8") = "Media Elem."
Range("D8") = med
Range("C9") = "Suma Elem."
Range("D9") = sum
End With
Dim R1 As Range
Set R1 = Sheets("Numere").Range("C5:C10")
With R1
.Font.Italic = True
.Font.Color = RGB(0, 0, 128)
End With
End Sub
Dim R1 As Range
Set R1 = Sheets("Numere").Range("C13:C17")
With R1
.Font.Italic = True
.Font.Color = RGB(30, 144, 255)
End With
End Sub
Sheets("Pozitive").Range("C1:C21").Clear
Sheets("Negative").Range("C1:V1").Clear
nr_celula_poz = 2
nr_celula_neg = 4
Sheets("Pozitive").Cells(1, 2) = "Nr.Pozitive"
Sheets("Negative").Cells(1, 3) = "Nr.Negative"
Sheets("Pozitive").Cells(1, 2).Font.Color = RGB(115, 115, 115)
Sheets("Negative").Cells(1, 3).Font.Color = RGB(115, 115, 115)
For I = 1 To 20
Next I
End Sub
Public Sub CantPozNeg()
Rem Declararea variabilelor
Rem Pol - Variabila pentru calcularea cant. numerelor pozitive
Rem Otr - Variabila pentru calc. cant. numerelor negative
Rem Nul - Variabila pentru calc. cant. numerelor nule
Dim I As Integer, Pol As Integer, Otr As Integer, Nul As Integer
Rem Anularea variabilelor
Pol = 0
Otr = 0
Nul = 0
Rem Deschiderea ciclului pentru num?rarea numerelor
For I = 1 To 20
If Sheets("Numere").Cells(I, 1) > 0 Then
Pol = Pol + 1
ElseIf Sheets("Numere").Cells(I, 1) < 0 Then
Otr = Otr + 1
Else
Nul = Nul + 1
End If
Next I
Rem ?nscrierea pe pagina "Numere" rezultatul calculelor
With Sheets("Numere")
.Range("C1") = "Cantitatea +"
.Range("D1") = Pol
.Range("C2") = "Cantitatea -"
.Range("D2") = Otr
.Range("C3") = "Cantitatea 0"
.Range("D3") = Nul
End With
End Sub
Modulul Generare_Numere
Modulul Perechi
Sub Perechi_numere()
Dim I As Integer
Sheets("Perechi numere").Cells(1, 1) = "1-ul numar"
Sheets("Perechi numere").Cells(1, 2) = "2-lea numar"
Sheets("Perechi numere").Cells(1, 4) = "Cel mai mare"
Randomize Timer
randnum = Int(6 + Rnd * (20 - 2 + 1)) 'randnum - nr aleatori de perechi formate
For I = 2 To randnum
Sheets("Perechi numere").Cells(I, 1).Value = Int(Rnd * 100) - 50
Sheets("Perechi numere").Cells(I, 2).Value = Int(Rnd * 100) - 50
Next I
For I = 2 To randnum
If Sheets("Perechi numere").Cells(I, 1).Value > Sheets("Perechi numere").Cells(I, 2).Value Then
Sheets("Perechi numere").Cells(I, 4).Value = Sheets("Perechi numere").Cells(I, 1).Value
Else
Sheets("Perechi numere").Cells(I, 4).Value = Sheets("Perechi numere").Cells(I, 2).Value
End If
Next I
End Sub
Sub Curata_Pagina()
Sheets("Perechi Numere").Cells.Clear
End Sub
Concluzii:
În urma realizării lucrării de laborator am învățat cum se declară și se apelează funcțiile în
VBA, structura subrutinei și instrucțiunile simple utilizate în VBA și despre cum se pot modifica
proprietățile obiectelor la etapa de proiectare și de executare. Am ănvățat despre funcția RND de
generare a numerelor aleatorii, cît și despre funcțiile VBA pentru calcularea sumei, mediei
aritmetice, a produsului unor numere, dar și pentru aflarea maximului și minimului dintr-un
vector.