lectia2_vba

Upload: tefanius-florian-voica

Post on 03-Jun-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 Lectia2_VBA

    1/29

    Motto

    Isi uita nevoile vechi pentru amplini lipsuri noi

    Grigore Moisil

  • 8/11/2019 Lectia2_VBA

    2/29

    Lectia 2

    Concepte din Programarea Orientata Pe Obiecte

    aplicate Documentelor Word, Foilor De Calcul

    Excel si diapozitevelor Power Point

    Scopul utilizarii limbajului de programare VBA

    este acela de a: scrie programe cu care :a ) sa controlam comportarea obiectelor Excel

    b) sa realizam aplicatii complexe in diverse domenii

    de activitate.

    Programul este o multime ordonata de

    instructiuni.

    Instructiunea defineste o actiune ; conform

    regulilor de sintaxa al limbajului de programare se

    comanda sistemului de calcul sa execute o

    instructiune.

    Algorimul este un sistem de reguli care conduce

    de la informatia initiala la o solutie cuajutorul unor Operatii:

    succesive

    ordonate

    unic determinate.

    Algorimul are ca forma de reprezentare : limbajul pesudocod

    2

  • 8/11/2019 Lectia2_VBA

    3/29

    schema logica

    Obiectul este o entitate din lumea reala avand

    limite precise si un sens prcis in contextul

    problemei studiate1.

    Entitatea

    Un program (aplicatie) reprezinta o secventa de

    actiuni (operatii) care se executa asupra unor entitati

    (valori sau obiecte).

    Altfel spus un program (aplicatie in vba) constaintr-un set de instructiuni prin intermediul carora se

    transmite calcultorului :

    ce operatii sa efectueze

    in ce ordine

    si asupra caror obiecte trebuie sa actioneze.

    Limbajul de programare VBA imbina utilizareaobiectelor cu posibilitatile folosirii tehnicii avansate

    de programare ( modularizare, structurare, folosirea

    instructiunilor de control a secventei de executie).

    Limbajul de programare stabileste ce entitati pot

    fi prelucrate si in ce fel anume, dar si modul in care

    trebuie sa fie descrise atat entitatile, cat si actiunile.

    Din punctul de vedere al programatorilorun

    obiecteste o multime dedateplus o serie de operatii

    (metode) care manipuleaza datele2.

    5.1.Obiecte si colectii

    1Popa Gheorghe, Iliescu Matei- Visual Basic-Editura Cison-20022Anton Cerchizan

  • 8/11/2019 Lectia2_VBA

    4/29

    Obiect este orice entitate pe care o putem

    controla cu ajutorul limbajului Visual Basic. Obiecte

    sunt elementele constitutive ale Excel, dar si ceea ce

    putem construi cu ajutorul sau. Visual Basic

    defineste aceste proceduri.

    Obiectul de baza cu care opereaza Excel se numeste

    Application,acesta contine valorile parametrilor si

    optiunilor de lucru (stabilite prin intermediul

    comenzii Options din meniul Tools).

    Exemplu : ActiveCell, ActiveSheet,ActiveDialog.ActiveWorkbook, etc.

    Obiectele foii de lucru : randuri, coloane, domenii de

    celule, celule, obiecte grafice.

    5.2. Utilizarea obiectelor

    Obiectele au anumite trasaturi specifice care lecaracterizeaza si pe care le numim proprietati.

    Proprietatilereprezinta atribute ale obiectelor,care descriu aspectul, starea sau comportarea

    acestora.

    Pentru obiectul Workbookcele mai semnificative

    sunt : Name, PrecisionAsDisplayed,

    ReadOnly, Saved sau

    pentru obiectul Worksheet sunt: Name, Next,

    Previous, Type, Visible etc.

    Obiectele sunt caracterizate si prin actiunile pe

    care pot sa le efectueze, actiuni numitemetode.

    !

  • 8/11/2019 Lectia2_VBA

    5/29

  • 8/11/2019 Lectia2_VBA

    6/29

    Sub VizInviz ()

    ActiveWorkbook.Worksheets(1).Visible = True

    ActiveWorkbook.Worksheets(Sheet3).Visible = FalseEnd Sub

    Pentru ca sa preluam valoarea unei proprietati

    folosim urmatoarea sintaxa :

    variabila = obiect.proprietate

    unde :

    variabila - este variabila in care se va pastra

    valoarea citita din proprietate

    obiect - este o referinta la un obiect (eventual

    incluzand recipientii sai)

    proprietate - este numele unei proprietati a

    obiectului.

    Pentru ca sa preluam, de exemplu, numele unei

    foi de lucru, ca un sir de caractere si pentru ca sa-lafisam intr-o caseta pentru dialog predefinita folosim

    proprietatea Name si functia MsgBox() :

    Sub AfiseazaNume()

    Dim NumeFoaie As String

    NumeFoaie = ActiveSheet.Name

    MsgBox Numele foii de lucru este & NumeFoaie

    End Sub

    Valoarea unei proprietati o putem folosi in

    expresii complexe, in mod asemanator folosirii

    variabilelor sau functiilor.

    Cum punem obiectele la lucru ?

    #

  • 8/11/2019 Lectia2_VBA

    7/29

    Pe langa proprietati , obiectele aumetode. Acestea

    stabilesc actiunile pe care le poate executa obiectul sicare pot sa afecteze starea unor proprietati ale

    acestuia. Argumentul, spre deosebire de proprietati

    care primesc sau returneaza o singura valoare, pot sa

    primeasca si mai multe valori de lucru. Pentru

    folosirea metodelor intr-o procedura exista trei

    situatii posibile:

    a)daca metoda apelata nu primeste argumente,

    folosim sintaxa urmatoare:

    obiect.metodaExemplu:

    Sub EliminaFoaie()

    ActiveWorkbook.Worksheets(Sheet3).DeleteEnd Sub

    Sub CopiazaButon()

    ActiveSheet.Buttons(1).Copy

    End Sub

    b)daca metoda primeste o lista cu argumente, dar

    nu dorim sa salvam valoarea returnata demetoda, separam numele metodei de lista de

    argumente cu spatiu, iar argumentele prin

    separatorul de lista :

    obiect.metoda lista_argumente

    Exemplu :

    Se foloseste metoda Move pentru mutarea foii

    Sheet3 din mapa activa inaintea foii Sheet1 din mapa

    $

  • 8/11/2019 Lectia2_VBA

    8/29

    CP1.XLS si metoda Copy, pentru copierea foii Sheet1

    dupa foaia Sheet9 din mapa CP2.XLS.Se foloseste

    numele argumentelor before si after si separarea lor

    de argumentul propriu-zis prin operatorul :=

    Sub MutaFoaie()

    ActiveWorkbook.Worksheets(Sheet3).Move_

    before := Workbooks(CP1). Worksheets(Sheet1)

    End Sub

    c)daca folosim valoarea returnata de metoda, esteobligatorie introducerea listei de argumente

    intre paranteze :

    variabila = obiect.metoda(lista_argumente)

    unde : obiect -este o referinta la un obiect

    (eventual incluzand numele recipientilor sai)

    metoda -numele metodei folosite

    lista_argumente lista argumentelor

    despartite intre ele prin separatorul de lista

    Argumentele pot sa fie precizate in doua feluri :

    caargumente conventionale, caz in care esteimportanta ordinea din lista, iar Visual Basic

    le interpreteaza in functie de aceasta)

    sau caargumente cu nume(cand ordinea nu

    este importanta, iar identificarea numelui se

    face pe baza numelui indicat)

    %

  • 8/11/2019 Lectia2_VBA

    9/29

  • 8/11/2019 Lectia2_VBA

    10/29

    In Visual Basic declararea unei variabile se face prin

    intermediul instructiunilor Public.Private.Static sau

    Dim:

    {Public|Private|Static|Dim} nume_variabila [As

    tip_date}[.]

    Variabilele de tip Variant este o variabila de tip

    special care se aseamana din punctul de vedere al

    memorarii datelor unei celule dintr-o foaie de lucru.Ambele pot sa contina numere, siruri, date

    calendaristice, referinte, etc.

    Sub DeterminTip()

    Dim Var X(10) As Integer

    Dim Cod As Integer, Tip As String

    Var = #11-11-1995# Cod = VarType(Var) Returneaza: 7

    Tip = TypeName(Var) Returneaza : Date

    Cod = VarType (X) Returneaza: 8194=8192(tablou)+2(de

    intregi)

    Tip = TypeName(X) Returneaza: Integer

    End Sub

    Intr-o variabila Variant putem sa memoram si altetipuri de informatii ca:

    -valoarea Empty- este interpretata ca zero sau sir

    nul in functie de context

    -valoarea Null- indica valori necunoscute sau lipsa.

    Valoarea Null se propaga in expresii

    -valoarea Error reprezinta coduri de eroare definite

    de utilizator

    10

  • 8/11/2019 Lectia2_VBA

    11/29

    Proceduri. Se declara explicit o constanta si o

    variabila locala de tip Integer, respectiv Single intr-o

    procedura :

    Sub Calcul()

    Const LIMITA_MAX As Integer = 16

    Dim SumaTotala As Single

    ...

    End Sub

    Aceste constante /variabile poarta numele de

    constante sau variabile de modul.Prin combinarea mai multor variabile putem obtine

    un tip de date definite de utilizator (exemplu :

    inregistrarea atributelor entitatii Angajati :Type Angajati

    Marca As Integer

    Nume As String * 15

    Prenume As String * 10 DataNasterii As Date

    SalariuBaza As Integer

    DataAngajarii As Date

    Casatorit As Boolean

    Copii As Integer

    End Type

    Function CalculSalariu(ProcentIndexare As Single) As Single

    Dim Angajat1 As Angajati

    Dim MarcaAngajat As Integer, SalBaza As Single

    MarcaAngajat = Angajat1.Marca

    SalBaza = Angajat1.SalariuBaza

    SalBaza = SalBaza * (1 + ProcentIndexare / 100)

    Angajat1.SalariuBaza = SalBaza

    If Angajat1.Copii0 Then

    .

    End If

    11

  • 8/11/2019 Lectia2_VBA

    12/29

    End Function

    Operatori pentru siruri de caractere:

    & concatenare (adauga al doilea sir la

    sfarsitul primului)

    Like similitudine (verifica daca sirul al doilea

    se gaseste in cadrul primului)

    5.3. Enunturile VBA

    UnenuntVisual Basic este o constructie careintroduce o declaratie, o definitie sau o actiune.

    Enunturile trebuie sa respecte, in intregime, o

    anumita sintaxa ceruta de limbaj.

    Declaratiilesunt enunturi care anunta intentiade a folosi variabile cu anumite caracteristici (nume,

    tip de date, valori initiale).

    Definitiile permit introducerea constantelor

    simbolice sau a unor elemente de structurare si demodularizare a programelor care se numesc

    proceduri.Enunturile care descriu o actiune poarta

    numele deinstructiuni.Dintre instructiunile VisualBasic prezentam urmatoarele:

    12

  • 8/11/2019 Lectia2_VBA

    13/29

    a) instructiunea de atribuireprin care

    valoarea unei expresii este memorata intr-o

    variabila.

    Sintaxa unei instructiuni de atribuire este

    urmatoarea:

    [Let] variabila = expresie

    b) in legatura cu stabilirea valorii unei

    proprietati sau cu executia unei metode aunui obiect se prezintainstructiunea With :

    With obiect

    [secventa_instructiuni]

    End With

    unde:

    o obiect - este numele obiectului sau al

    variabilei de un tip de date definit de

    utilizator asupra caruia (careia) se va

    actiona in secventa de instructiuni din

    interiorul instructiunii Witho secventa_instructiuni este secventa de

    instructiuni prin care se va actiona asupra

    obiectului sau a variabilei de un tip de

    date definit de utilizator, fara sa mai fie

    necesara nominalizarea repetata a acestuia

    (acesteia).

    1

  • 8/11/2019 Lectia2_VBA

    14/29

    Function FormatCelula()

    With Application.Cells(1, 1)

    Font.Name = Verdana

    Font.Bold = True Font.Size = 12

    Value = 0,23

    End With

    End Function

    Function Imbricare()

    Dim obj As Object

    Set obj = Asociem variabila cu un obiect

    With obj

    Height = 100 Identic cu obj.Height = 100

    Caption = BilantIdentic cu obj.Caption = Bilant

    With. Font

    Color = RE Identic cu obj.Font.Color = Red

    Bold = True Identic cu obj.Font.Bold = True

    End With

    End With

    End Function

    c) daca un enunt nu incape intr-o linie

    putem sa-l continuam pe linia urmatoare prin

    plasarea caracterului de continuare, pe ultima

    pozitie a liniei curente. Aceste se compune dintr-un

    caracter spatiu ( ), urmat de caracterul subliniere

    (_).

    Procedurilesunt elemente folosite in Visual Basicpentru modularizarea programelor. Visual Basic

    accepta doua tipuri de proceduri:

    Sub si

    Function;

    1!

  • 8/11/2019 Lectia2_VBA

    15/29

    diferenta dintre le fiind faptul ca procedurile

    Function pot sa returneze o valoare.

    Procedurile sunt constituite din urmatoarele parti:

    marcajele de inceputsisfarsitsunt realizate cu

    instructiunile Sub si End Sub respectiv

    Function si End Function

    parametrii formalisunt separati prin virgula.

    Rolul acestora este de a receptiona, la apelul

    procedurii, valorile de lucru(argumente) corpul procedurii care este alcatuit din

    instructiunile care determina actiunile efectuate

    de procedura

    Definirea procedurilor

    oPrivate este plasat inaintea instructiunii Sub,daca dorim ca procedura sa fie accesibila

    numai celorlalte proceduri din modulul in

    care a fost definita.

    oPublic- este plasat inaintea instructiunii Sub,

    daca dorim ca procedura sa fie accesibila

    tuturor procedurilor din toate modulele

    oStatic- este folosit in cazul in care dorim sa

    pastram valorile tuturor variabilelor locale

    intre cele doua apeluri ale procedurii. El

    trebuie plasat inaintea instructiunii Sub.

    Sub CalculSuprafata (ByVal Raza As Single)

    Dim Suprafata As Double Variabila locala If Raza < 0 Then Test argument

    1"

  • 8/11/2019 Lectia2_VBA

    16/29

    Exit Sub Abandon daca este incorect

    End If

    Suprafata = 3,14 * Raza 2 Calcul suprafata cerc

    Debug.Print Suprafata Afisarea rezultatuluiEnd Sub

    Organizarea si accesarea foilor pentru module

    In Excel procedurile le pastram sunt

    pastrate in foi speciale, numitefoi pentru modulesaupe scurtmodule. Acestea sunt create si introduse in

    mapa activa prin executia subcomenzii Module acomenzii Macro, din meniul Insert.

    Un modul este alcatuit din :

    tipuri de date definite de utilizator,

    din structuri de date (constante, variabile,

    tablouri) si

    din proceduri.

    Organizarea sistematica a unui modul este

    importanta pentru ca usureaza intelegerea intentiilor

    proiectantului si simplifica munca de intretinere. De

    aceea, este bine sa grupam procedurile, care

    contribuie la rezolvarea fiecarei sarcini mai complexe,

    in module separate.

    In cadrul unui modul, recomandam urmatoarea

    organizare :

    la inceput o explicatie globala asupra scopului

    modulului

    1#

  • 8/11/2019 Lectia2_VBA

    17/29

    continuam cu declaratii pentru : optiuni Visual

    Basic, constante, variabile si tipuri de

    datedefinite de utilizator

    definim procedurile, precedate de comentarii

    care sa prezinte interfata (parametrii si valoare

    returnata) si sa explice actiunile efectuate

    Folosind mecanismul de apel al procedurilor

    putem sa executam proceduri din acelasi modul

    cu apelantul din aceeasi mapa sau din alte mape.

    In cazul in care apelam o procedura dintr-un altmodul, va trebui sa indicam numele modulului

    (intre paranteze drepte) si numele procedurii,

    separate printr-un punct.

    Daca dorim sa folosim procedura Prelucrare() de

    tip Function, din modulul Modul_Calcul, folosim o

    constructie de felul urmator :Sub Calcule()

    Var = [Modul_Calcul].Prelucrare(Arg1, Arg2)

    End Sub

    Executia unei proceduri definite intr-o alta

    mapa este posibila numai dupa ce stabilim oreferintadin Visual Basic la mapa respectiva.Dupa stabilirea referintei, modulele si procedurile

    mapei sunt puse la dispozitia Visual Basic si deci

    vor fi accesibile.

    Pentru stabilirea unei referinta la o alta mapa :

    1.Salvam mapa cu care dorim sa stabilim referinta,

    1$

  • 8/11/2019 Lectia2_VBA

    18/29

    daca nu a fost salvata deja (mapa tinta)

    2.Selectam mapa sursa a referintei

    ' Selectam un modul Visual Basic si execum

    comanda References, din meniul Tools

    !' In caseta pentru dialog References, selectam

    numele mapei tinta in caseta Available References,

    iar daca numele nu apare in lista, actionam

    butonul Browse, pentru a-l cauta si include in lista5.Selectam caseta de control din dreptul numelui

    mapei tinta , daca nu a fost deja selectata.

    6.Actionam butonul OK

    5.4 . Apelarea functiilor Excel din VBA

    Aplicaiile din suita Office au ca limbaj de

    programare (sau de scripting) nativ Visual Basic for

    Applications (VBA). Acesta este un dialect specializat

    al limbajului Visual Basic de la Microsoft. VBA pune

    la dispoziia programatorului un set de obiecte,

    metode, proprieti i funcii care permit efectuarea

    unor prelucrri complexe asupra documentelor

    Office. De asemenea, cu ajutorul lui VBA se pot crea

    forme (cu majoritatea elementelor de interactivitate

    disponibile n Visual Basic) pentru automatizarea

    generrii sau prelucrrii documentelor, dar i pentru

    realizarea schimbului de informaii cu alte aplicaii.

    Functiile Excel sunt in marea lor parte disponibile si

    1%

  • 8/11/2019 Lectia2_VBA

    19/29

    la scrierea codurilor VBA. Unele dintre acestea nu-si

    gasesc utilitatea in V.B.A. deoarece Visual Basic

    ofera operatori specifici ce au acelasi efect ca functiile

    Excel.

    Obiectul WorksheetFunction este utilizat caelement intermediar in apelarea functiilor Microsoft

    Excel specifice foii de lucru care pot fi apelate de

    Visual Basic. Functiile predefinite din VBA nu se

    utilizeaza alaturi deWorksheetFunctionchiar daca auaceeasi denumire cu functii din Microsoft Excel.

    De exemplu Application.WorksheetFunction.Log

    va returna alta valoare decat Log. Exemplul urmator

    prezinta modul de apelare a functiei Max dintr-o

    macroinstructiune:

    Sub Maximum()

    Dim K As Range

    Set K = Worksheets(sheet1).Range(C1:C23)

    Maxim =Application.WorksheetFunction.Max(K)

    MsBox (Maximul este & maxim)

    End Sub

    5.5. Obiecte Excel

    5.5.1.Obiectul Application

    VBA foloseste obiectul Application pentru a face

    referire la programul Excel. Fiind elementul din topul

    ierarhiei de obiecte, prin intermediul obiectului

    Application, folosind notatia cu punct se pot accesa

    toate obiectele situate pe trepte inferioare. Obiectul

    1&

  • 8/11/2019 Lectia2_VBA

    20/29

    Application are o multitudine de proprietati si

    metode. Cele mai utilizate proprietati si metode ale

    obiectului sunt explicate in tabelele urmatoare :

    Tabel1 Proprietatile obiectului Aplication

    Proprietate Descriere

    ActiveCell Permite referirea la celula activa

    ActiveSheet Permite referirea la foaia de calcul activa

    ActiveWindow Permite referirea la fereastra activa

    Active WorkBook Permite referirea la fisierul Excel deschis (in

    cazul in care sunt deschise mai multe fisiere

    simultan referirea se face la fisierul la care se

    lucreaza)

    Caption Stabileste textul afisat in bara de comanda a

    ferestrei Excel

    StatusBar Stabileste textul ce va fi afisat in bara de stare

    a aplicatiei

    WorkBooks Permite referirea la colectia registrelor de calculdeschse intr-un anumit moment

    Tabel 2 Metodele obiectului Aplication

    Metoda ActiuneActivateMicrosoftApp Lanseaza in executie o alta aplicatie Office

    FindFile Afiseaza casetaOpenin scopul deschideriiunui fisier

    Quit Are acelasi efect ca apelarea meniului File-

    Exit

    Undo Are acelasi efect ca apelarea meniului File-

    Undo

    Run Executa o comanda macro

    5.5.2. Obiectul WorkBook

    20

  • 8/11/2019 Lectia2_VBA

    21/29

    Obiectele WorkBook sunt grupate in colectia

    Workbooks si reprezinta registrele de calcul deschisein Excel. Pentru a face referire la un obiect din

    colectia Workbooks putem folosi una dintre formele:

    Workbooks(nume fisier) sau

    Workbooks(indice numeric)3

    De exemplu comandaWorkbooks(Evidenta

    studenti).Save are ca efect salvarea modificarilor din

    registrul de clacul respectiv. Daca se doreste referirea

    la registrul de calcul activ comanda anterioara se

    poate scrie si astfel: Activeworkbook.Save. Obiectul

    raspunde la un set complex de evenimente (Open,Close, BeforeClose, SheetCalculate) permitand

    realizarea unor secvente de cod extrem de utile.

    Tabelul urmator prezinta cateva din proprietatile

    disponibile :

    Tabel 3 Proprietatile obiectului WorkBook

    Proprietate Descriere

    ActiveSheet Permite referirea la foaia de calcul activa

    Path Returneaza calea completa spre fisierul

    Excel

    Sheets Permite referirea la intrega colectie de foi de

    calcul a fisierului

    Indicele nu(eric este alocat in colectie in ordinea in care )isierele au )ost create

    21

  • 8/11/2019 Lectia2_VBA

    22/29

    Names Returneaza colectia de nume definite in

    registrul de calcul

    Run Executa o comanda macro

    Private Sub Workbook_Open()

    Urmatoarea procedura are ca efect afisarea lunii curente intr-o caseta

    de tip MsgBox in momentul deschiderii fisierului

    MsgBox Suntem in ziua luna& Month (Now())

    End Sub

    5.5.3. Colectia WorkSheets

    Un fisier Excel poate contine mai multe foi de

    calcul. Un obiect Worksheet reprezinta o anumita

    foaie de calcul din cadrul colectiei WorkSheets4

    cuprinde toate foile registrului. Cateva dintre

    proprietatile disponibile sunt prezentate in tabelul 4

    (Tabel 4 Proprietatile colectiei WorkSheets).Obiectul dispune de cateva metode des utilizate

    precum cele exemplificate mai jos :

    Sub Exemplu()

    listarea la imprimanta a foii de calcul

    Application.Worksheets (Balanta de verificare).PrintOut

    stergerea unei foi de calculApplication.Worksheets(Balanta provizorie).Delete

    End Sub

    !Alaturi de colectia *or+heets eista si colectia heets' .i)erenta consta in )aptul ca

    pri(a este incorporata in cea de-a doua care (ai contine si gra)icele /colectia Charts

    22

  • 8/11/2019 Lectia2_VBA

    23/29

    Tabel 4 Proprietatile colectiei WorkSheets

    Proprietate Descriere

    Cells Face referire la toate celulele foii de calculColumns Face referire la colectia coloanelor foii de

    calcul

    Range Returneaza un obiect de tip Range (un camp

    de celule al foii de calcul)

    Rows Face referire la colectia liniilor din foaia de

    calcul

    Visible Stabileste vizibilitatea sau ascunderea foii de

    calcul respective

    5.5.4.Obiectul Range

    Refera o celula sau o plaja de celule. Pozitia

    acestui obiectnierarhia de obiecte Excel :

    Modul de utilizare al obiectului esteRange (Adresa / Plaja adrese) .Daca nu se indica oanumita foaie de calcul se considera foaia de calcul

    curenta. Exemplu : Range(1)refera celual A1,Range(A2 :B2)refera plaja de celule A2 :B2,Worksheets (Sheet2).Range(A28) refera celula A28de pe foaia de calculSheet2 etc.

    Tabel 5 Proprietatile obiectului Range

    Proprietate Descriere

    Adress Returneaza adresa celulei sau a plajei de celule

    referite de un obiect Range

    Column Numarul primei coloane din adresa /plaja de

    adrese referite de un obiect Range

    Row Numarul de celule din adresa/plaja de adresereferite de un obiect Range

    2

  • 8/11/2019 Lectia2_VBA

    24/29

    Formula Stabileste formula continuta de o celula/plaja

    de celule de un obiect Range

    MegeCells Uneste mai multe celule (True) intr-una singura

    sau anuleaza unirea acestora (False)

    Value Stabileste valoarea continuta de celula sau

    plaja de celule referita de un obiect Range

    WrapText Continutul unei celule/plaje de celule va fi scris

    pe mai multe randuri

    Tabel 6 Metodele obiectului Range

    Metoda Descriere

    Union Uneste mai multe zone referite de mai multe

    obiecte Range intr-unul singur

    Clear Goleste continutul celulelor referite de un obiect

    Range

    Copy Copiaza in ClipBoard continutul celulelor referite

    de un obiect Range

    Delete Sterge celulele referite de un obiect RangeSelect Selecteaza celulele referite de un obiect Range

    UnMerge Anuleaza unirea mai multor celule intr-una

    singura

    Exemplu de utilizare a obiectului Range :Sub Exemplu_Range()

    Dim Zona As Range, Z1 As Range, Z2 As Range, Z3 As Range

    Set Zona = Range(A1 :B10)Afisare adresa plajei de celule

    MsgBox Adresa: & Zona.Address

    Prima coloana din plaja de celule

    MsgBox Prima coloana: & Zona.Column

    Afisare numar celule

    MsgBox Numar celule: & Zona.Count

    Unire celule intr-una singura

    Range(A20:A40).MergeCells =True

    Scriere pe mai multe randuriRange(C20:D40).WrapText =True

    2!

  • 8/11/2019 Lectia2_VBA

    25/29

    Stabilirea unei valori

    Range (D10 :E20).Value = 10000

    Introducerea unei formule

    Range (F10:G20).Formula = = d10+d11

    Anularea unirii zonei a20:a40

    Range (A20:a40).UnMerge

    Set Z1 =Range (A1:B40)

    Set Z2 =Range (A100:B400)

    Unire zona Z1 cu Z2 in Z3

    Set Z3 = Union (Z1,Z2)

    Afisare adresa Z3

    MsgBox Z3.Address

    End Sub

    5.6. Evenimente

    EvenimentulClick

    Se produce in momentul in care se actioneaza o

    singura data butonul mouse-ului intr-un obiect sau

    dupa selectarea unei valori din mai multe posibileacolo unde este cazul (exemplu selectarea unei valori

    dintr-o lista derulanta de valori-ComboBox-va genera

    producerea evenimentuluiClick).

    Pentru controlul CodFurnizor a fost atasata

    evenimentului Click procedura de mai jos:

    Private Sub CodFurnizor_Click()

    Dim T

    T = Me.CodFurnizor.Column()

    Me.DenumireFurnizor.Value = Me.CodFurnizor.Column(1)

    Me.Adresa.Value = Me.CodFurnizor.Column(2)

    Cells(ActiveCell.Row, 2).Value = Me.CodFurnizor.Column(1)

    ActiveCell.Value = T

    End Sub

    2"

  • 8/11/2019 Lectia2_VBA

    26/29

    5.7. Exemplu de aplicatie VBA.5

    Sa se construiasca un formular pentru calcululsi afisarea rezultatelor costului pentru plata chiriilor

    in lei grei pentru apartamente cu doua si trei camere.

    Programul preia date cu InputBox si afiseaza

    informatii prelucrate cu casete text ; se folosesc dea

    semenea butoanele de optiune utilizand proprietatea

    Enabled.

    "Probleme si teste rezolvate se gasesc in Birotica aplicata-autor Gramada Argentina

    Editura Renaissance , 2!

    2#

  • 8/11/2019 Lectia2_VBA

    27/29

    Preluarea datelor (a chiriei percepute pe luna si a

    numarului de luni) se face prin casete InputBox.

    Dimensionarea variabilelor

    Dim LUNI As Long

    Dim SUMA As Long

    Dim VENIT As Long

    Private Sub OpT_2CAM_Click()

    2$

  • 8/11/2019 Lectia2_VBA

    28/29

    OPT_3CAM.Enabled = False

    TEXT2.Text = 0

    TEXT4.Text = 0

    TEXT6.Text = 0SUMA = InputBox("CHIRIE PERCEPUTA PE LUNA")

    TEXT1.Text = SUMA

    LUNI = InputBox("PERIOADA DE INCHIRIERE ( NR. LUNI )")

    TEXT3.Text = LUNI

    VENIT = TEXT1.Text * TEXT3.Text

    Afisarea rezultatelor in casete text cu folosirea functiei

    Format si Cstr

    TEXT5.Text = CStr(Format(VENIT, "STANDARD"))

    OPT_3CAM.Enabled = True

    End Sub

    Private Sub OPT_3CAM_Click()

    OPT_2CAM.Enabled = False

    TEXT1.Text = 0

    TEXT3.Text = 0TEXT5.Text = 0

    SUMA = InputBox("CHIRIE PERCEPUTA PE LUNA")

    TEXT2.Text = SUMA

    LUNI = InputBox("PERIOADA DE INCHIRIERE ( NR. LUNI )")

    TEXT4.Text = LUNI

    VENIT = TEXT2.Text * TEXT4.Text

    TEXT6.Text = CStr(Format(VENIT, "STANDARD"))

    2%

  • 8/11/2019 Lectia2_VBA

    29/29

    OPT_2CAM.Enabled = True

    End Sub