title image


Smiley Re: Aus Excel Word Dokumentvorlage starten und ausfüllen lassen
Hallo!



Erstelle eine Word-Vorlage mit dem Namen Ausleihschein. Dahinein müssen Textmarken, die vom Wortlaut her absolut genau den Spaltenüberschriften Deiner Excel-Liste entsprechen!



In Excel baust Du nun (im VBA-Editor in einem neuen Modul) folgendes Makro ein:



'-----------------------------------------------------

Sub DruckeAusleihSchein()



Dim r_Liste As Range

Dim r_Felder As Range

Dim r_Datensatz As Range

Dim word As Object

Dim int_AnzFelder As Integer

Dim int_Spalte As Integer

Dim str_Feldname As String

Dim str_Feldinhalt As String



'Die Liste beginnt bei Zelle A1 und ist zusammenhängend

Set r_Liste = Range("a1").CurrentRegion

'In der ersten Zeile stehen die Spaltenüberschriften

Set r_Felder = r_Liste.Rows(1)

'Es wird die Anzahl der Felder festgehalten

int_AnzFelder = r_Felder.Columns.Count

'Dann wird der ausgewählte Datensatz ermittelt

Set r_Datensatz = Application.Intersect(r_Liste, ActiveCell.EntireRow)



'Wenn ein Datensatz ausgewählt worden ist

If Not r_Datensatz Is Nothing Then

'wird Word gestartet

Set word = CreateObject("Word.Application")

'sichtbar gemacht ( kann evtl. entfallen!)

word.Visible = True

'und ein neues Dokument auf der Basis der Vorlage Ausleihschein.dot erstellt

word.Documents.Add Template:="I:\Ausleihschein.dot"

'In diesem neuen Dokument

With word.ActiveDocument

'wird entsprechend den Feldern in der Excel-Liste

For int_Spalte = 1 To int_AnzFelder

'ermittelt wie der jeweilige Feldname

str_Feldname = r_Felder.Cells(1, int_Spalte)

'und der zugehörige Feldinhalt - in der ausgewählten Zeile - lauten und,

str_Feldinhalt = r_Datensatz.Cells(1, int_Spalte)

'wenn eine enstprechende textmarke im Word-Dokument existiert,

If .Bookmarks.Exists(str_Feldname) Then

'wird dort der zugehörige ausgewählte Inhalt eingefügt

.Bookmarks(str_Feldname).Range = str_Feldinhalt

End If

Next

'Am Schluss wird das ganze ausgedruckt

.PrintOut

End With

'Dann wird Word beendet (ohne Speichern, bei Bedarf auch mit)

word.Quit

Set word = Nothing

Else

MsgBox "Kein Datensatz ausgewählt!"

End If

End Sub



'--------------------------------------------------------



Viel Erfolg

Manes


Ob ich Spotlight gut finde? Also wenn ich ehrlich sein soll, müsste ich lügen!

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: