# Exel 2003 VBA, Wörter einer Spalte mit der Exel Datenbank vergleichen



## Funresort (8. März 2012)

Hallo Leute,

ich möchte in Excel 2003 eine Excelspalte so einstellen, das diese alle Einträge in den Zellen überprüft, ob Wörter in diesen Zellen darin vorkommen die in der Excel Datenbank( internes Wörterbuch oder irgenteiner anderen Datenbank vorkommen vergleicht) und wenn diese vorhanden sind die Wörter rot makiert. Kenne mich leider nicht so gut in Excel aus und eig. garnicht in VBA. Wäre also über komplettlösungen froh, da ich leider über Google nichts finde. Ich bräuchte das so schnell wie möglich.

mfg. Chris


----------



## tombe (8. März 2012)

Hallo Chris,

habe zwar nur Excel 2000 aber das sollte egal sein.

In meinem Beispiel stehen alle gültigen Werte in den Zellen A1 bis A10 und in Zelle B1 wird dann immer ein Wort eingegeben.

Die Zelle B1 hat als bedingte Formatierung folgende Formel:


```
=WENN(ISTFEHLER(SVERWEIS(B1;$A$1:$A$10;1;0));1;0)
```

Dann noch die Schriftfarbe auf rot einstellen und es ist erledigt. Diese Formatierung wendest du auf alle entsprechenden Zellen an.


----------



## Funresort (8. März 2012)

Das Problem ist ich bräuchte einen Verweis auf das interne Wörterbuch von Exel, will das anhand von dem prüfen


----------



## tombe (8. März 2012)

Was genau meinst du mit "internes Wörterbuch". Die Autokorrektur oder die Rechtschreibprüfung oder was?


----------



## Funresort (9. März 2012)

job das mein ich


----------



## Zvoni (9. März 2012)

Dann wirste an VBA fast nicht vorbei kommen.
Du brauchst nen Verweis auf das Word-Objektmodell, und dort gibt es ne Klasse die da heisst "Dictionary"

EDIT: Excel hat kein "eigenes" internes Wörterbuch, Office allgemein hat das......


----------



## tombe (9. März 2012)

Ich hätte da eine Lösung mit einer benutzerdefinierten Funktion:


```
Function Check(zelle As Range)
Dim wb As Variant   'das WörterBuch
Dim i As Integer    'Zähler

With Application.AutoCorrect
    wb = .ReplacementList
    For i = 1 To UBound(wb)
        If wb(i, 2) = zelle.Value Then
            found = 1
            Exit For
        Else
             found = 0
        End If
    Next i
End With

Check = found

End Function
```

Diese Funktion in ein Modul eingeben und dann bei den Zellen (hier Zelle "A1") die bedingte Formatierung wie folgt einstellen:


```
=Check(A1)=0    'hier als Farbe grün angeben
=Check(A1)=1    'hier als Farbe rot angeben
```

Damit wird jedes Wort das im Wörterbuch vorkommt grün und jedes Wort welches darin nicht vorkommt rot dargestellt.


----------

