Macrocomenzi

O macrocomandă este alcătuită dintr-un grup de instrucţiuni programate cu ajutorul mediului VBA (VISUAL BASIC for APPLICATIONS) şi are ca scop automatizarea unor acţiuni în cadrul aplicaţiei Excel pentru creşterea eficienţei şi eficacităţii lucrului în Excel.

De obicei, macrocomenzile se folosesc pentru a elimina operaţiunile repetitive care se realizează în Excel. Cu cât o operaţiune include mai multe acţiuni (folosirea funcţiilor sau folosirea altor facilităţi automate), cu atât mai mult se consumă timp inutil. Tocmai pentru astfel de cazuri există posibilitatea înregistrării de macrocomenzi.

Detalii despre modul de lucru cu macrocomenzi folosind limbajul de programare VBA, pe https://sites.google.com/view/macrocomenzi-vba-office-2016/pagina-de-pornire.

Macrocomenzile pot fi create:

1. Prin înregistrare 

Click pe butonul Record Macro (pentru a vedea butonul, trebuie activată afișarea etichetei Developer). În acest caz, nu este necesară experienţă în programare: toate operațiunile realizate după apăsarea butonului sunt înregistrate ca și cod Visual Basic și pot fi salvate în Excel, pentru a putea fi repetate ulterior, ori de câte ori este nevoie. 

Inregistrare macrocomanda
Macro Copie Sablon

Macrocomanda poate fi rulată din nou 

2. Prin creare în VBA (necesită cunoştinţe de programare în mediul aplicaţiilor Office). 

Mai multe detalii (deocamdată în engleză - traducerea în română nu este disponibilă), aici:

https://docs.microsoft.com/en-us/office/vba/api/overview/excel

Macrocomenzile pot fi realizate şi de la simplu la complex (combinând cele două metode de mai sus), începând cu înregistrarea unei macrocomenzi, apoi continuând cu modificarea codului VBA din macrocomandă (în fereastra VBA).

Macrocomanda pentru copierea unei foi de lucru numită "Sablon" se poate realiza cu Record Macro, care înregistrează operaţiunea de duplicare a foii de lucru. În Visual Basic for Applications (se deschide rapid cu Alt+F11) se poate vedea macrocomanda.

Sub CopiereSablon()

'

' Macrocomanda de CopiereSablon

' Copie foaia de lucru Sablon

'

Sheets("Sablon").Select

Sheets("Sablon").Copy Before:=Sheets(2)

End Sub

Dezavantajul ar fi că Excel va redenumi automat noua foaie de lucru cu Sablon (2).

Ulterior, în VBA se pot introduce, de exemplu:

- o casetă de dialog în care se va tasta de câte ori va trebui să fie copiat şablonul, 

- o instrucţiune repetitivă (for) pentru a realiza operaţiunea de copiere de N ori (N = numărul specificat în caseta de dialog).

Dar aici sunt necesare cunoştinţe de programare.

O altă variantă (mai practică) ar fi copierea foii de lucru șablon și redenumirea ei cu nume sugestive, preluate dintr-un centralizator.

În macrocomanda următoare, Excel va copia foaia de lucru Sablon si o va redenumi cu nume preluate din foaia centralizator.

Sub CopiereSablon()

' Macrocomanda pentru CopiereSablon

' Initial, fisierul Excel activ contine doua foi de lucru, numite Sablon si centralizator

' Macrocomanda copie foaia de lucru Sablon si o redenumeste cu numar de inventar preluat din centralizator

' Repeta operatiunea pana parcurge tot intervalul de valori stabilit in wSh.Range - in acest exemplu, "B2:B7".

' Declarare variabile

    Dim xRg As Excel.Range

    Dim wSh As Excel.Worksheet

    Dim wBk As Excel.Workbook

    'Set wSh = ActiveSheet

    Set wSh = Sheets("centralizator")

    Set wBk = ActiveWorkbook

    

    Sheets("centralizator").Select

        

    Application.ScreenUpdating = False

    

    ActiveSheet.Range("B2").Select

    For Each xRg In wSh.Range("B2:B7") 'intervalul se modifica, dupa cum este nevoie

        With wBk

            Worksheets("Sablon").Copy After:=.Sheets(.Sheets.Count)

            On Error Resume Next

            ActiveSheet.Name = xRg.Value

            If Err.Number = 1004 Then

              Debug.Print xRg.Value & " deja exista o foaie de lucru cu acelasi nume"

           End If

            On Error GoTo 0

        End With

    Next xRg

    Application.ScreenUpdating = True

End Sub

Macrocomanda se poate rula direct din VBA sau din fișierul Excel (macrocomenzii i se poate asocia şi un buton în foaia de lucru).