5+1 egyszerű Excel VBA program, amely megkönnyíti a munkádat

5+1 egyszerű Excel VBA program, amely megkönnyíti a munkádat

Az Excel VBA (Visual Basic for Applications) egy nagyszerű eszköz, amellyel automatizálhatod a mindennapi munkafolyamatokat, időt takaríthatsz meg, és csökkentheted az emberi hibákat. Ebben a blogbejegyzésben bemutatunk 5+1 egyszerű, de hatékony VBA programot, amelyek segítenek a hatékonyság növelésében.

Fontos megjegyzés: A VBA makrók használata előtt mindig készíts biztonsági mentést a munkafüzetedről, és győződj meg róla, hogy a fájl .xlsm vagy .xlsb formátumban van mentve, különben a makrók nem fognak működni. A leírt makrókat mindenki saját felelősségére használja, és ajánlott tesztkörnyezetben kipróbálni őket, mielőtt éles adatokon futtatnád.


Hogyan hozzunk létre VBA makrókat?

Ha még nem használtál VBA-t, kövesd az alábbi lépéseket a makrók létrehozásához:

  1. Nyisd meg az Excel programot és hozz létre egy új vagy meglévő munkafüzetet.
  2. Nyomd meg az ALT + F11 billentyűkombinációt, hogy megnyisd a VBA szerkesztőt.
  3. A bal oldali Project Explorer panelen válaszd ki az adott munkafüzetet.
  4. Kattints a "Insert" → "Module" menüpontra, hogy új modult hozz létre.
  5. Másold be a kívánt VBA kódot a szerkesztőablakba.
  6. Nyomd meg a CTRL + S billentyűkombinációt a mentéshez.
  7. Az Excelben engedélyezd a makrókat (ha szükséges) a „Makró beállítások” menüben.
  8. A makró futtatásához nyomd meg az ALT + F8 billentyűkombinációt, válaszd ki a kívánt makrót, majd kattints a „Run” (Futtatás) gombra.

Most pedig nézzük az öt hasznos VBA makrót!


1. Üres sorok törlése munkafüzetben

Gyakorlati példa: Ha egy Excel táblázatban sok üres sor van az adatok között, ez a makró segít eltávolítani őket, így könnyebb az adatok kezelése és átláthatóbb lesz a táblázat.

Kód:

Sub UresSorokTorlese()
    Dim rng As Range
    Dim cell As Range
    Dim delRows As Range
    
    Set rng = ActiveSheet.UsedRange
    
    For Each cell In rng.Columns(1).Cells
        If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then
            If delRows Is Nothing Then
                Set delRows = cell
            Else
                Set delRows = Union(delRows, cell)
            End If
        End If
    Next cell
    
    If Not delRows Is Nothing Then delRows.EntireRow.Delete
End Sub

2. Automatikus backup fájl mentése mentéskor

Gyakorlati példa: Ha egy nagy projekten dolgozol és félsz az adatvesztéstől, ez a makró automatikusan készít egy másolatot a fájlról minden mentéskor.

Kód:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim BackupPath As String
    BackupPath = ThisWorkbook.Path & "\Backup_" & Format(Now, "YYYYMMDD_HHMMSS") & ".xlsm"
    ThisWorkbook.SaveCopyAs BackupPath
End Sub

3. Duplikált értékek törlése az első oszlopból

Gyakorlati példa: Ha egy ügyféllistában többször szerepelnek ugyanazok a nevek vagy adatok, ezzel a makróval gyorsan eltávolíthatók a duplikátumok.

Kód:

Sub DuplikaltTorles()
    Dim rng As Range
    Set rng = ActiveSheet.UsedRange
    rng.RemoveDuplicates Columns:=Array(1), Header:=xlYes
End Sub

4. 100 db random szám generálása az első oszlopban

Gyakorlati példa: Ha statisztikai vagy matematikai számításokat kell végezned, és szükséged van véletlenszerű számokra egy gyors teszteléshez, ez a makró hasznos lehet.

Kód:

Sub RandomSzamGeneralas()
    Dim i As Integer
    For i = 1 To 100
        Cells(i, 1).Value = Int((1000 - 1 + 1) * Rnd + 1)
    Next i
End Sub

5. Automatikus mentés adott időközönként

Gyakorlati példa: Ha hosszú ideig dolgozol egy Excel fájlon, és szeretnéd elkerülni az adatvesztést egy esetleges rendszerhiba vagy áramkimaradás miatt, ez a makró automatikusan menti a fájlt meghatározott időközönként.

Kód:

Sub AutomatikusMentes()
    Application.DisplayAlerts = False
    ActiveWorkbook.Save
    Application.DisplayAlerts = True
    Application.OnTime Now + TimeValue("00:10:00"), "AutomatikusMentes"
End Sub

+1. Szavak automatikus kiemelése Word dokumentumban

Gyakorlati példa: Ha egy hosszú Word dokumentumban szeretnél gyorsan kiemelni egy adott szót (például egy kulcsszót egy jelentésben), ez a makró gyorsan megteszi helyetted.

Kód:

Sub KiemelesWordben()
    Dim wdApp As Object
    Dim wdDoc As Object
    Dim wdRange As Object
    Dim keresettSzo As String
    
    keresettSzo = "Excel"
    
    On Error Resume Next
    Set wdApp = GetObject(, "Word.Application")
    If wdApp Is Nothing Then Set wdApp = CreateObject("Word.Application")
    On Error GoTo 0
    
    Set wdDoc = wdApp.ActiveDocument
    
    With wdDoc.Range.Find
        .Text = keresettSzo
        .Replacement.Text = keresettSzo
        .Replacement.Font.Bold = True
        .Replacement.Font.ColorIndex = 6 'Piros
        .Execute Replace:=2
    End With
    
    wdApp.Visible = True
End Sub

Összegzés

Ezek az egyszerű, de hatékony VBA makrók segíthetnek az Excel-használatod optimalizálásában. Legyen szó üres sorok törléséről, automatikus mentésről vagy Word dokumentum szerkesztéséről, ezek a makrók időt takarítanak meg és csökkentik a hibalehetőségeket.

Ne feledd: Mindig készíts biztonsági mentést a fontos fájljaidról, és csak megbízható forrásból származó VBA kódokat használj! Ha szeretnél további hasznos VBA megoldásokat, írd meg kommentben, milyen feladatra keresel megoldást!

 

Nekem ez magas, inkább segítséget kérek!

Ha esetleg más szolgáltatásaink, vagy épp termékeink érdekelnek, nézz szét a webshopban: többek között egyedi vászontáska, egyedi bögre, egyedi póló készítéssel állunk rendelkezésedre, ha szeretnéd vállalkozásodat reklámozni!

Vissza a blogba

Hozzászólás írása

Felhívjuk a figyelmedet, hogy a hozzászólásokat jóvá kell hagyni a közzétételük előtt.