Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Word Dokument erstellen

Betrifft: Word Dokument erstellen von: Daniel
Geschrieben am: 28.04.2008 10:46:21

Hallo,

folgende Problematik: ich würde gerne über eine Schaltfläche ein neues Worddokument erstellen und dieses automatisch formatieren (z.B. Tabellen einfügen, etc.), so dass eine Vorlage praktisch auf Knopfdruck generiert wird (sind eigentlich nur 3 leere Tabellen, 3 Autotexte und en paar Worte als Überschriften).
Bis dato habe ich folgenden Code:

Private Sub CommandButton1_Click()
    Set wordApp = CreateObject("Word.Application")
With wordApp
    .Visible = True
    .Documents.Add Template:="Normal"
End With
End Sub



Wenn ich über den Rekorder den Code für die Formatierung des Word Dokuments aufehme und diesen in Excel einfüge, entsteht das Problem, das Excel einige Eigenschaften nicht kennt (z.B. CentimetersToPoint).

Hat vielleicht jemand ' ne Idee, ansonsten bleibt mir wohl nur ne Word-Vorlage auf dem Server zu Speichern und diese als click Ereignis zu öffnen, oder ?!?

  

Betrifft: AW: Word Dokument erstellen von: Beverly
Geschrieben am: 28.04.2008 11:13:17

Hi Daniel,

erstelle den Code in Word und rufe dann das Wordmakro aus Excel heraus auf.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Word Dokument erstellen von: Daniel
Geschrieben am: 28.04.2008 11:27:02

Was ich bei dem Ansatz nicht ganz verstehe, ist wie ich ein Makro aufrufen soll, das nicht geladen ist...?!?
Kann ich vielleicht den Code von Excel aus als Makro in das neue Word Dokument kopieren. (Praktisch den Code in den Editor von Word kopieren lassen) und wenn ja, wie sollte das aussehen ?

Ansonsten danke ich schon mal für den ersten Denkanstoss.

Gruß Daniel


  

Betrifft: AW: Word Dokument erstellen von: Reinhard
Geschrieben am: 28.04.2008 12:51:35

Hi Daniel,

exportiere das makromodul.

Dann:

Option Explicit
'

Private Sub CommandButton1_Click()
Dim wordApp
Set wordApp = CreateObject("Word.Application")
With wordApp
    '.Application.VBE.ActiveVBProject.VBComponents.Import ("H:\mdlDummy1.bas")
    .Visible = True
    .Documents.Add Template:="Normal"
    .Activate
    ActiveDocument.VBProject.VBComponents.Import ("H:\mdlDummy1.bas")  ' Hier kommt Fehler
End With
End Sub



Der auskommentierte Befehl klappt, leider ist dann das Modul in der Normal.Dot.

Wie man das Modul in das aktive Dokument kriegt weiß ich nicht, im Code kommt die Fehlermeldung daß kein Document verfügbar wäre !?

Vielleicht findet ja hier eine(r) heraus wodran das liegt.

Ansonsten, google mal nach
word VBComponents.Import

Gruß
Reinhard


  

Betrifft: AW: Word Dokument erstellen von: Beverly
Geschrieben am: 28.04.2008 14:00:44

Hi Daniel,

wenn du in Word ein Makro erstellst, dann befindet es sich in der Normal.dot, steht also immer zur Verfügung und du kannst es aus Excel heraus starten.

Unter diesem Link:

Link zur Datei

findest du eine Beispieldatei, in der ein Bereich aus der Excel-Tabelle in ein Worddokument kopiert wird. Das Kopieren erfolgt in Excel und dann wird das Makro in Word gestartet, welches dabei nur Code enthalten muss, der die Zwischenablage einfügt (Strg+V). In deinem Fall stünde dort das, was du für das Formatieren deines Dokumentes benötigst. Du kannst den Teil zum Kopieren weglassen und benötigst nur den Teil für das Starten des Word-Makros.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Word Dokument erstellen von: Daniel
Geschrieben am: 28.04.2008 14:19:27

Hmmm, problematisch scheint mir in meinem Fall (ich habe die Anwendung nicht geschildert, mein Fehler...) das ich eine xlt erstellt habe, und diese auf dem Server liegt (für alle relevanten Personen zugänglich), allerdings davon auszugehen ist, dass die einzelnen Nutzer das ganze dann auf ihren lokalen PC kopieren, die Normal.dat der User hat dann ja nicht das notwendige Makro...

Ich denke momentan ich erstelle einfach eine Word Vorlage und lege diese mit der XLT in einen Ordner auf den Server,... wo ich wieder bei dem Problem bin, das der User sich das ganze vom Server kopiert und somit meine VBA Verlinkung von der Excel Vorlage auf die Word Volage hinüber wäre....ich probier mal weiter... weiter Vorschläge bzw. Denkanstösse sind erwünscht ;)


  

Betrifft: AW: Word Dokument erstellen von: Beverly
Geschrieben am: 28.04.2008 17:03:50

Hi Daniel,

das Wordmakro kannst du genau so in eine Word-Vorlage integrieren (ist ja auch eine .dot) - dort kann man ebenso wie in Excel ein Modul erstellen und den betreffenden Code ablegen. Du müsstest dann nur im Excel-Code diese Zeile

        If .Documents.Count = 0 Then .Documents.Add


in diese ändern (Ablageort und Dateiname bitte anpassen)

       .Documents.Add Template:="C:\Test\testdatei_makrostarten.dot", NewTemplate _
            :=False, DocumentType:=0





GrußformelBeverly's Excel - Inn


  

Betrifft: AW: Word Dokument erstellen von: Reinhard
Geschrieben am: 28.04.2008 15:27:27

Hi Daniel,

nur mal so, wie ist eigentlich dein
"weiter Vorschläge bzw. Denkanstösse sind erwünscht" gemeint?
Ich sehe leider keinerlei Feedbackk auf meinen Vorschlag :-(

"entsteht das Problem, das Excel einige Eigenschaften nicht kennt (z.B. CentimetersToPoint)" mag ja sein, aber dieser Code funktioniert:

Private Sub CommandButton1_Click()
   Set wordApp = CreateObject("Word.Application")
With wordApp
   .Visible = True
   .Documents.Add Template:="Normal"
   MsgBox CentimetersToPoints(2.5)
End With
End Sub



Wie sieht denn der Code aus der nicht funktioniert?

Gruß
Reinhard


  

Betrifft: AW: Word Dokument erstellen von: Daniel
Geschrieben am: 29.04.2008 09:25:02

Reinhard,

bei mir erscheint folgender Fehler:

Fehler beim Kompilieren: "Sub oder Function nicht definiert", markiert ist "CentimetersToPoints(2.5)"...

Habe einen CommandButton in Tabelle1 erstellt und deinen Code in das entsprechende Objekt kopiert,
aber leider kam oben stehende Fehlermeldung!

Ich habe leider keine Ahnung wieso?!

Fakt ist, der Code funtkioniert ohne die Zeile mit Msgbox, scheint so als ob der VBA Editor von Excel nicht alle Funktionen verwenden kann, die in Word genutzt werden können...

Gruß Daniel

P.S. das verspätetete und erst nach Auforderung erfolgte Feedback tut mir leid, soll nicht wieder vorkommen


  

Betrifft: AW: Word Dokument erstellen von: Reinhard
Geschrieben am: 29.04.2008 13:25:33

Hi Daniel,

Extras--Verweise, setz mal den für Microsoft Word X.0 Object library.

Gruß
Reinhard


  

Betrifft: AW: Word Dokument erstellen von: Daniel
Geschrieben am: 29.04.2008 09:39:22

Ach und Reinhard,

eben ist mir aufgefallen, das ich gestern aus irgend einem Grund deine Nachricht nur bis zur Zeile "Option Explicit" gelesen/angezeigt bekommen habe, sorry !
Ich probier jetzt noch mal was aus Beverly's Tipp zu machen, und bemüh dann wie von dir vorgeschlagen Google... sollte es dann nicht hinhauen, mach ich einfach 'ne workbook.add Prozedur, und erstelle die Vorlage halt in Excel statt in Word!


 

Beiträge aus den Excel-Beispielen zum Thema "Word Dokument erstellen"