HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Kaum Excel/VBA-Kenntnisse
Robert Pilz
18.06.2026 19:55:54
AW: Sprachausgabe in Excel
Ja, das geht grundsätzlich. Das Problem liegt meist nicht in Worksheet_Change, sondern in der Prozedur SpielerHinzufuegen, insbesondere wenn dort die Sprachausgabe (SAPI.SpVoice) mit Speak verwendet wird. Während Excel auf die Ansage wartet, reagiert es oft nicht mehr.

Möglichkeit 1: ESC zum Abbrechen zulassen

Wenn deine Ansage in einer Schleife läuft, kannst du regelmäßig DoEvents einbauen:

DoEvents
If Abbruch = True Then Exit Sub

Dadurch verarbeitet Excel Tastatureingaben wieder.

Möglichkeit 2: F12 als Not-Aus-Schalter

Lege in einem normalen Modul an:

Public Abbruch As Boolean

Sub NotAus()
Abbruch = True
End Sub

Beim Start der Arbeitsmappe:

Private Sub Workbook_Open()
Application.OnKey "{F12}", "NotAus"
End Sub

Vor dem Start einer Ansage:

Abbruch = False

Und in längeren Schleifen:

DoEvents

If Abbruch Then
MsgBox "Ansage abgebrochen!"
Exit Sub
End If
Möglichkeit 3: STRG+PAUSE

Bei VBA kann man oft mit Strg + Pause/Untbr einen laufenden Code anhalten. Das funktioniert aber nicht immer bei Sprachausgaben oder API-Aufrufen.

Möglichkeit 4: Sprachausgabe asynchron starten

Falls du so etwas verwendest:

voice.Speak Text

blockiert Excel bis die Ansage fertig ist.

Besser:

voice.Speak Text, 1

Die 1 entspricht SVSFlagsAsync.

Dadurch läuft die Ansage im Hintergrund weiter und Excel bleibt bedienbar.

Um dir die beste Lösung zu geben, bräuchte ich den Code der Prozedur:

SpielerHinzufuegen

Dort sitzt sehr wahrscheinlich die eigentliche Ursache für das Einfrieren.
Als Antwort auf diesen Beitrag
UdPa
18.06.2026 18:46:11
Sprachausgabe in Excel
Hallo Experten ich hab für mein Turnierprogramm mithilfe der KI einen Code bekommen der mir namen aus mainer spielerliste vorliest. Das klappt eigentlich recht gut, mein Problem es friert während der ansage mein excel ein und ich kann den code nicht stoppen. Frage an euch kann man da irgendwas einbauen das man z.B mit F12 sofort den Code unterbricht. Mit der KI hab ich keine Lösung gefunden. Vielleicht gibts da ja eine möglichkeit. Vielen Dank für eure Hilfe hier der Code Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim BereichB As Range, BereichH As Range
Dim istRelevant As Boolean

' Prüfen, ob Änderung in Spalte B oder H
If Intersect(Target, Union(Me.Columns("B"), Me.Columns("H"))) Is Nothing Then Exit Sub

Application.EnableEvents = False

For Each Zelle In Target
istRelevant = False

' Spalte B prüfen
If Zelle.Column = 2 Then
Set BereichB = Me.Columns("B")
If Application.WorksheetFunction.CountIf(BereichB, Zelle.Value) > 1 Then
MsgBox "Der Name '" & Zelle.Value & "' ist in Spalte B bereits vorhanden!", vbExclamation
Zelle.ClearContents
End If
istRelevant = True

' Spalte H prüfen
ElseIf Zelle.Column = 8 Then
Set BereichH = Me.Columns("H")
If Application.WorksheetFunction.CountIf(BereichH, Zelle.Value) > 1 Then
MsgBox "Der Name '" & Zelle.Value & "' ist in Spalte H bereits vorhanden!", vbExclamation
Zelle.ClearContents
End If
istRelevant = True
End If

' Wenn relevant und nicht leer → Spieler hinzufügen
If istRelevant Then
If Trim(Zelle.Value) <> "" Then
SpielerHinzufuegen CStr(Zelle.Value)
End If
End If
Next Zelle

Application.EnableEvents = True
End Sub
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.