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

EXCEL von WORD aus aktivieren

EXCEL von WORD aus aktivieren
WORD
VBA-Level: befriedigend
Hallo Freunde,
Problem: Auffinden einer Zahl in einer EXCEL-Spalte von WORD aus und dann EXCEL aktivieren
Um eine WORD-Datei kleiner zu machen, habe ich von dort Daten nach Excel ausgelagert. Diese Daten
stehen in der Excel-Datei "MeineDatei.xls" in mehreren Spalten ab Spalte B. In Spalte A stehen
laufende Nummern, die sich auf jeweils eine laufende Nummer im Text meiner WORD-Datei "MeineDatei.doc" beziehen.
Die Spalte A in "MeineDatei.xls" trägt den Namen "Nummern". "MeineDatei.xls" enthält nur ein einziges
Worksheet.
Nun soll, wenn ich in WORD eine Zahl markiere (selektiere), diese Zahl in Spalte A der Datei "MeineDatei.xls" angesprungen werden.
Dieser Makro ist im WORD-Editor implementiert. Er funktioniert auch ganz gut. Es handelt sich um folgenden Makro:
Sub SucheNummerInExcel()
Dim Zahl As Long
Dim xlWb As Excel.Workbook
Dim xlWks As Excel.Worksheet
Dim rng As Excel.Range
Set xlWb = GetObject(D:\Ordner\MeineDatei.Xls")
Set xlWks = xlWb.Worksheets(1)
'Die in WORD markierte Nummer wird in eine Variable eingelesen.
Zahl = CLng(Selection.Text)
Set rng = xlWks.Range("Nummern").Find(What:= Zahl, LookAt:= xlWhole)
If Not rng Is Nothing Then
rng.Select
xlWb.Activate
xlWks.Activate
End If
End Sub
Dieser Makro soll am Schluss die EXCEL-Datei aktivieren, so dass sie auf dem Bildschirm erscheint, was aber nicht funktioniert. Wisst ihr, warum nicht?
Ausserdem frage ich mich, warum ich die Anweisung "rng.Select" nicht, wie ursprünglich vorgesehen,
in folgenden Form schreiben kann:
Excel.Application.Goto Reference:= rng, Scroll:= True
Wenn ich das nämlich tue, kommt eine Fehlermeldung. Liegt das daran, dass man von WORD aus
diesen Range nicht so aufrufen kann?
Bin für Hinweise sehr dankbar! Grüße Werner R.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: EXCEL von WORD aus aktivieren
27.10.2009 06:41:52
WORD
Hallo Werner,
bei dem von dir gewählten Zugriff auf die Exceldatei wird diese ggf. ausgeblendet in Excel gestartet.
Bevor du irgendeinen Select- oder Goto-Befehl in Excel ausführen kannst muss erst einmal alles sichtbar/aktiv gemacht werden.
Gruß
Franz
Sub SucheNummerInExcel()
Dim Zahl As Long
Dim xlWb As Excel.Workbook
Dim xlWks As Excel.Worksheet
Dim rng As Excel.Range
On Error GoTo Fehler
'  Set xlWb = GetObject("D:\Ordner\MeineDatei.Xls")
Set xlWb = GetObject("C:\Users\Public\Test\MeineDatei.Xls")
Set xlWks = xlWb.Worksheets(1)
'Die in WORD markierte Nummer wird in eine Variable eingelesen.
Zahl = CLng(Selection.Text)
Set rng = xlWks.Range("Nummern").Find(What:=Zahl, LookAt:=xlWhole)
If Not rng Is Nothing Then
xlWb.Application.Visible = True
xlWb.Application.Windows(xlWb.Name).Visible = True
xlWb.Application.GoTo Reference:=rng, Scroll:=True
End If
Fehler:
With Err
If .Number  0 Then
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Vor dem Makro-Start ggf. Nummer selektieren!"
End If
End With
End Sub

Anzeige
Problem gelöst!
27.10.2009 09:55:19
Werner
Hallo Franz,
es funktioniert tatsächlich! Der Goto-Befehl arbeitet jetzt problemlos. Dass man mit "visible" arbeiten muss, das hätte ich allein nicht herausgefunden. (Nur die Zeile "xlWB = GetObject("C:\Users\Public\Test\
MeineDatei.xls")" habe ich durch Auskommentieren entfernt, weil der Makro auch ohne sie auskommt.)
Vielen herzlichen Dank für die Mühe, die du dir mit diesem und anderen Codes gemacht hast!
Aus dem von dir verbesserten Code entnehme ich, dass die Workbook-Variable "xlWb" hier vor das reservierte Wort "Application" gestellt werden kann und wohl auch muss. Das sehe ich jetzt so zum ersten Mal. Wieder einmal etwas dazu gelernt.
Deine Antwort in diesem Thread ermöglicht es mir jetzt, die aus WORD ausgelagerten Beispiele (darüber
hatten wir vor zwei Tagen in einem anderen Thread diskutiert) nachträglich durch Hinzufügen einer
Spalte in Excel mit Nummern zu versehen und von WORD aus aufzurufen. Die von dir ergänzte
Fehlerroutine ist natürlich auch sehr nützlich und notwendig.
Ich hatte zuvor versucht, mit einem
Hyperlink von WORD nach EXCEL zu springen. Das hatte zwar auch geklappt, aber nur solange
die Daten in EXCEL nicht durch Einfügen von Zeilen oder Sortieren verschoben wurden. Erst danach
kam ich auf die Idee, statt mit einem Hyperlink mit dem FIND-Befehl zu arbeiten. - So viel zum
Hintergrund dieser Anfrage, damit auch Dritte sie verstehen, die diese Threads lesen. Ich habe dadurch
einiges über die Zusammenarbeit von WORD und EXCEL gelernt.
Beste Grüße! Werner R.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige