myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   VBA Excell Variablen in *dotx (https://mygully.com/showthread.php?t=2395167)

Ikarus93 17.08.11 19:10

VBA Excell Variablen in *dotx
 
Servus, ich habe mit Word eine Dokument Vorlage erstellt und wollte nun in Excell ein VBA Programm schreiben dass Werte aus einer Tabelle in diese Vorlage schreibt, sie soltle dabei nicht geöffnet sein müssen (falls das geht, wenn nicht - auch egal).
Ich würde mich freuen falls ihr mir dabei helfen könnt und mir sagen was ich zu beachten habe, Codes bitte mit Erklärung.

schöne Grüße ;)

Thelvan 17.08.11 19:28

Und du erwartest jetzt, dass das jemand für dich programmiert?

Such dir erstmal die entsprechenden Klassen raus, und komm mit konkreten Fragen wieder!

Hier der erste Treffer für Google mit vba excel word [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

Ikarus93 17.08.11 19:59

Ich erwarte bestimmt nicht das mir das jemand programmiert, ich habe eher darum gebeten dass jemand mir ein kleines beispiel mit Erläuterungen gibt damit ich das verstehe und umsetzen kann.
In Sachen VBA beherrsche ich nur Grundkenntnisse aus der Schule und auf der Seite war ich schon, allerdings muss Word dafür geöffnet sein wie ich das verstanden habe.
Verständlich ist für mich auch nicht alles. bsp.: "Dim oWord_App As Object, oDoc As Object"
weiterhin kann ich in dem Code nicht erkennen wo Variablen in das Word Dokument eingebunden werden.
Wenn du mir den Code erläutern kannst würd mir das eventuell ja schon helfen.

Thelvan 17.08.11 22:15

Liege ich richtig mit der Annahme, dass du gerade das erste mal programmierst?

Da wird 2 mal die Klasse Object instanziert (mit Namen oWord_App & oDoc).
Jede Klasse erbt von Object, das heißt man kann diese Instanz auf jede andere Klasse casten.
Ich weiß nicht warum, aber wenn man von einer office anwendung in eine andere schreibt soll man immer late binding benutzen (also erst als object instanzieren und dann später casten)

In dem Beispiel wird in der Methode TestOhneVerweis() in das Word Dokument geschrieben.

Epeos 17.08.11 23:01

Zitat:

Zitat von Thelvan (Beitrag 22622633)
Ich weiß nicht warum, aber wenn man von einer office anwendung in eine andere schreibt soll man immer late binding benutzen (also erst als object instanzieren und dann später casten)

Ist zwar leicht OT: Wenn Du Early Binding einsetzt, dann muss die geöffnete Anwendung die gleiche Version haben wie auf Deiner Enwicklungsmaschine. Bei Late Binding kann die Version abweichen (wenn Du dann allerdings eine Methode oder Klasse verwendest, die diese Version nicht hat, bekommst Du einen Fehler zur Laufzeit).

Ikarus93 18.08.11 07:23

Die Annahme ist nicht ganz richtig, das erste mal ist es nicht, allerdings sind meine Kentnisse in VBA beschränkt da wir es nur kurz in der Schule behandelt haben.
Objekte wurden bei uns nicht deklariert, wir haben nur mit Variablen, Userforms und einfache Funktionen/Eigenschaften gearbeitet. Ich werde mir das einfach mal weiter anschauen, es sind ja noch 2 Wochen Zeit ;)

danke für eure Hilfe Leute :)

Ikarus93 18.08.11 09:48

Ok, danke Leute hab nun einen Ansatz auf dem sich ganz gut aufbauen lässt.

Code:


Private Sub CommandButton1_Click()

Dim AppWD As Object
Dim template As Object
Dim variable As String

variable = Range("A1")

Set AppWD = CreateObject("Word.Application")
AppWD.Visible = True


AppWD.Documents.Open "****\test\template.dotm"
AppWD.ActiveDocument.Bookmarks("marke").Range.Text = variable


End Sub



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.