Anzeige
Archiv - Navigation
1312to1316
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

mit VBA aus Excel Worddatei mit Fusstext erzeugen

mit VBA aus Excel Worddatei mit Fusstext erzeugen
01.06.2013 13:14:22
Rolf
Guten Tag,
ich habe schon öfters mit VBA-Tipps und Codeschnipsel aus diesem Forum Makros erstellt. An dieser Stelle vielen Dank für die vielen Infos, die hier zu finden sind.
Nun habe ich ein Problem, für das ich im Netz keine Lösung finde.
Folgenden Code habe ich für's Beispiel eingekürzt:
Sub test()
Dim ObjAppWd As Object
Set ObjAppWd = CreateObject("word.application")
With ObjAppWd
.Visible = True
.Documents.Add
End With
With ObjAppWd.Documents(1)
.Paragraphs(1).Range.Text = "Beispieltext"
End With
Set ObjAppWd = Nothing
End Sub

Was muss ich ergänzen um in der erzeugten Word-Datei in die Fusszeile
"Seite "&[Seite]&" von "&[Seiten]
einzutragen ?
Gruß - Rolf

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit VBA aus Excel Worddatei mit Fusstext erzeugen
01.06.2013 15:02:17
Case
Hallo, :-)
probiere s mal so:
Word - Fusszeile
Servus
Case

AW: mit VBA aus Excel Worddatei mit Fusstext erzeugen
01.06.2013 15:43:56
Rolf
Suuper !
mit diesem Code geht's wie gewünscht.
Vielen Dank.
Rolf

AW: mit VBA aus Excel Worddatei mit Fusstext erzeugen
01.06.2013 15:45:03
Rolf
Suuper !
mit diesem Code geht's wie gewünscht.
Vielen Dank.
Rolf

AW: mit VBA aus Excel Worddatei mit Fusstext erzeugen
04.06.2013 20:57:38
Rolf
Hallo,
ich muss leider nochmal auf dieses Thema zurück kommen.
Ich habe den Code aus dem Link eingebaut, im Prinzip geht's auch, aber das Marko macht mir immer zuerst eine leere Word-Datei auf und dann eine zweite, wo dann Fusszeile und Textkörper (kommt im Code später) reingeschrieben wird.
Hier der Code:
Dim ObjAppWd As Object
'Dim ObjAppWd As Word.Application
'Set ObjAppWd = GetObject("' Word.application")
'If ObjAppWd Is Nothing Then
Set ObjAppWd = CreateObject("word.application")
'End If
With ObjAppWd
.Visible = True
.Documents.Add
End With
' Fusszeile einrichten
Dim objFooter As Object
Dim objWDDoc As Object
Set objWDDoc = ObjAppWd.Documents.Add
Set objFooter = objWDDoc.Sections(1).Footers(1)
With objFooter.Range
.......
Hinweis: Die auskommentierten Zeilen am Anfang hatte ich drin, als das Makro in early-binding lief. Aus kompatibilitätsgründen habe ich es auf late-binding umgestellt und in diesem Zusammenhang die Zeilen auskommentiert so lief das dann auch wie gewünscht.
Mit der Fusszeilen-Ergänzung wird wohl mit "ObjAppWd.Documents.Add" das zusätzliche Dokument geöffnet. Ich habe aber keine Lösung gefunden, die die Fusszeile erzeugt, ohne ein weiteres Dokument zu erzeugen.
Kann mir jemand einen Tipp geben ?
Gruß - Rolf
PS: Ausserdem sollte die WORD-Datei vor(!) der Exceldatei erscheinen, aber die kommt "unter" der Exceldatei. Vielleicht gibt's dazu auch noch ein Tipp ?

Anzeige
AW: mit VBA aus Excel Worddatei mit Fusstext erzeugen
05.06.2013 07:21:25
Case
Hallo, :-)
Du hast auch zweimal ein ".Documents.Add" drin. Das erste raus.
Um Word in den Vordergrund zu holen, kannst Du es mal mit den Konstanten "wdWindowStateMinimize" und "wdWindowStateMaximize" bzw. "wdWindowStateNormal" probieren.
Zur Not geht auch noch API.
So funzt es bei mir:
Option Explicit
Const wdWindowStateMinimize = 2
Const wdWindowStateMaximize = 1
'Const wdWindowStateNormal = 0
Public Sub Test()
Dim objFooter As Object
Dim objWDApp As Object
Dim objWDDoc As Object
Dim objRange As Object
On Error GoTo Fin
Set objWDApp = OffApp("Word")
If Not objWDApp Is Nothing Then
With objWDApp
.WindowState = wdWindowStateMinimize
.WindowState = wdWindowStateMaximize
DoEvents
.Activate
End With
'Set objWDDoc = objWDApp.Documents.Open("C:\Temp\Dok1.doc")
Set objWDDoc = objWDApp.Documents.Add
Set objFooter = objWDDoc.Sections(1).Footers(1)
With objFooter.Range
Set objRange = .Characters(Len(objFooter.Range.Text))
objFooter.Range.Text = "Seite "
Set objRange = .Characters(Len(objFooter.Range.Text))
objRange.Fields.Add objRange, -1, "PAGE"
Set objRange = .Characters(Len(objFooter.Range.Text))
objRange.Text = " von "
Set objRange = .Characters(Len(objFooter.Range.Text))
objRange.Fields.Add objRange, -1, "NUMPAGES"
Set objRange = .Characters(Len(objFooter.Range.Text))
objRange.Text = vbTab
Set objRange = .Characters(Len(objFooter.Range.Text))
objRange.InsertDateTime DateTimeFormat:="dd.MM.yyyy"
Set objRange = .Characters(Len(objFooter.Range.Text))
objRange.Text = vbTab
Set objRange = .Characters(Len(objFooter.Range.Text))
objRange.Fields.Add objRange, -1, "AUTHOR"
End With
End If
Fin:
Set objRange = Nothing
Set objFooter = Nothing
Set objWDDoc = Nothing
Set objWDApp = Nothing
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & " " & Err.Description
End Sub
Private Function OffApp(ByVal strApp As String) As Object
Dim objApp As Object
On Error Resume Next
Set objApp = GetObject(, strApp & ".Application")
Select Case Err.Number
Case 429
Err.Clear
Set objApp = CreateObject(strApp & ".Application")
objApp.Visible = True
If Err.Number > 0 Then
MsgBox Err.Number & " " & Err.Description
Set objApp = Nothing
End If
Case 0
Case Else
MsgBox Err.Number & " " & Err.Description
Set objApp = Nothing
End Select
On Error GoTo 0
Set OffApp = objApp
Set objApp = Nothing
End Function
Servus
Case

Anzeige
AW: mit VBA aus Excel Worddatei mit Fusstext erzeugen
06.06.2013 19:44:04
Rolf
Vielen Dank.
ja der Code funktioniert soweit.
Für die Texteingabe habe ich folgenden Code:
With objWDDoc.Documents(1)
.Paragraphs(1).Range.Text = „testtext”
End With
nach "With objFooter.Range ... End With" einfügt, das klappt aber nicht.
Wie muss der With-Befehl aussehen, damit ich mit .Paragraphs(1).Range .... weiter machen kann.
Ich habe das ganze Formular mit dieser Funktion aufgebaut.
Bin für einen weiteren Tipp dankbar ;-)
Gruß - Rolf

AW: mit VBA aus Excel Worddatei mit Fusstext erzeugen
07.06.2013 06:42:33
Case
Hallo, :-)
"objWDDoc" ist doch schon die Worddokumentvariable - da ist ".Documents(1)" völlig überflüssig. Also reicht:
With objWDDoc
.Paragraphs(1).Range.Text = "testtext"
End With
Servus
Case

Anzeige
AW: mit VBA aus Excel Worddatei mit Fusstext erzeugen
07.06.2013 19:15:40
Rolf
Prima - vielen Dank! Jetzt ist's perfekt
Gruß - Rolf

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige