Medistar->Word->vorgegebener Zeilenumbruch /

Hallo,

folgendes Problem.
Es wird ein Text aus Medistar in Word exportiert / koppiert.

Sieht dann so aus (Bsp.):

Text1:dsfadfjkhfkjshfkjText2:aljkhadjhasbkjashdText3:sadhklckajbckjf

soll aber so aussehen:

Text1:dsfadfjkhfkjshfkj
Text2:aljkhadjhasbkjashd
Text3:sadhklckajbckjf

Wurde bisher irgendwie über ein Makro gemacht, dass z.B. bei Linie 22 Zeichen 13 einen Zeilenumbruch gemacht hat.
Nun das Problem ist natürlich, dass die ganze Formatierung nicht mehr stimmt, sobald die Anzahl der Linien oder Zeichen verändert wird. Also wenn einfach der Text ein anderer ist.

Habe leider keine Ahnung von VBA.
Aber irgendwie muss es doch möglich sein, „Text1“, „Text2“, … als unterstrichenen Zeilenanfang zu definieren und im Dokument / über ein Makro zu verankern, damit immer die gleiche Formatierung dabei rauskommt, egal wie lang der Text dahinter ist.

Ich hoffe es ist verständlich was ich meine und mir kann geholfen werden.

Vielen Dank.

Mit Suchen u. Ersetzen (kannst Du auch als Makro aufzeichnen:
Suchen nach (mit Mustervergleich bzw. Platzhalterzeichen)
(Text[0-9]@:smile:
Ersetzen durch:
^p\1 hier noch bei Format - Zeichen - unterstrichen wählen.

Mit Suchen u. Ersetzen (kannst Du auch als Makro aufzeichnen:
Suchen nach (mit Mustervergleich bzw. Platzhalterzeichen)
(Text[0-9]@:smile:
Ersetzen durch:
^p\1 hier noch bei Format - Zeichen - unterstrichen wählen.

Vielen Dank!

Das klappt schonmal ganz gut.

Während des Makro aufzeichnens hat alles perfekt - mit Absatz und Unterstreichen - geklappt. Wenn ich das Makro dann allerdings ausführe, fehlen die Unterstreichungen - ansonsten funktionierts. Auch im Quellcode des Makros finde ich nichts was auf das Unterstreichen hindeuten könnte.

Zudem frage ich mich, warum manchmal
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
eingefügt wurde und manchmal nicht.
Ich habe die zwei Zeilen mal überall entfernt und es funktioniert trotzdem noch wie vorher - was haben die für eine Bedeutung?

Zudem: was ist der Unterschied zwischen „^l“ und „^p“? Funktioniert beides. Zu bedenken wäre, dass kein Zeilenumbruch gemacht werden soll, falls das Wort schon zufälligerweise am Zeilenanfang des Textblocks steht.

Wie war das gemeint mit „^p\1“ … das steht dann bei mir einfach noch „\1“ vor dem Wort, wenn ich das mache.

Sieht so aus (Ausschnitt):

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „Patient:“
.Replacement.Text = „Patient:“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute replace:=wdReplaceOne
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseEnd
Else
.Collapse Direction:=wdCollapseStart
End If
.Find.Execute
End With

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = „Morphologie:“
.Replacement.Text = „^lMorphologie:“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute replace:=wdReplaceOne
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseEnd
Else
.Collapse Direction:=wdCollapseStart
End If
.Find.Execute
End With

With Selection.Find
.Text = „Funktion:“
.Replacement.Text = „^lFunktion:“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
With Selection
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseStart
Else
.Collapse Direction:=wdCollapseEnd
End If
.Find.Execute replace:=wdReplaceOne
If .Find.Forward = True Then
.Collapse Direction:=wdCollapseEnd
Else
.Collapse Direction:=wdCollapseStart
End If
.Find.Execute
End With

Danke im Voraus.

Hallo,

ich würde ganz dringend davor warnen, in das höchst komplizierte Zusammenspiel einer Fernsteuerung von Word durch eigene Makros einzugreifen, wenn man nicht 100% genau weiß, was man da tut, und welche Auswirkungen dies hat. Üblicherweise schafft man sich damit deutlich mehr Probleme als man löst.

Die DOTs, werden bei solchen Geschichten ohnehin vom Software-Hersteller gewartet, und es besteht die gute Chance, dass eigene Makros bei der nächsten Wartung wieder rausgeschmissen werden.

Gruß vom Wiz

Danke für die Warnung - aber das geht schon in Ordnung so.
Ich kann deine Ausführungen allerdings nichts so ganz nachvollziehen.
Wie auch immer, ich wurde gebeten ein Makro zu erstellen, welches die Zeilenumbrüche plus Unterstreichen automatisiert. Nicht mehr und nicht weniger.

Der Vorschlag von Lisa4 war doch schonmal äußerst brauchbar - vielen Dank nochmal. Jetzt gehts eben nur um die Feinheiten. Wie gesagt, das Unterstreichen funktioniert nicht.
Vielleicht kann mal noch jemand darauf eingehen.

MfG

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Sub Makro5()

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Underline = wdUnderlineSingle
With Selection.Find
.Text = „(Text[0-9]@:smile:
.Replacement.Text = „^p\1“
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Zu Deinen Fragen:
Selection.Find.ClearFormatting - hier wird bei der Suche - keine Formatierung eingestellt
Selection.Find.Replacement.ClearFormatting - hier bei Ersetzen - s.o.
Selection.Find.Replacement.Font.Underline = wdUnderlineSingle - hier wird für die Ersetzung - unterstrichen gewählt
^p - Absatzmarke
^| - man. Zeilenschaltung
welche Word-Version hast Du - es wird z.B. bei Word 2003 für die Suche nicht alles mitaufgezeichnet beim Makro, dieses Problem habe ich schon öfter erlebt.

Gruß Lisa

eine Frage vergessen:
was heißt beim Ersetzen ^p\1
Ersetzen durch: Absatzmarke (enter) und das was im Suchdialog in Klammern stand ()und gefunden wurde.

Hallo Lisa,

vielen Dank für deine Hilfe. Es funktioniert, dank dir, jetzt alles so wie es sein soll.

Gruß

P.S.: Ja, ich habe Word 2003 - dann lags wohl daran, dass das Unterstreichen nicht mit aufgezeichnet wurde.