Discussion:
Word-Dokumemt aus Excel öffnen und Werte übergeben
(zu alt für eine Antwort)
Ralph
2004-11-04 07:32:49 UTC
Permalink
Hallo,

ich bin auf der Suche nach einer Möglichkeit, aus einer Excel-Tabelle
ein Word-Dokument zu öffen, bei dem sich der Dateiname aus dem Inhalt
zweier Zellen zusammensetzt, von denen eine aktuell markiert ist (Bsp.
Zelle a5 markiert, Dateiname ist der Inhalt von a5 und b5).
Gleichzeitig soll für eine Textmarke in Word der Inhalt der Zelle c5
übergeben werden.

Wer hat eine Idee.

Vielen lieben Dank.

Ralph
Susanne Wenzel
2004-11-06 18:16:36 UTC
Permalink
Hallo Ralph,
Post by Ralph
ich bin auf der Suche nach einer Möglichkeit, aus einer Excel-Tabelle
ein Word-Dokument zu öffen, bei dem sich der Dateiname aus dem Inhalt
zweier Zellen zusammensetzt, von denen eine aktuell markiert ist (Bsp.
Zelle a5 markiert, Dateiname ist der Inhalt von a5 und b5).
Gleichzeitig soll für eine Textmarke in Word der Inhalt der Zelle c5
übergeben werden.
Wer hat eine Idee.
an Ideen soll es nicht scheitern ;-).
Allerdings müsstest Du etwas konkreter werden. Ich sehe es so, dass es eine
VBA-Lösung wird, ist das ein Problem für Dich? Stehen die Werte für den
Dateinamen immer in benachbarten Spalten? Was genau steht in den Zellen
drin, kannst Du mal ein Beispiel nennen?

Bei der Übergabe an eine Textmarke in Word muss ich vermutlich kapitulieren
(ich bastel zwar auch durchaus in Word-VBA die eine oder andere Prozedur,
die Feinheiten dort haben sich mir aber bisher nicht so wirklich
erschlossen ;-), aber da kann Dir bestimmt die Word-VBA-NG
(microsoft.public.de.word.vba) weiterhelfen, Thomas und Konsorten kennen
sich da gut aus.

HTH
Viele Grüße aus dem hohen Norden Deutschlands
Susanne
Ralph
2004-11-07 16:28:01 UTC
Permalink
Hallo Susanne,
mit VBA stehe ich etwa auf dem Kriegsfuß - ich kann zwar die Befehle
soweit nachvollziehen, nur brauche ich VBA viel zu selten, als dass
ich tief drin stecke.
Die Werte stehen immer nebeneinander, zB. in a5 "Jahr" und in b5
"2004" - der dateiname wäre dann "Jahr2004.doc". In der nächsten Zeile
dann in a6 "Jahr" und in b6 "2005", macht "jahr2005.doc".
Markiert ist immer eine Zelle aus Spalte A (bei einer anderen soll es
eine Fehlermeldung geben).
Das Makro lege ich dann hinter ein Symbol, d.h. bei Klick darauf wird
der Wert aus a und b ausgelesen und das entspechende Word-Dokument
geöffnet.

Wäre super, wenn Du mir weiterhelfen könntest.

Viele Grüße aus dem Südwesten ...

Ralph
Post by Susanne Wenzel
Hallo Ralph,
Post by Ralph
ich bin auf der Suche nach einer Möglichkeit, aus einer Excel-Tabelle
ein Word-Dokument zu öffen, bei dem sich der Dateiname aus dem Inhalt
zweier Zellen zusammensetzt, von denen eine aktuell markiert ist (Bsp.
Zelle a5 markiert, Dateiname ist der Inhalt von a5 und b5).
Gleichzeitig soll für eine Textmarke in Word der Inhalt der Zelle c5
übergeben werden.
Wer hat eine Idee.
an Ideen soll es nicht scheitern ;-).
Allerdings müsstest Du etwas konkreter werden. Ich sehe es so, dass es eine
VBA-Lösung wird, ist das ein Problem für Dich? Stehen die Werte für den
Dateinamen immer in benachbarten Spalten? Was genau steht in den Zellen
drin, kannst Du mal ein Beispiel nennen?
Bei der Übergabe an eine Textmarke in Word muss ich vermutlich kapitulieren
(ich bastel zwar auch durchaus in Word-VBA die eine oder andere Prozedur,
die Feinheiten dort haben sich mir aber bisher nicht so wirklich
erschlossen ;-), aber da kann Dir bestimmt die Word-VBA-NG
(microsoft.public.de.word.vba) weiterhelfen, Thomas und Konsorten kennen
sich da gut aus.
HTH
Viele Grüße aus dem hohen Norden Deutschlands
Susanne
unknown
2004-11-07 19:32:24 UTC
Permalink
Hallo Ralph,
hier ein Beispiel:

Sub OpenWord()
Dim appWord
Const strPfad As String = "C:\"
Set appWord = CreateObject("Word.Application")
With appWord
.Visible = True
.Documents.Open strPfad & ActiveCell.Value & _
ActiveCell.Offset(0, 1).Value & ".doc"
End With
End Sub

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Susanne Wenzel
2004-11-08 04:38:59 UTC
Permalink
Hallo Ralph,
Post by Ralph
Die Werte stehen immer nebeneinander, zB. in a5 "Jahr" und in b5
"2004" - der dateiname wäre dann "Jahr2004.doc". In der nächsten Zeile
dann in a6 "Jahr" und in b6 "2005", macht "jahr2005.doc".
Markiert ist immer eine Zelle aus Spalte A (bei einer anderen soll es
eine Fehlermeldung geben).
Das Makro lege ich dann hinter ein Symbol, d.h. bei Klick darauf wird
der Wert aus a und b ausgelesen und das entspechende Word-Dokument
geöffnet.
Wäre super, wenn Du mir weiterhelfen könntest.
Frank hat Dir einen Code gepostet, der bei mir (fast) genauso ausgesehen
hätte, damit solltest Du schon mal bis zum Part mit der Textmarke kommen.
Ich glaube, ich spreche auch für Frank, wenn ich sage, dass wir den
Staffelstab jetzt an die microsoft.public.de.word.vba-Kollegen
weiterreichen ;-)

Grüße in den Südwesten (kenne ich auch ein bisschen) aus dem Norden
Susanne
unknown
2004-11-08 13:10:32 UTC
Permalink
Hallo Susanne,
ja, Susanne, den Staffelstab geben wir an die Word-Fraktion oder den
Makrorekorder von Word ab.

Hinweis:
Mit dem Makrorekorder zeichnest du den entsprechenden Code für die
Benutzung einer Textmarke auf.

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
unknown
2004-11-08 16:13:07 UTC
Permalink
Hallo Susanne,
der Hinweis war für Ralph bestimmt ;-)

MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Susanne Wenzel
2004-11-08 18:47:56 UTC
Permalink
Hallo Frank,
Post by Ralph
Hallo Susanne,
der Hinweis war für Ralph bestimmt ;-)
jo, das hatte ich auch so verstanden, null problemo.

Der Stab scheint übrigens noch nicht weitergereicht worden zu sein ;-).

Viele Grüße in das nicht allzuweit entfernte Hameln (schätzungsweise 250 km
sind ja nix ;-)
Susanne
Ralph
2004-11-08 20:08:52 UTC
Permalink
Hallo zusammen,

funktioniert einwandfrei - Vielen Dank.

Eine kleine Bitte noch - die Fehlerabfrage, d.h. wenn die akive Zelle
nicht in Spalte A ist, soll Excel meckern.

Werde mich nun noch auf die Suche nach den Textmarken machen - d.h.
Excel soll mit eine dot-Vorlage aufmachen und dort die Werte von Excel
reinkopieren.

Liebe Grüße


Ralph
Post by Ralph
Hallo Susanne,
ja, Susanne, den Staffelstab geben wir an die Word-Fraktion oder den
Makrorekorder von Word ab.
Mit dem Makrorekorder zeichnest du den entsprechenden Code für die
Benutzung einer Textmarke auf.
MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Susanne Wenzel
2004-11-08 20:20:38 UTC
Permalink
Hallo Ralph,
Post by Ralph
Eine kleine Bitte noch - die Fehlerabfrage, d.h. wenn die akive Zelle
nicht in Spalte A ist, soll Excel meckern.
das Codefragment dazu könnte dann z.B. so aussehen:

If ActiveCell.Column <> 1 Then
MsgBox "Bitte Wert aus Spalte A aussuchen"
End If

HTH
Viele Grüße aus dem hohen Norden Deutschlands
Susanne
adresse_bei_freenet
2004-11-08 22:36:17 UTC
Permalink
Hallo Ralf,

anbei eine Komplettlösung mit kleinen Abwandlungen der Lösung von Frank:

Bitte beachte, dass die Textmarke im Word-Dokument schon definiert sein muß.
Im Beispiel heißt die Textmarke "test".


Sub OpenWord()
Dim appWord As Object
Dim adr1 As String
Dim wert As String
Dim dateiname As String
Const strPfad As String = "C:\usr_winword\" ' Pfad der Word-Datei

adr1 = ActiveCell.Address
If Mid(adr1, 2, 1) <> "A" Then
MsgBox "Cursor steht nicht in Spalte A !!!", _
vbExclamation, "Warnung !..."
Set appWord = Nothing
Exit Sub
End If
' die aktive Zelle sei im Beispiel A4
dateiname = strPfad & ActiveCell.Value & _
ActiveCell.Offset(0, 1).Value & ".doc"
wert = ActiveCell.Offset(0, 2).Value

Set appWord = CreateObject("Word.Application")
Documents.Open dateiname

With appWord
.Visible = True
End With
With appWord.Selection
.GoTo What:=wdGoToBookmark, Name:="test"
.TypeText Text:=wert 'Inhalt der Variable "wert" (Zelle C4)
End With

Set appWord = Nothing
End Sub


Gruß
Manfred Gutacker
Post by Ralph
Hallo zusammen,
funktioniert einwandfrei - Vielen Dank.
Eine kleine Bitte noch - die Fehlerabfrage, d.h. wenn die akive Zelle
nicht in Spalte A ist, soll Excel meckern.
Werde mich nun noch auf die Suche nach den Textmarken machen - d.h.
Excel soll mit eine dot-Vorlage aufmachen und dort die Werte von Excel
reinkopieren.
Liebe Grüße
Ralph
Post by Ralph
Hallo Susanne,
ja, Susanne, den Staffelstab geben wir an die Word-Fraktion oder den
Makrorekorder von Word ab.
Mit dem Makrorekorder zeichnest du den entsprechenden Code für die
Benutzung einer Textmarke auf.
MfG Frank
_____________________________________________
Frank Arendt-Theilen, Microsoft MVP für Excel, Hameln
Website: http://www.xl-faq.de; Auftragsprogrammierung
Lesen Sie weiter auf narkive:
Loading...