Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Seriendruckfelder durch gleichnamige Textmarken ersetzen
zurück: "Zuletzt gedruckt"-Eigenschaft auf 0 setzen weiter: Word Zugriff personalisieren Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
gast99
Gast


Verfasst am:
15. Aug 2008, 10:13
Rufname:

Seriendruckfelder durch gleichnamige Textmarken ersetzen - Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

Hallo!

Ich habe von meinem Vorgänger eine Access-Datenbank übernommen, die mit einer Word-Verknüpfung über einen Seriebrief funktioniert. Aus verschiedenen Gründen möchte ich dies nun aber auf Textmarken umbauen. So weit kein Problem aus Access-Sicht.
Ich muss nun aber ALLE Word-Vorlagen anpacken und die jeweiligen Seriendruckfelder durch gleichnamige Textmarken ersetzen. Händisch sehr zeitaufwändig. Ein Seriendruckfeld durch eine Textmarke ersetzen bekomme ich per VBA hin, allerdings scheitere ich daran, die Seriendruckfelder auszulesen. Ist dies möglich, hat einer eine Idee?

Gruß

Leckir
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
15. Aug 2008, 11:39
Rufname:
Wohnort: Leipzig


AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen - AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

Hallo Leckir,

so kannst Du die Felder ausfindig machen und auslesen, dann noch den String auswerten und die Textmarke anstelle des Feldes setzen:
Code:
Sub SeriendruckfelderAufloesen()

    Dim fldSF As Word.Field
    Dim strFeldinhalt As String
   
    For Each fldSF In ActiveDocument.Fields
        If fldSF.Type = wdFieldMergeField Then
            strFeldinhalt = fldSF.Code.Text
            Debug.Print strFeldinhalt
            'Hier kannst Du den String auswerten und den Namen herausfiltern,
            'dann die TExtmarke setzen, geht auch mit dem Range des Feldes
            ' fldSF.Result gibt den Range des Feldes zurück
        End If
    Next fldSF
       
End Sub

_________________
Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa

Guter Rat ist teuer!
leckir
Im Profil kannst Du frei den Rang ändern


Verfasst am:
15. Aug 2008, 14:10
Rufname:

AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen - AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

Danke!

Irgendwie passiert gar nichts.
Darüber hinaus müsste allerdings die Funktion insoweit auch noch erweitert werden, da jede Textmarke nur einmal vorkommen darf, muss wenn ein Seriendruckfeld öfters vorkommt an die weiteren jeweils ein "_" und eine laufende Nr. angehängt werden.

Gruß

leckir
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
15. Aug 2008, 16:15
Rufname:
Wohnort: Leipzig

AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen - AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

Hallo leckir,

Du hattest nach dem Auslesen der Felder gefragt und wolltest den Rest selbst machen, so hatte ich jedenfalls die Frage verstanden. Die Inhalte der Felder gibt der obige Code im Direktfenster aus.

Aber na gut, probier mal das hier:
Code:
Option Explicit

Sub SeriendruckfelderAufloesen()

    Dim fldSF As Word.Field
    Dim strFeldinhalt As String
   
    For Each fldSF In ActiveDocument.Fields
        If fldSF.Type = wdFieldMergeField Then
            strFeldinhalt = Trim(fldSF.Code.Words(3))
            ActiveDocument.Bookmarks.Add Name:=strFeldinhalt, Range:=fldSF.Result
            strFeldinhalt = ActiveDocument.Bookmarks(strFeldinhalt).Range.Text
            strFeldinhalt = Mid(strFeldinhalt, 2, Len(strFeldinhalt) - 2)
            fldSF.Unlink
            Call ReSetBookmark(TMName:=strFeldinhalt, TMInhalt:=strFeldinhalt)
        End If
    Next fldSF
       

End Sub

Public Sub ReSetBookmark(ByVal TMName As String, ByVal TMInhalt As String)
'Recycling-Textmarke mit übernommenen Werten, geht für alle Textmarken

    Dim bm As Bookmark
    Dim rng As Range
   
    If ActiveDocument.Bookmarks.Exists(TMName) Then
        Set bm = ActiveDocument.Bookmarks(TMName)
        Set rng = bm.Range
        rng.Text = TMInhalt
        ActiveDocument.Bookmarks.Add Name:=TMName, Range:=rng
    End If
   
    Set rng = Nothing
    Set bm = Nothing
   
End Sub

Eventuelles Weiterzählen bei gleichnamigen Textmarken kannst Du natürlich noch einbauen. Ich will Dich ja auch nicht unterfordern. Wink

Gruß
Lisa
leckir
Im Profil kannst Du frei den Rang ändern


Verfasst am:
18. Aug 2008, 15:28
Rufname:


AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen - AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

Hallo Lisa!

Ich bin am verzweifeln.
Ich bekomme es nicht hin.

Weder das mit dem weiterzählen, noch dass er mir die Bookmarks leer lässt und nicht die letzten Werte reinschreibt.

Kannst Du mir noch einmal etwas auf die Sprünge helfen.

Gruß

leckir
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
18. Aug 2008, 16:55
Rufname:
Wohnort: Leipzig

AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen - AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

Hallo leckir,

beschreib doch bitte mal genau, was jetzt noch nicht funktioniert.
  1. Hast Du den letzten von mir geposteten Code ausprobiert? Tut der das, was Du wolltest? Werden die Seriendruckfelder durch gleichnamige Textmarken ersetzt? Klappt das erst einmal prinzipiell? (Bei mir funktioniert er nämlich.)
  2. Was genau gibt es noch für Sonderfälle? Gibt es mehrere gleichnamige Seriendruckfelder? Oder worin bestehen genau die Ausnahmen?
  3. Was heißt das mit dem Leerlassen? Kannst Du das genau erklären?

Sorry, aber so lange ich nicht verstehe, was ablaufen soll, wie wollen wir es dem Programm beibringen? Wink
Gruß
Lisa
Gast



Verfasst am:
01. Sep 2008, 09:13
Rufname:

AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen - AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

Hallo!

Tschuldigung, dass ich erst jetzt antworte.

1) Also das Ersetzen klappt prinzipiell.
2) Bei mehreren gleichnamigen Seriendruckfeldern müsste er dann bei den weiteren Textmarken "_1" etc. anhängen.
3) Er füllt derzeit "in" die Textmarke den bisherigen Wert aus dem Seriendruckdokument ein.

Vielen Dank!

Gruß

Leckir
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
01. Sep 2008, 12:54
Rufname:
Wohnort: Leipzig

AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen - AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

Hallo Leckir,

Zitat:
3) Er füllt derzeit "in" die Textmarke den bisherigen Wert aus dem Seriendruckdokument ein.

Ich dachte, das ist das Ziel, dass der ausgelesene Text eingefüllt wird? Oder sollen die Textmarken leer sein? In dem Fall beim Füllen der Bookmarks ein Leerzeichen übergeben:
Code:
Call ReSetBookmark(TMName:=strFeldinhalt, TMInhalt:=" ")

Gruß
Lisa
Gast



Verfasst am:
02. Sep 2008, 11:18
Rufname:

AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen - AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

Jo, das funktioniert ja schon mal super.

Habe noch an dem letzten Problem getüftelt, aber da werde ich dann doch wohl noch einmal auf Deine Hilfe zurückgreifen müssen.

Also wenn ein Seriendruckfeld öfters vorkommt, sollen die weiteren Textmarken dann eine Nummer angehängt bekommen.

Gruß

leckir
Gast



Verfasst am:
04. Sep 2008, 09:30
Rufname:


AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen - AW: Seriendruckfelder durch gleichnamige Textmarken ersetzen

Nach oben
       Version: Office XP (2002)

ich habe es dann doch noch selbst hinbekommen:

Code:
Sub SeriendruckfelderAufloesen()

    Dim fldSF As Word.Field
    Dim strFeldinhalt As String, strFeldinhalt2 As String, x As Long
    x = 1
   
    For Each fldSF In ActiveDocument.Fields
        If fldSF.Type = wdFieldMergeField Then
            strFeldinhalt = Trim(fldSF.Code.Words(3))
            If ActiveDocument.Bookmarks.Exists(strFeldinhalt) Then
               strFeldinhalt2 = strFeldinhalt & "_" & x
               While ActiveDocument.Bookmarks.Exists(strFeldinhalt2)
               x = x + 1
               strFeldinhalt2 = strFeldinhalt & "_" & x
               Wend
            Else
                strFeldinhalt2 = strFeldinhalt
            End If
            ActiveDocument.Bookmarks.Add Name:=strFeldinhalt2, Range:=fldSF.Result
            strFeldinhalt = ActiveDocument.Bookmarks(strFeldinhalt2).Range.Text
            strFeldinhalt = Mid(strFeldinhalt, 2, Len(strFeldinhalt) - 2)
            fldSF.Unlink
            Call ReSetBookmark(TMName:=strFeldinhalt2, TMInhalt:="")
        End If
    Next fldSF
       

End Sub

Public Sub ReSetBookmark(ByVal TMName As String, ByVal TMInhalt As String)
'Recycling-Textmarke mit übernommenen Werten, geht für alle Textmarken

    Dim bm As Bookmark
    Dim rng As Range
   
    If ActiveDocument.Bookmarks.Exists(TMName) Then
        Set bm = ActiveDocument.Bookmarks(TMName)
        Set rng = bm.Range
        rng.Text = TMInhalt
        ActiveDocument.Bookmarks.Add Name:=TMName, Range:=rng
    End If
   
    Set rng = Nothing
    Set bm = Nothing
   
End Sub


Nochmals vielen Dank!
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Serienbriefe: IF-Feld, mehrere Bedingungen, verknüpft mit Textmarken 0 Psychobe 194 25. Nov 2013, 15:23
Psychobe IF-Feld, mehrere Bedingungen, verknüpft mit Textmarken
Keine neuen Beiträge Word Serienbriefe: Fortlaufende Adressen bei Seriendruckfelder 2 heiko123456 208 17. Jul 2013, 11:41
heiko123456 Fortlaufende Adressen bei Seriendruckfelder
Keine neuen Beiträge Word Serienbriefe: Seriendruckfelder werden nicht mit ausgerduckt 3 Gast 294 14. Dez 2012, 16:44
MarkMH_K Seriendruckfelder werden nicht mit ausgerduckt
Keine neuen Beiträge Word Serienbriefe: Seriendruckfelder nur bei bestimmten Datensätzen auslesen 0 skorpion.14 199 10. Okt 2012, 20:28
skorpion.14 Seriendruckfelder nur bei bestimmten Datensätzen auslesen
Keine neuen Beiträge Word Serienbriefe: Word 2003 – Textmarken sichtbar machen 1 goetzbos 907 05. Jul 2012, 10:33
MarkMH_K Word 2003 – Textmarken sichtbar machen
Keine neuen Beiträge Word Serienbriefe: Excel-File zu gross:Seriendruckfelder werden nicht angezeigt 0 AndreaK 1110 15. Mai 2011, 12:08
AndreaK Excel-File zu gross:Seriendruckfelder werden nicht angezeigt
Keine neuen Beiträge Word Serienbriefe: mehrere Seriendruckfelder in Bedingung 16 sunshine-sr 3840 22. März 2011, 12:18
Vera 22.03.2011 mehrere Seriendruckfelder in Bedingung
Keine neuen Beiträge Word Serienbriefe: Seriendruckfelder mit Tabulator? 3 garfield4711 1104 21. Feb 2011, 17:23
Dennis1896 Seriendruckfelder mit Tabulator?
Keine neuen Beiträge Word Serienbriefe: zwei Seriendruckfelder verknüpfen 4 Beach 1612 26. Jul 2009, 22:44
asdff zwei Seriendruckfelder verknüpfen
Keine neuen Beiträge Word Serienbriefe: Textmarken per Includetext einfügen in Abhängigkeit von ASK 0 Robotixx 1805 13. Jul 2009, 19:45
Robotixx Textmarken per Includetext einfügen in Abhängigkeit von ASK
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Word Formate: Suchen/Ersetzen von Textblöcken in Word 2 Lovic 2425 03. Jul 2009, 19:48
Lisa Suchen/Ersetzen von Textblöcken in Word
Keine neuen Beiträge Word Serienbriefe: Wenn... Dann.... Sonst-Bedingungen mit Textmarken 2 Hittebarn 1401 23. Jan 2009, 09:02
Gast Wenn... Dann.... Sonst-Bedingungen mit Textmarken
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps