Erstellen Sie einen Fortschrittsbalken in Excel VBA

Bilal Shahid 21 Juni 2023
  1. Fortschrittsbalken in Microsoft Excel
  2. So erstellen Sie einen Fortschrittsbalken in Excel
  3. Abschluss
Erstellen Sie einen Fortschrittsbalken in Excel VBA

Visual Basic for Applications ist eine ereignisgesteuerte Programmiersprache, die für Microsoft-Anwendungen verwendet wird. Es ermöglicht Benutzern, Aufgaben zu automatisieren und mehrere Funktionalitäten entsprechend ihren Anforderungen neu zu schreiben.

VBA ermöglicht es dem Benutzer, mehrere Aufgaben mit Hilfe einiger Codeanweisungen auszuführen, die in Form eines Makros gespeichert sind. Das Makro ermöglicht es dem Benutzer, den Code immer wieder zu verwenden.

Fortschrittsbalken in Microsoft Excel

Daten werden in Microsoft Excel ständig manipuliert. Das Hochladen von Daten aus einer Datenbank, das Bearbeiten der Datensätze und das Zusammenfassen der Ergebnisse sind die häufigsten Anwendungen von Microsoft Excel, insbesondere in Unternehmen.

Microsoft Excel bietet leistungsstarke Tools, um alle Aufgaben mit Hilfe grundlegender Funktionalitäten zu erledigen. Um auf den Grundfunktionalitäten von Microsoft Excel aufzubauen, wird VBA verwendet.

VBA ist eine hervorragende Option zur Automatisierung verschiedener Aufgaben. Es ermöglicht Ihnen, auf den Grundfunktionen von Microsoft Excel aufzubauen und ein Programm speziell für Ihre Bedürfnisse zu erstellen.

Das Erstellen eines Fortschrittsbalkens in VBA ist ganz einfach. Es ermöglicht Ihnen, Ihre Aktivitäten zu verfolgen.

Sie können den Fortschritt überwachen und damit parallele Aufgaben ausführen. Mit Hilfe eines Fortschrittsbalkens können Sie mehrere Aufgaben gleichzeitig verfolgen.

Die kleine Hinzufügung eines Fortschrittsbalkens kann einen großen Unterschied in der Effizienz Ihrer Programme machen. Es ermöglicht Ihnen, Aufgaben effizienter auszuführen.

So erstellen Sie einen Fortschrittsbalken in Excel

Mit UserForm in Microsoft Excel können Sie mithilfe des progressbar-Steuerelements einen Fortschrittsbalken für Ihr Blatt erstellen. Um den erstellten Fortschrittsbalken jedoch kontinuierlich zu aktualisieren, müssen einige Codeanweisungen verknüpft werden, die diese Aufgabe übernehmen.

Dieser Artikel erwähnt zwei Methoden zum Erstellen eines Fortschrittsbalkens in Microsoft Excel.

Nummerierter Fortschrittsbalken

Diese Lösung ist ideal für Sie, wenn Sie keinen schicken Fortschrittsbalken erstellen möchten. Ein nummerierter Fortschrittsbalken zeigt die Ausgabe folgendermaßen an:

Nummerierter Fortschrittsbalken

Um diesen einfachen Fortschrittsbalken in Microsoft Excel zu implementieren, verwenden Sie den folgenden Code:

Dim i As Integer

'Change the loop according to your requirements
For i = 1 To 1500
    'Perform the tasks here

    'Update the progress bar
    Application.StatusBar = "Progress: " & x & " of 1500: " & Format(x / 1500, "0%")

Next x

Application.StatusBar = False

Ein nummerierter Fortschrittsbalken ist recht einfach zu implementieren. Es erfordert keinen großen Aufwand und funktioniert einwandfrei.

Ausgefallener Fortschrittsbalken

Diese Lösung ist ideal, wenn Sie einen schicken Fortschrittsbalken entwerfen möchten. Die StatusBar in Excel ist mit Unicode-Zeichen als Fortschrittsbalken getarnt.

Als Balken werden die Unicode-Zeichen im Bereich 9608 bis 9615 verwendet. Sie können ein Zeichen aus der Reihe auswählen.

Die Länge des Fortschrittsbalkens wird durch die Variable lent im Code definiert.

' ProgressBar Class Module

Option Explicit

Private Const lent As Integer = 50
Private Const maxlent As Integer = 255
Private charBar As String
Private charSpace As String
Private statusBarVar As Boolean
Private enableEventsVar As Boolean
Private screenUpdatingVar As Boolean

Private Sub initialization()
    ' The initial state of the variables is saved for the progress bars
    charBar = ChrW(9608)
    charSpace = ChrW(9620)
    statusBarVar = Application.DisplayStatusBar
    enableEventsVar = Application.EnableEvents
    screenUpdatingVar = Application.ScreenUpdating
    Application.DisplayStatusBar = True
    Application.ScreenUpdating = False
    Application.EnableEvents = False
End Sub

Private Sub classend()
    ' Restore all the settings
    Application.DisplayStatusBar = statusBarVar
    Application.ScreenUpdating = screenUpdatingVar
    Application.EnableEvents = enableEventsVar
    Application.StatusBar = False
End Sub

Public Sub Update(ByVal Value As Long, _
                  Optional ByVal MaxValue As Long= 0, _
                  Optional ByVal Status As String = "", _
                  Optional ByVal DisplayPercent As Boolean = True)

    If Value < 0 Or MaxValue < 0 Or (Value > 100 And MaxValue = 0) Then Exit Sub

    ' If the maximum is set, then adjust the value to be in the range of 0 to 100
    If MaxValue > 0 Then Value = WorksheetFunction.RoundUp((Value * 100) / MaxValue, 0)

    ' Message to set the status bar to
    Dim display As String
    display = Status & "  "

    ' Set bars
    display = display & String(Int(Value / (100 / lent)), charBar)

    ' set spaces
    display = display & String(lent - Int(Value / (100 / lent)), charSpace)

    ' Closing character to show the end of the bar
    display = display & charBar

    If DisplayPercent = True Then display = display & "  (" & Value & "%)  "

    ' chop off to the maximum length if necessary
    If Len(display) > maxlent Then display = Right(display, maxlent)

    Application.StatusBar = display
End Sub

Der oben erwähnte Code setzt die Initialwerte der Funktionen DisplayStatusBar auf True, ScreenUpdating auf False und EnableEvents auf False.

Die Unterroutine Update() bearbeitet die Anzeige des Fortschrittsbalkens in Abhängigkeit von den empfangenen Parametern.

Die Unterroutine classend() setzt die Werte der Funktionalitäten DisplayStatusBar, ScreenUpdating und EnableEvents zurück.

Verwenden Sie den folgenden Code, um eine Instanz der Klasse zu erstellen:

Dim fancyProgressBar As New ProgressBar
Dim i As Integer

For i = 1 To 100
    Call fancyProgressBar.Update(i, 100, "Progress Bar", True)
    ' Required tasks can be mentioned here
Next i

Sie können mit den Unicode-Zeichen experimentieren, um verschiedene Fortschrittsbalken zu entwerfen. Der Bereich 9608 bis 9615 hat verschiedene Designs für den Fortschrittsbalken mit unterschiedlichen Abständen.

Experimentieren Sie mit den Variablen, um einen benutzerdefinierten Fortschrittsbalken für sich selbst zu entwerfen.

Abschluss

Ein Fortschrittsbalken ist super hilfreich, wenn mehrere Aufgaben parallel laufen. Es ermöglicht Ihnen, die Aktivität der Aufgaben nebeneinander zu verfolgen.

Darüber hinaus können Sie auch den Zeitaufwand für die verschiedenen Aufgaben messen. So können Sie die Aufgaben optimal einplanen.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub