Löschen innerhalb einer Word-Tabelle

28/10/2009 - 12:20 von Manste | Report spam
Hallo,

Ich möchte innerhalb einer Tabellenzelle, ab einer bestimmten
Textmarke, den dahinter stehenden Text markieren. Wenn kein Text
hinter der Textmarke steht, soll auch nichts markiert werden.

Problem. Ich habe in einer Tabellenzelle eine Telefonnummer angegeben.
Teilweise steht hier eine Nebenstelle dabei, teilweise auch nicht.
Diese Nebenstelle soll jetzt über eine Eingabemaske hinzugefügt oder
geàndert werden. Dazu habe ich folgendes Makro aufgezeichnet:

' Gehe zur Textmarke Nebenstelle, lösche den dahinter stehenden Text,
füge den Text aus der Eingabemaske ein

Selection.GoTo What:=wdGoToBookmark, Name:="Nebenstelle"
Selection.Find.ClearFormatting

Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Selection.Delete Unit:=wdCharacter, Count:=1

ActiveDocument.Bookmarks("Nebenstelle").Range.Text Me.Txt_Änderung_Nebenstelle

Das funktioniert auch eigentlich so, aber:

Wenn hinter der Textmarke tatsàchlich ein Text angegeben war, dann ist
alles ok.

Steht aber hinter der Textmarke kein Text, dann wird die ganze Zelle
markiert und auch der Text der eigentlich stehen bleiben soll, wird
gelöscht (hier der vordere Teil der Telefonnummer).

Wie kann ich erreichen, dass nur dann markiert wird, wenn auch Text
hinter der Textmarke steht. Und dann eben bis zum Ende der Zelle?

Achtung, ich bin leider Anfànger.

Gruß
Manste
 

Lesen sie die antworten

#1 Thomas Gahler
28/10/2009 - 13:42 | Warnen spam
Hallo Manste


Wie kann ich erreichen, dass nur dann markiert wird, wenn auch Text
hinter der Textmarke steht. Und dann eben bis zum Ende der Zelle?


Zuerst müssen wir klarstellen, welche Art von Textmarke du denn im Einsatz
hast, denn es gibt zwei Unterschiedliche

Extras / Optionen / Ansicht / Anzeigen Textmarken aktivieren

Jetzt siehst du deine Textmarke am Bildschirm, diese wird mit grauen eckigen
Klammern dargestellt. Jetzt kann deine Textmarke nur eine ][Stelle oder
einen ganzern [Bereich] umfassen.

So wie du dein Problem beschreibst, hast du eien Textmarke im Einsatz, die
sich nur auf eine ][Stelle bezieht. ich würde dir jene empfehlen, die sich
über einen [Bereich] erstrecken, die sind für dein Vorhaben besser geeignet.
Wenn deine Nebenstelle nicht angegeben ist, dann würde ich ein Leerzeichen
eintragen [°], so ist weiterhin ein Bereich markiert. Wenn die Nebenstelle
da ist, dann sieht die Textmarke z.B. so aus [123 883].


Und hier noch die passenden Zeilen zum befüllen einer Textmarke

Sub Demo1()
Dim cText As String
Dim oRNG As Range
Dim oBM As Bookmark


cText = "ABC"


If ActiveDocument.Bookmarks.Exists("Test") Then
Set oRNG = ActiveDocument.Bookmarks("Test").Range


oRNG.Text = cText


Set oBM = ActiveDocument.Bookmarks.Add( _
Name:="Test", _
Range:=oRNG)
End If
End Sub






Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP3), Office XP (SP3)

Ähnliche fragen