1. ich möchte einen Text auf dem Bildschirm anzeigen.
2. anschliessend soll ein Makro ablaufen.
3. ist das Makro fertig, soll der Text entfernt werden.
Wie mach ich das?
Vielen Dank für eine Antwort.
Mit freundlichen Grüßen
Albrecht
Um einen Text auf dem Bildschirm anzuzeigen und anschließend ein Makro auszuführen, kannst du folgendes Excel VBA-Skript verwenden. Dieses Skript zeigt den Text an, wenn das Makro gestartet wird, und entfernt ihn am Ende.
ALT + F11
, um den VBA-Editor zu öffnen.Option Explicit
Sub infotext(Optional infotext As String = "")
Dim objShp As Shape
If infotext = "" Then
On Error Resume Next
ActiveSheet.Shapes("+++INFO+++").Delete
Else
Set objShp = ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 180, 63, 420, 110)
With objShp
.Name = "+++INFO+++"
With .TextFrame.Characters
.Text = infotext
.Font.Size = 26
.Font.ColorIndex = 5
End With
With .DrawingObject
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.ReadingOrder = xlContext
.Orientation = xlHorizontal
.AutoSize = False
End With
.Fill.ForeColor.SchemeColor = 65
.Fill.Transparency = 0
.Line.Weight = 3
.Line.ForeColor.SchemeColor = 12
.Line.BackColor.RGB = RGB(255, 255, 255)
End With
DoEvents
End If
Set objShp = Nothing
End Sub
Sub text()
infotext "Bitte warten...."
' Dein Code hier, z.B. ein weiteres Makro
' ...
infotext
End Sub
infotext "Bitte warten...."
nach deinen Wünschen.text
aus, um den Text anzuzeigen und dein gewünschtes Makro zu starten.Problem: Der Text wird nicht angezeigt.
"+++INFO+++"
sein.Problem: Der Text bleibt auch nach der Ausführung des Makros sichtbar.
infotext
am Ende des Makros aufgerufen wird, um den Text zu entfernen.Problem: Fehlermeldung beim Hinzufügen der Textbox.
ActiveSheet.Shapes.AddTextbox
Methode unterstützt.Wenn du den Text anzeigen möchtest, ohne eine Textbox zu verwenden, kannst du auch ein Label in einer UserForm einfügen. Hier ist, wie du das machst:
lblInfo
).Me.lblInfo.Caption = "Bitte warten...."
Me.Show
' ...
Me.Hide
Hier ist ein praktisches Beispiel, das zeigt, wie du das Skript in einem realen Szenario verwenden kannst:
Angenommen, du möchtest den Text "Daten werden geladen..." anzeigen, während ein Datenimport durchgeführt wird.
Sub DatenImport()
infotext "Daten werden geladen..."
' Hier kommt dein Datenimport-Code
' ...
infotext
End Sub
Application.ScreenUpdating = False
und Application.ScreenUpdating = True
, um das Flackern des Bildschirms zu vermeiden, während das Makro läuft.infotext
Sub auch für andere Zwecke verwenden, um dynamische Informationen während der Ausführung von Makros anzuzeigen.1. Kann ich den Text auch in einer bestimmten Farbe anzeigen?
Ja, du kannst die Farbe im Code anpassen. Ändere die Zeile .Font.ColorIndex = 5
auf den gewünschten Farbindex.
2. Was passiert, wenn ich mehrere Makros hintereinander ausführe?
Stelle sicher, dass der Text am Ende jedes Makros entfernt wird, um Verwirrung zu vermeiden. Du kannst das infotext
Sub einfach am Ende jedes Makros aufrufen.
3. Funktioniert dieses Skript in Excel 365?
Ja, das Skript sollte in Excel 365 sowie in anderen modernen Versionen von Excel ohne Probleme funktionieren.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen