Hallo Robert,
mir fiel jetzt erst auf, dass du die Suche auf die erste Zeile der Tabellen beschränken willst. Insgesamt geht es sowieso einfacher. Ich schlage vor:
Sub HinweistabellenFormat()
Dim Suchtext As String
Dim dimTabelle As Table
Suchtext = InputBox("Gib den Text ein, der in der ersten Zeile vorkommen sollte", , "test")
For Each dimTabelle In ActiveDocument.Tables
dimTabelle.Rows(1).Select
If InStr(Selection.Text, Suchtext) Then Selection.Style = "Helle Schattierung - Akzent 4"
Next
End Sub
Gruß
Holger
Holger schrieb am 22.03.2009 14:20:44:
Hallo Robert,
versuche:
Sub HinweistabellenFormat()
Dim Suchtext As String
Suchtext = InputBox("Gib den Text ein, der in der ersten Zeile vorkommen sollte", , "test")
Dim dimTabelle As Table
For Each dimTabelle In ActiveDocument.Tables
dimTabelle.Select
With Selection.Find
.ClearFormatting
.Text = Suchtext
.Execute
If .Found = True Then Selection.Style = "Helle Schattierung - Akzent 4"
End With
Next
End Sub
Gruß
Holger
Robert schrieb am 22.03.2009 13:23:21:
Danke Holger, für deinen Hinweis.
Zwar bleibt die Prozedur jetzt tatsächlich nicht mehr hängen, wenn der Suchtext mehrmals in einer Tabelle vorkommt.
Allerdings werden jetzt auch die Tabellen formatiert, die denen Begriff überhaupt nicht vorkommt.
Mein Ziel ist, dass nur diejenigen Tabellen formatiert werden, die den Suchtext in einer bestimmten Zelle oder Position beinhalten.
Z.B. in der ersten Zeile.
Gruß, Robert
Holger schrieb am 22.03.2009 09:47:06:
Hallo Robert,
deine For-Next-Schleife wird nicht so oft durchlaufen, wie dein Suchwort auftritt, sondern wie viele Tabellen du in deinem Dokument hast. Die Suche wird aber immer beim zuletzt gefundenen Wort fortgesetzt, so dass spätere nicht mehr gefunden werden, wenn das Suchwort in einer Tabelle mehrfach gefunden wird oder auch zwischen den Tabellen auftritt.
Abhilfe: Markiere die nächste Tabelle noch einem Durchlauf durch die For-Next-Schleife:
Sub HinweistabellenFormat()
Dim Suchtext As String
Suchtext = InputBox("Gib den Text ein, der in der ersten Zeile vorkommen sollte", , "Test")
Dim dimTabelle As Table
For Each dimTabelle In ActiveDocument.Tables
dimTabelle.select
With Selection.Find
.ClearFormatting
.Text = Suchtext
End With
Selection.Find.Execute
Selection.Style = "Helle Schattierung - Akzent 4"
Next
End Sub
Gruß
Holger |