Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1560to1564
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Der Find Funktion etwas hinzufügen

Der Find Funktion etwas hinzufügen
07.06.2017 14:43:08
Marcel
Hallo Zusammen,
bei meinem Code handelt es sich um eine Automatische Angebotserstellung. Durch eine Auswahl in Excel sollen Standardtexte die auf anderen Blättern stehen automatisch in die Word Datei transferiert werden. Das Problem bei mir ist, das ich Wörter nur einzeln ersetzen kann. Obwohl noch mehr hinzugefügt werden soll, hört mein Makro bei dem ersten auf.
1). Kennt ihr eine Methode mit der man ganze Sätze bzw. Abschnitte in das Suchwort einfügen kann?
2). Falls nein, müsste ich wissen wie man nach dem Finden eines Wortes dies nicht überschreibt sondern nur etwas hinzufügt.
For k = Rangeword To letztezeile
For l = 2 To letztespalte
from_text = ThisWorkbook.Sheets("MainSheet").Cells(i, 1).Value
to_text = ThisWorkbook.Sheets("Harden").Cells(k, l).Value
With objDoc
Set myRange = .Content
With myRange.Find
.Execute FindText:=from_text
End With
Selection.TypeText Text:=to_text
End With

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Der Find Funktion etwas hinzufügen
07.06.2017 15:33:32
ChrisL
Hi Marcel
Hört sich nach einem einfachen Suchen/Ersetzen an...
Suchen nach "Suchwort"
Ersatz durch "Suchwort und neue Zusätze"
cu
Chris
AW: Der Find Funktion etwas hinzufügen
08.06.2017 12:07:00
Marcel
Oder auch der Fehler Index außerhalb des gültigen Beriech Laufzeitfehler '9'. Wenn ich den originalen Namen von StandSent neheme und nicht das Kürzel
AW: Der Find Funktion etwas hinzufügen
07.06.2017 16:55:01
Max2
Hallo,
ich würde das so machen:


With myRange.Find
.Text = "Finde mich"
.Replacement.Text = "Ersatz"
.Execute Replace:=wdReplaceAll, Forward:=True, _
Wrap:=wdFindContinue
Damit ersetzt er alle Vorkommnisse des gesuchten
Anzeige
AW: Der Find Funktion etwas hinzufügen
08.06.2017 12:04:16
Marcel
Hatte es mit replace probiert, aber die Formatierung der Tabelle wird nicht beibehalten, also wäre dies ein extra Aufwand für den Nutzer. Habe es nun mit Bookmarks gemacht, funktioniert auch alles bis auf die Auswahl des Bereichs, kann mir da jemand helfen? sonst ist alles fertig, sehr ärgerlich! Habe extra einen variablen Bereich geschaffen, aber dort kommt die Fehlermeldung "Laufzeitfehler '1004' Andwedungs- oder objektdefinierter Fehler' glaubt ihr das liegt an den vielen Variablen? könnte auch die Adresse ausgeben lassen, aber das wird nicht viel helfen. Bei der fetten Zeile funktioniert auch nicht .select .copy .value
letztespalte = StandardizedSentences.Cells(Rangeword, 256).End(xlToLeft).Column
letztezeile = StandardizedSentences.Cells(Rangeword, 3).End(xlDown).Row
Set TargetField = ThisWorkbook.Worksheets("StandSent").Range(Cells(Rangeword, 2), Cells (letztezeile, letztespalte))
lngI = i - 2
Set objBM = objDoc.Bookmarks(lngI)
Set objWordRange = objDoc.Bookmarks(lngI).Range
TargetField.Paste
Anzeige
AW: Referenzierung
11.06.2017 20:55:50
Werner
Hallo Marcel,
liegt wohl an der unvollständigen Referenzierung. Um korrekt zu Referenzieren muss vor alle Range-Objekte (Range, Cells) das Tabellenblatt geschrieben werden. Oder einfacher mit einer With - End With Klammer.
With ThisWorkbook.Worksheets("StandSent")
Set TargetField = .Range(.Cells(Rangeword, 2), .Cells(letztezeile, letztespalte))
End With
Wichtig sind dabei die Punkte vor Range und Cells.
Gruß Werner
AW: Referenzierung
12.06.2017 12:19:05
Marcel
Hallo Zusammen,
danke Werner das war ein teil der Fehler. Leider ist es nicht möglich den Bereich mit Variablen festzulegen. Ist euch da etwas bekannt?
        lngI = i - 2
AktBookmark = "Bookmark" & lngI
' Kopiere einen Bereich an die Textmarke Wertetabelle
If objDoc.Bookmarks.Exists(AktBookmark) = True Then
Select Case lngI
Case Is = 1
            ThisWorkbook.Sheets("Tabelle1").Range("CelladresseEins:CelladresseZwei").Copy _
....         End Select
            ThisWorkbook.Sheets("Tabelle 1").Range("A7:E10").Copy
Set objWordRange = objDoc.Bookmarks(AktBookmark).Range
objWordRange.Paste
End If
Der fette Quelltext funktioniert, der kursive allerdings nicht. Nicht mal wenn ich die Adressen direkt anspreche, also statt "Range(Cells(Rangeword, 2), Cells (letztezeile, letztespalte))". Kennt ihr euch damit aus? Wenn die variable Festlegung nicht möglich wäre, wäre es ein großer Verlust der Flexibilität.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige