MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Word
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 07.02.2018, 11:19   #1
Wurzaaa
MOF User
MOF User
Standard Word 2010 - Suchen & Ersetzen in Kopfzeile (dynamisch)

Hallo Community,

wie der Titel schon sagt, suche ich einen dynamischen "Suche & Ersetze"-VBA-Code.

Den folgenden Beitrag (http://www.*************************426974_0_0_asc.php) habe ich so geändert, dass es eine bestimmte Zeichenkette sucht und ersetzt.

Wie schafft man es aber die folgende Zeichenkette zu suchen und dementsprechend zu ändern:

Q_073&AA_05

Q_ ist immer gleich, aber die länge und das Ende der Zeichenkette ist variabel.
Gibt es dafür eine Funktion?

Vielen Dank.

MfG,
Daniel
Wurzaaa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.02.2018, 11:44   #2
halweg
MOF Koryphäe
MOF Koryphäe
Standard

Schau dir doch mal die Platzhaltersuche an, damit sollte das möglich sein. Welcher Ausdruck da genau passt, dafür fehlt mir jetzt der Dokumenthintergrund.

__________________

Windows 7, Windows 10, Office 2002, Office 2010
halweg ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.02.2018, 13:11   #3
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Daniel,

die Forumssoftware lässt Links auf das von dir gewünschte Forum nicht zu. Zerstöre den Link, z.B. durch Einfügen eines Sternchens statt eines Bindestrichs, dann kann man ihn wenigstens lesen und kopieren.

Außerdem solltest du versuchen, die Eigenheiten deines Suchstrings ein wenig detaillierter zu beschreiben, vor allem was Anzahl und Position (bzw. Reihenfolge) der Unterstriche und &-Zeichen betrifft.

Ist da pro Suchstring immer nur 1 davon enthalten? Kommt immer zuerst das &, gefolgt vom _, oder kann das auch anders sein?

Füge doch ein paar mehr Beispiele ein - positive wie negative.

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.02.2018, 13:35   #4
Wurzaaa
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo halweg, Hallo Gerhard,

danke für eure Antworten.
Der link wäre der folgende: www . office-loesung. de/ftopic426974_0_0_asc . php

Als Möglichkeiten wären die folgenden:
Q_073&AA_05
Q_073&AA-XY_05
Q_073#EJ_&AA_05
Q_073#EJ_&AA-XY_05

Gibt es vielleicht einen Befehl der mir sagt:
Suche mir Q_ und ersetze mir die ganze Zeile, weil sonst nichts in dieser Kopfzeile steht.
Wurzaaa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.02.2018, 13:47   #5
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo nochmal,

wenn deine Strings immer mit Q_ beginnen und mit _05 aufhören, langt das:
Q_*_05 (mit Mustervergleich)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.02.2018, 13:59   #6
Wurzaaa
Threadstarter Threadstarter
MOF User
MOF User
Standard

Oops, genau das tut es nicht.
Manchmal gibt es ebenfalls Appendixe die dann hinten dran mit /001 etc. gekennzeichnet werden, sprich:
Q_073#EJ_&AA-XY_01/001
Q_073#EJ_&AA-XY_05/005

Geändert von Wurzaaa (07.02.2018 um 14:14 Uhr).
Wurzaaa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.02.2018, 15:42   #7
halweg
MOF Koryphäe
MOF Koryphäe
Standard

Na ja, du merkst schon, der Teufel steckt im Detail, solange wir keinen vollständigen Überblick haben, kannst nur du ein funktionierendes Suchmuster aufbauen.
Eine Möglichkeit könnte dabei auch das mehrfache Ersetzen sein, dass ist manchmal einfacher als ein zu komplizierter Suchstring.

__________________

Windows 7, Windows 10, Office 2002, Office 2010
halweg ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.02.2018, 15:59   #8
Gerhard H
MOF Guru
MOF Guru
Standard

Na, wenns wirklich so ist:

"Suche mir Q_ und ersetze mir die ganze Zeile, weil sonst nichts in dieser Kopfzeile steht"

Dann gehts wieder einfach:
Q_*^13
Mit Mustervergleich

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.02.2018, 16:26   #9
Wurzaaa
Threadstarter Threadstarter
MOF User
MOF User
Standard

Vielen Dank für eure Antworten.
Das mit den Mustervergleichen funktioniert leider nicht so ganze.
Der implementierte Code, ist wie folgt:

Code:

    Search = "Q_*^13"
    Replace = "TEST"
Diesen Mustervergleichssuche "Q_*_05" habe ich auch probiert, hat aber leider ebenfalls zu keinem Ergebnis geführt.
Muss eventuell noch eine Einstellung erbracht werden?
Wurzaaa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.02.2018, 21:35   #10
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo nochmal,

Search = "Q_*^13"
Replace = "TEST
"
gibts nicht in den von dir verlinkten Beispielen. Da heißen die Variablennamen "suche" und "ersetze". Hast du das angepasst?

Bei deiner Sorte Suchbegriff musst du .MatchWildcards = true setzen

Ferner: Sei halt nicht so sparsam mit Informationen:

Welche Kopfzeilen willst du durchsuchen? Nur die allgemeine oder auch die von Erste Seite anders oder von Gerade / ungerade Seite? Nur im Abschnitt 1 oder in allen Abschnitten?

Außerdem: Bist du derjenige, der am Ende der Diskussion erklärt, dass er Textfelder in der Kopfzeile hat? Wenn ja: Welche Sorte Textfelder ist das?

Am besten, du lädst uns mal ein Mustrdokument hoch, anhand dessen du die Fragen beantworten kannst.

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.02.2018, 15:46   #11
Wurzaaa
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Gerhard,

vielen Dank für deine Hilfe. Mit folgendem Code hat es geklappt:

Code:

Search = "Q_*^13"
Replace = "TEST"
und

Code:

Private Sub ReplaceHeader(rng As Range, Search As String, Replace As String)

    With rng.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Text = Search
        .Replacement.Text = Replace & vbNewLine
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = True
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
    End With
    
End Sub
Wurzaaa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.02.2018, 16:11   #12
Wurzaaa
Threadstarter Threadstarter
MOF User
MOF User
Standard

Etwas ist doch noch Offen.
Beim Einsetzen des Texts ändert sich der Zeilenabstand der Zeile (s. vorher *_001 und nachher *_002 Bild), welches die Formatierung durcheinander bringt.
Angehängte Grafiken
Dateityp: png Forum_001.PNG (35,4 KB, 3x aufgerufen)
Dateityp: png Forum_002.PNG (39,0 KB, 3x aufgerufen)
Wurzaaa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.02.2018, 18:47   #13
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Daniel,

erstens würde ich nie Variablennamen mit VBA-Schlüsselwörtern benennen. Replace ist ein Argument im Zusammenhang mit dem Find-Objekt, und wenn du nun deine Variable auch so nennst, kann es schon mal Verwirrungen geben. Also machs doch so wie im Original, also so:
suche = "Q_*^13"
ersetze = "TEST"


Das ist zwar vermutlich nicht ursächlich für das Problem, und ich hab keine Ahnung, wie durch das Makro, soweit es mir einsehbar war, ein veränderter Zeilenabstand rauskommen soll. Wenn da noch nicht irgendwo ein unbekannter Makroteil rumschwirrt?

Aber da ist noch was anderes: Wenn du aber in der Kopfzeile deinen Suchbegriff raus haben willst und durch nichts respektive durch "TEST" ersetzt haben willst, dann ist das & vbNewLine ja überflüssig bis störend.

Die Zeilen würden dann also nicht so lauten:
Code:

.Text = Search
.Replacement.Text = Replace & vbNewLine
Sondern so:
Code:

.Text = suche
.Replacement.Text = ersetze

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.