MS-Office-Forum

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

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 14.06.2018, 10:26   #1
es6001
Neuer Benutzer
Neuer Benutzer
Standard VBA - Text suchen und löschen

Hallo,

ich suche in meinem Dokument nach einem bestimmten Text und möchte diesen löschen.

Mit dem Link http://www.chf-online.de/vba/vbafindreplace.htm habe ich genau das gefunden, was ich gesucht habe.

Allerdings, wenn ich

Sub SearchAndReplace()
fkt_Search "<|", "|>", False
End Sub

auf True setze, dann kommt es zum Laufzeitfehler 5904.

Kann mir hier jemand helfen?

LG
Edwin

Geändert von es6001 (14.06.2018 um 10:45 Uhr).
es6001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 15:00   #2
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Edwin,

informativer als die Nummer wäre die Beschreibung des Laufzeitfehlers gewesen. Aber wie auch immer: Das müsste man sich ansehen. Lad doch bitte ein Musterdokument hoch.

Es muss nichts enthalten außer ein bisschen Blindtext und den zu löschenden Text. Falls der Text in einer Tabelle, einem Textfeld oder sonst wo Exotisches gesucht werden soll, bilde das im Musterdokument auch ab.

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 15:16   #3
es6001
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard Musterdokument

Hallo Gerhard,

hier ein Musterdokument.

Ich hoffe Du verstehst, was ich meine.

LG
Edwin
Angehängte Dateien
Dateityp: docx Mustertext.docx (10,0 KB, 3x aufgerufen)
es6001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 15:24   #4
es6001
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard Ergänzung zum Laufzeitfehler

Hallo Gerhard,

Meldung zum Laufzeitfehler "Bereich kann nicht bearbeitet werden"

Beim Debuggen siehe Anhang

LG
Edwin
Angehängte Grafiken
Dateityp: jpg Laufzeitfehler 5904.JPG (22,2 KB, 3x aufgerufen)
es6001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 15:53   #5
es6001
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard Musterdokument jetzt mit VBA

Hallo Gerhard,

sorry, hab den VBA vergessen einzufügen.

Sobald in

Sub SearchAndReplace()
fkt_Search "<|", "|>", False
End Sub

False mit True ersetzt wird, kommt die Fehlermeldung.

LG
Edwin
Angehängte Dateien
Dateityp: docx Mustertext.docx (10,0 KB, 1x aufgerufen)
es6001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 16:06   #6
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Edwin,

ich hab Christians Makro in dein Dokument kopiert und als einzige Änderung bei dem abschließendem Tag noch die zweite spitze Klammer hinzugefügt (wie bei dir ersichtlich).

Das Makro funktioniert tadellos, sowohl beim Färben als auch beim Löschen. Ich kann auch an dem Code nichts erkennen, was da problematisch sein könnte. Mit welcher Word-Version arbeitest du?

Ich häng dir dein Dokument mit dem Makro drin an.

Aber du brauchst gar kein Makro. Es geht auch per normalem Suchen und Ersetzen. Schau dir das Bild an.

Nachtrag: Wenn du ein Makro mitsenden willst, benötigst du das Dokumentformat docm. Ein docx verliert sein Makro, sobald es gespeichert wird
Angehängte Grafiken
Dateityp: png platzhaltersuche.png (5,6 KB, 4x aufgerufen)
Angehängte Dateien
Dateityp: docm EdwinMustertext.docm (15,4 KB, 6x aufgerufen)

__________________

Gruß
Gerhard

Geändert von Gerhard H (14.06.2018 um 16:09 Uhr). Grund: Nachtrag wg Überschneidung
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 16:54   #7
es6001
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard Es liegt an meinem Text

Hallo Gerhard,

es liegt an meinem Text, deshalb kommt es zum Fehler.
Jetzt stehe ich aber trotzdem auf dem Schlauch und hoffe auf Deine Hilfe.

Im Anhang der Mustertext mit dem der Fehler kommt.

LG
Edwin
Angehängte Dateien
Dateityp: docm Mustertext.docm (17,9 KB, 3x aufgerufen)
es6001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 14.06.2018, 21:01   #8
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Edwin,

dein zu durchsuchender Text ist die Beschriftung eines Hyperlink-Feldes. Das Sprungziel dieses Hyperlinks ist aber eine ganz andere Adresse (guck es dir an mit Alt-F9). Und darin liegt die Crux.

Du musst also noch ein bisschen genauer werden:
Benötigst du am Ende einen funktionsfähigen Hyperlink?
Wenn ja: soll er nach Max Mustermann gehen oder an dich?

Wenn nein, hätte ich folgenden Vorschlag zu machen:
1. Auflösung des Feldes in normalen Text, sonst klappt die Suche nicht (übrig bleibt der Max Mustermann).
2. Ersetzen-Vorgang nach den spitzen Klammern.

Das geht dann doch am einfachsten per Makro. Das hab ich in das neue Musterdokument eingebaut (im Modul ThisDocument). Starte die Prozedur Sub main()

Wenn das nicht ist, was du wolltest, erkläre dein gewünschtes Ergebnis genauer.
Angehängte Dateien
Dateityp: docm EdwinMustertext.docm (23,6 KB, 5x aufgerufen)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.06.2018, 12:16   #9
es6001
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Gerhard,

erst mal sorry für die späte Antwort.
Kam einfach nicht mehr dazu.

Hyperlink benötige ich nicht und kann entfernt werden.
Übrig soll nur der Max.Mustermann@123.de ohne Hyperlink bleiben.

Wie entferne ich den Hyperlink per VBA?

Vielen Dank!

VG
Edwin
es6001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.06.2018, 13:23   #10
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Edwin,

leider hab ich vor lauter guten Ratschlägen vergessen, das neue Makro ins Musterdokument einzubauen. Jetzt ist es drin und lautet so:
Code:

Sub main()
FelderAufloesen
nur1AdresseUebriglassen
End Sub

Sub FelderAufloesen()
Dim i As Long

    With ActiveDocument
        For i = .Fields.Count To 1 Step -1
            If .Fields(i).Type = wdFieldHyperlink Then
                .Fields(i).Unlink
            End If
        Next i
    End With
End Sub

Sub nur1AdresseUebriglassen()

With ActiveDocument.Range.Find
    .MatchWildcards = True
    .Text = "\<*\>\>"
    .Replacement.Text = ""
    .Execute Replace:=wdReplaceAll
End With
End Sub
Starte das Makro Sub main(). Die Hyperlink-Felder werden aufgelöst und stehen bleibt jeweils nur die Beschriftung des ehemaligen Hyperlinks.
Angehängte Dateien
Dateityp: docm EdwinMustertext.docm (22,3 KB, 2x aufgerufen)

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.06.2018, 13:56   #11
es6001
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard Perfekt!

Hallo Gerhard,

VBA funktioniert.

Herzlichen Dank.
Du hast mir hiermit sehr viel Mühe erspart.

Liebe Grüße
Edwin
es6001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 06.02.2019, 10:40   #12
es6001
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard jetzt funktioniert der VBA plötzlich nicht mehr

Hallo,

im Anhang der Mustertext mit VBA.

max@mustermann.de

Der Hyperlink wird entfernt, aber der Rest bleibt erhalten.
Ich möchte, dass nur max@mustermann.de stehen bleibt.

Ich habe keine Ahnung warum der VBA nicht mehr funktioniert.
Kann mir jemand helfen?

Vielen Dank!

Gruß
Edwin
Angehängte Dateien
Dateityp: docm Mustertext.docm (16,4 KB, 3x aufgerufen)
es6001 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 06.02.2019, 13:19   #13
Gerhard H
MOF Guru
MOF Guru
Standard

Hallo Edwin,

erst mal fehlte bei dem End das With. Aber es klappt trotzdem nicht, weil dein Musterhyperlink jetzt anders aufgebaut ist.

Im Dokument aus Beitrag 7 bestand der (von Feld zu Text verwandelte) Hyperlink aus drei ineinander verschachtelten < mailto > -Elementen:
max.mustermann@123.de < mailto:max.mustermann@123.de < mailto:max.mustermann@123.de < mailto:max.mustermann@123.de > > mit doppelt geschlossenen spitzen Klammern am Ende.

Jetzt sieht er so aus:
max @ mustermann.de < max @ mustermann.de >

Dafür muss der Ersetzen-Teil des Makros natürlich anders lauten. Die Frage ist, wie weiterverfahren. Wenn du nur diese zwei Varianten Hyperlinks hast, würde ich es so machen:

Der erste Teil des Makros aus Beitrag 10 (Sub FelderAufloesen) bleibt wie er ist. Im zweiten Teil änderst du die Zeile .Text =... damit sie zu neuen Sorte Hyperlink passt. Dann hängst du noch einen weiteren Durchgang an, der eventuell übrige geschlossene spitze Klammern erledigt. Zusammengesehen also so:
Code:

Sub main()
FelderAufloesen
nur1AdresseUebriglassen
spitzeKlammerWeg
End Sub

Sub FelderAufloesen()
Dim i As Long

    With ActiveDocument
        For i = .Fields.Count To 1 Step -1
            If .Fields(i).Type = wdFieldHyperlink Then
                .Fields(i).Unlink
            End If
        Next i
    End With
End Sub

Sub nur1AdresseUebriglassen()
With ActiveDocument.Range.Find
    .MatchWildcards = True
    .Text = "\<*\>
    .Replacement.Text = ""
    .Execute Replace:=wdReplaceAll
End With
End Sub

Sub spitzeKlammerWeg()
With ActiveDocument.Range.Find
    .MatchWildcards = True
     .Text = "\>"
    .Replacement.Text = ""
    .Execute Replace:=wdReplaceAll
End With
End Sub
Falls du aber noch andere Varianten von Hyperlinks im Dokument hast, solltest du von jeder Variante eine in ein Dokument kopieren und das hier hochladen.

__________________

Gruß
Gerhard
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 06.02.2019, 14:30   #14
es6001
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Strahlen Perfekt!

Hallo Gerhard,

vielen Dank!
VBA funktioniert.
Verstanden habe ich den VBA zwar nicht, aber das ist mein Problem.


Warum die bescheuerten spitzen Klammern überhaupt ständig entstehen, entzieht sich ebenfalls meiner Kenntnis.
Hängt irgendwie mit Outlook und Synchronisation vermutlich zusammen. Aber soll ebenfalls nicht Inhalt dieses Threads sein.

Vielen Dank nochmals Gerhard.

Gruß
Edwin
es6001 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:26 Uhr.



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

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