Als Antwort auf diesen Beitrag
ach je, mal wieder KI = Betreuung auf Kindergartenniveau.
dann halt der ganze Code zum kopieren und einfügen nochmal für dich
Option Explicit
Public Abbruch As Boolean
Sub Spielerlisten_Ansage()
Dim s As Object
Dim ws As Worksheet
Dim r As Long
Dim nameH As String, nameD As String
Dim countH As Long, countD As Long
Dim herrenVorhanden As Boolean, damenVorhanden As Boolean
Dim txt As String, t
Set ws = Sheets("Spielerliste")
Set s = CreateObject("SAPI.SpVoice")
' ===========================
' ===== TURNIERART CHECK ====
' ===========================
nameH = ws.Cells(2, 2).Text ' Herren B2
nameD = ws.Cells(2, 8).Text ' Damen H2
herrenVorhanden = (nameH <> "")
damenVorhanden = (nameD <> "")
If Not herrenVorhanden And Not damenVorhanden Then
txt = txt & vbLf & "Es sind keine Spieler gemeldet."
Exit Sub
End If
If Not herrenVorhanden And damenVorhanden Then
txt = txt & vbLf & "Es wird ein reines Damenturnier gespielt."
ElseIf Not damenVorhanden And herrenVorhanden Then
txt = txt & vbLf & "Es wird ein Herren oder Mixed Turnier gespielt."
End If
' ===========================
' ===== STARTMELDUNG ========
' ===========================
txt = txt & vbLf & "Achtung! Es werden alle gemeldeten Spieler vorgelesen."
'Sleep 500
' ===========================
' ===== HERREN VORLESEN =====
' ===========================
If herrenVorhanden Then
If damenVorhanden Then
' Nur sagen, wenn beide vorhanden
txt = txt & vbLf & "Ich beginne mit den Herren."
End If
r = 2
nameH = ws.Cells(r, 2).Text
Do While nameH <> ""
txt = txt & vbLf & nameH
countH = countH + 1
r = r + 1
nameH = ws.Cells(r, 2).Text
Loop
End If
' ===========================
' ===== DAMEN VORLESEN ======
' ===========================
If damenVorhanden Then
If herrenVorhanden Then
' Nur sagen, wenn beide vorhanden
txt = txt & vbLf & "Nun folgen die Damen."
End If
r = 2
nameD = ws.Cells(r, 8).Text
Do While nameD <> ""
txt = txt & vbLf & nameD
countD = countD + 1
r = r + 1
nameD = ws.Cells(r, 8).Text
Loop
End If
' ===========================
' ===== ABSCHLUSSANSAGE =====
' ===========================
If countH > 0 And countD > 0 Then
txt = txt & vbLf & "Es sind " & countH & " Herren und " & countD & " Damen gemeldet."
ElseIf countH > 0 Then
txt = txt & vbLf & "Es sind " & countH & " Herren gemeldet."
ElseIf countD > 0 Then
txt = txt & vbLf & "Es sind " & countD & " Damen gemeldet."
End If
'=====================
'=== Sprachausgabe ===
'=====================
If MsgBox(txt, vbYesNo, "Ansage sprechen") = vbYes Then
For Each t In Split(txt, vbLf)
DoEvents
If Abbruch Then Exit For
s.Speak t
DoEvents
Next
End If
Abbruch = False
End Sub