Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1240to1244
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

Suche in Word

Suche in Word
SiegfriedR
Hallo, ich möchte nochmal einen Anlauf starten zum Thema: Suche in Word von Excel aus. Ich habe die Frage hier schon mal gestellt, aber die Antworten haben bei mir bisher nicht ganz funktioniert. Daher möchte ich die Aufgabenstellung nochmal deutlicher formulieren:
Ich habe in Excel eine UserForm gestartet. Auf Klick soll beim ersten Mal eine Word-Datei geöffnet werden und ein bestimmter String gesucht und angezeigt werden (es geht nur um die Suche). Das funktioniert bei mir soweit mit dem Befehl CreateObjekt usw. Danach gehe ich wieder nach Excel und möchte eine weitere Stringsuche anstoßen. Der Unterschied ist jetzt, daß die Worddatei bereits offen ist Ich hätte gern, daß wieder das bereits geöffnete Word-fenster in den Vordergrund geholt wird und mir der neue Suchstring markiert wird. Genau diese zweite Suche funktioniert nicht, dh. es wird vermutlich schon das Fenster gar nicht angesprochen. Ich dachte dazu gebe es den befehl GetObjekt, aber das geht (bei mir) nicht - warum ?
Sub KanalImDocSuchen(Suchtext)
If Suchtext = "" Then Exit Sub
Dim ObjWord As Object
Dim Version As Integer
Version = 11
DatName = Replace(ActiveWorkbook.Name, "xls", "doc")
PfadDatName = ActiveWorkbook.Path & "\" & DatName
oeffne = 0
On Error Resume Next
Set ObjWord = GetObject("Word.Application." & Version) ' Ist Word bereits geöffnet ?
If ObjWord Is Nothing Then
Set ObjWord = CreateObject("Word.Application." & Version)
oeffne = 1
End If
With ObjWord
On Error GoTo Errorhandler
If oeffne = 1 Then
.Documents.Open Filename:=PfadDatName
End If
With .Application.Selection
With .Find
.Text = Suchtext
End With
.Find.Execute
End With
.Visible = True
End With
Set ObjWord = Nothing
Exit Sub
Errorhandler:
MsgBox Error
Set ObjWord = Nothing
End Sub

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

Betreff
Benutzer
Anzeige
AW: Suche in Word
06.12.2011 21:00:39
ing.grohn
Hallo Siegfried,
probier doch mal folgendes aus:
Option Explicit
Sub TextAufrufenSuchen(DatName As String)
Dim Zeile As Long
Dim ObjWord As Object
Dim DocNeu As Object
Dim Version As Integer
Dim Antwort As String
Version = 11   ' Office 2007 = 12, Office 2010 = 14
On Error Resume Next
Set ObjWord = GetObject("Word.Application." & Version)
If ObjWord Is Nothing Then
Set ObjWord = CreateObject("Word.Application." & Version)
End If
With ObjWord
On Error GoTo Errorhandler
.Documents.Open Filename:=DatName
.Visible = True
.Application.Activate
With .Application.Selection
Do
Antwort = InputBox("Suchwort=")
If Antwort  "" Then
.Find.ClearFormatting
With .Find
.Text = Antwort
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
End With
.Find.Execute 'Replace:=wdReplaceAll
End If
Loop Until Antwort = ""
End With
End With
Set ObjWord = Nothing
Exit Sub
Errorhandler:
MsgBox Error
Set ObjWord = Nothing
End Sub
Sub TestTextsuchen()
TextAufrufenSuchen "C:\Kanzlei\Excel und Arbeitsspeicher.doc"
End Sub

Mit freundlichen Grüßen
Albrecht
Anzeige
AW: Suche in Word
07.12.2011 09:16:23
SiegfriedR
Hallo Albrecht,
eine tricki Lösung. Ist zumindest erstmal ein Behelf. Danke.
Mein Problem liegt wohl darin, das der Befehl GetObjekt nicht erkennt, daß beim zweiten Durchgang, das Word schon geöffnet ist (und es immer wieder neu öffnet).
Keine Ahnung, das ganze hängt wohl mit ActiveX zusammen ? Und mit den Funktionen habe ich hier immer mal wieder Ärger. Hängt vielleicht mit der Installationsart zusammen oder mit dem Virenscanner ? Habe ich nicht im Griff da Firmencomputer. Ich muß es vielleicht mal daheim auf meinem Privatrechner ausprobieren.
Gruß
Siegfried
AW: Suche in Word
08.12.2011 15:31:13
ing.grohn
Hallo Siegfried,
bei mir wird das Dokument lediglich einmal geöffnet!
Würd ich das Dokument ein weiteres mal öffnen, gibt es auf beiden Seiten "Fehlermeldungen"
Excel meldet: "Befehl misslungen", Word meldet: "kann die Datei nur schreibgeschütz...."
Was willst Du mit der Suche über Excel eigentlich bewirken? Ist die Suche in Word nicht einfacher?
Mit freundlichen Grüßen
Albrecht
Anzeige
AW: Suche in Word
08.12.2011 16:26:18
SiegfriedR
Danke für Deine Mühe, aber ich habe inzw eine Lösung
Suche in Word
07.12.2011 18:15:55
Anton
Hallo Siegfried,
probier's hiermit:
Code:

Sub KanalImDocSuchen()  
  Set ObjWord = GetObject("C:\***\test.doc")  
  With ObjWord
    .ActiveWindow.Visible = True
    AppActivate .ActiveWindow.Application.Caption
    With .ActiveWindow.Selection.Find  
      .Forward = True  
      .ClearFormatting
      .MatchWholeWord = True
      .MatchCase = False  
      .Wrap = 1
      .Execute FindText:="Suchtext"
    End With  
  End With  
  Set ObjWord = Nothing  
End Sub  


mfg Anton
Anzeige
AW: Suche in Word
08.12.2011 09:47:50
SiegfriedR
Hallo Anton,
das ist die Lösung !Manchmal sind es Kleinigkeiten, aber man muß erstmal darauf kommen.
Danke

143 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige