Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tastatureingabe verhindern während Makro läuft

Forumthread: Tastatureingabe verhindern während Makro läuft

Tastatureingabe verhindern während Makro läuft
29.12.2002 10:18:07
Harald K
Hallo im Excelforum,
wie kan ich verhindern das das Makro durch eine Tastatureingabe abgebrochen wird.


	
Sub Konvert()
Dim e As Range
Dim varValue As String
Dim bez As Variant
Dim dName$
Application.ScreenUpdating = False
dName = "C:\Auftrag\Orginal\Rechnung 2002.xls"
mappe = "C:\Auftrag\Rechng\"
Workbooks.Open Filename:=dName
Set e = Worksheets("Angebot").Range("J11")
e.Value = e.Value + 1
ActiveWorkbook.Save
varValue = Application.InputBox _
("Bitte Bezeichnung des Projekt eingeben:", , varValue)
Worksheets("tab").Cells(1, 1) = Date
Worksheets("tab").Cells(1, 2) = varValue
ActiveWorkbook.SaveAs Filename:=mappe & Range("J11") _
& " " & Worksheets("tab").Cells(1, 2) & " " & Format(Now, "hh.mm") & _
" " & Date & ".xls", FileFormat:=xlNormal 'Workbook
End Sub

Gruß und Dank

Harald

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Tastatureingabe verhindern während Makro läuft
29.12.2002 11:01:40
Ramses
Hallo Harald,

Prinzipiell kannst du jedes Makro mit den Taasten "Ctrl" + "Break" beenden.

In deinem Beispiel sehe ich nur die Inputbox. Alles andere sollte schnell genug gehen, dass der Benutzer die Ausführung nicht unterbrechen kann.

Oder willst du die Inputbox abfangen ?

Gruss Rainer

Anzeige
Re: Tastatureingabe verhindern während Makro läuft
29.12.2002 11:42:02
L.Vira
Schau dir mal EnableCancelKey an.
Re: Tastatureingabe verhindern während Makro läuft
29.12.2002 11:54:33
Herbert
Hallo Harald,
so kann man Tasten deaktivieren:

Sub Tasten_deaktivieren()
Application.EnableCancelKey = xlDisabled
'Mein Makro
Application.EnableCancelKey = xlInterrupt
End Sub
Gruß Herbert
Anzeige
Re: Tastatureingabe verhindern während Makro läuft
29.12.2002 13:03:46
Harald K
Hallo im Forum,

vielen Dank für eure Hilfe, werde eure Vorschläge in mein Makro einbauen.

Gruß

Harald

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Tastatureingabe während Makro-Ausführung verhindern


Schritt-für-Schritt-Anleitung

Um die Tastatureingabe während der Ausführung eines Makros in Excel zu verhindern, kannst du die Application.EnableCancelKey-Eigenschaft nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject" und wähle "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Sub Tasten_deaktivieren()
       Application.EnableCancelKey = xlDisabled ' Deaktiviert die Tastatur
    
       ' Dein Makro-Code hier
    
       Application.EnableCancelKey = xlInterrupt ' Aktiviert die Tastatur wieder
    End Sub
  4. Ersetze den Kommentar in der Zeile mit Dein Makro-Code hier durch den Code, den du ausführen möchtest.

  5. Speichere und schließe den Editor: Drücke CTRL + S, um zu speichern, und schließe den VBA-Editor.

Mit dieser Methode wird die Tastatureingabe während der Ausführung des Makros verhindert.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird trotzdem abgebrochen.
    Lösung: Stelle sicher, dass Application.EnableCancelKey vor der Ausführung deines Codes auf xlDisabled gesetzt ist und nach dem Ende des Codes wieder auf xlInterrupt zurückgesetzt wird.

  • Fehler: Der Code läuft nicht wie erwartet.
    Lösung: Überprüfe, ob du das richtige VBA-Modul verwendest und ob keine Syntaxfehler im Code sind.


Alternative Methoden

Neben der Verwendung von Application.EnableCancelKey kannst du auch die Application.ScreenUpdating-Eigenschaft auf False setzen. Dadurch wird die Benutzeroberfläche nicht aktualisiert, was es schwieriger macht, das Makro zu unterbrechen:

Sub Beispiel()
    Application.ScreenUpdating = False
    ' Dein Makro-Code hier
    Application.ScreenUpdating = True
End Sub

Diese Methode verhindert nicht direkt die Tastatureingabe, kann jedoch die Benutzerinteraktion minimieren.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie du beide Methoden kombinieren kannst:

Sub SicheresMakro()
    Application.EnableCancelKey = xlDisabled
    Application.ScreenUpdating = False

    ' Beispielcode
    Dim i As Integer
    For i = 1 To 100000
        ' Simuliere eine zeitaufwendige Aufgabe
    Next i

    Application.ScreenUpdating = True
    Application.EnableCancelKey = xlInterrupt
End Sub

Dieses Beispiel zeigt, wie man ein lang laufendes Makro sicher ausführt, ohne dass der Benutzer eingreifen kann.


Tipps für Profis

  • Verwende den DoEvents-Befehl, wenn du sicherstellen möchtest, dass Excel auf andere Ereignisse reagiert, ohne das Makro zu unterbrechen. Dies kann jedoch dazu führen, dass Benutzer das Makro abbrechen können.
  • Teste dein Makro sorgfältig, um sicherzustellen, dass die Deaktivierung der Tastatur nicht zu unerwarteten Problemen führt.

FAQ: Häufige Fragen

1. Kann ich die Tastatureingabe für bestimmte Teile des Makros deaktivieren?
Ja, du kannst Application.EnableCancelKey umschalten, um die Eingabe nur für bestimmte Abschnitte deines Makros zu deaktivieren.

2. Was passiert, wenn ich xlDisabled nicht wieder auf xlInterrupt setze?
Wenn xlDisabled aktiv bleibt, wird die Tastatureingabe dauerhaft deaktiviert, bis Excel neu gestartet wird oder bis du es manuell änderst.

3. Funktioniert das auch in Excel 365?
Ja, die Methoden funktionieren in allen modernen Excel-Versionen, einschließlich Excel 365, da sie grundlegende VBA-Funktionalitäten nutzen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige