AW: VBA Rechtschreibprüfung
14.03.2024 12:33:49
Rolf
Hallo Dieter,
habe jetzt erst deine Antwort gesehen.
Ich weiß nicht, was du genau vorhast, aber bedenke bitte, dass es bei 8 Buchstaben genau Fakultät(8) (also 1*2*3*4*5*6*7*8 = 40320) Permutationen gibt.
Die müssen alle mit dem Wörterbuch verglichen werden.
Das kann, je nach Rechner, ziemlich lange dauern! (bis 7 Buchstaben gehts noch einigermaßen flott)
Hier mal ein Code zum Testen: (gehört in ein allgemeines Modul)
der listet alle Kombinationen der eingegebenen Buchstaben, die im Wörterbuch verzeichnet sind.
Dim iRow As Long
Sub GetString()
'***OriginalCode von KuTools for Excel
Dim xStr As String
Dim FRow As Long
Dim xScreen As Boolean
Dim lol As Long
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
xStr = Application.InputBox("Text eingeben:")
If Len(xStr) 2 Then Exit Sub
If Len(xStr) > 8 Then
MsgBox "zu viele Permutationen!", vbInformation
Exit Sub
Else
ActiveSheet.Columns(1).ClearContents
FRow = 1
Call GetPermutation("", xStr, FRow)
End If
lol = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:A" & lol).RemoveDuplicates Columns:=1, Header:=xlNo
iRow = 0
End Sub
Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long)
Dim i As Integer, xLen As Integer
xLen = Len(Str2)
If xLen 2 Then
If Application.CheckSpelling(Str1 & Str2, , False) = True Then
iRow = iRow + 1
Range("A" & iRow) = Str1 & Str2
End If
xRow = xRow + 1
Else
For i = 1 To xLen
Call GetPermutation(Str1 + Mid(Str2, i, 1), Left(Str2, i - 1) + Right(Str2, xLen - i), xRow)
Next
End If
End Sub
Gruß Rolf