Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1372to1376
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

Daten von Excel nach Word kopieren

Daten von Excel nach Word kopieren
28.07.2014 12:12:50
Excel
Hallo,
als blutiger VBA-Anfänger habe ich mir ein viel zu hohes Ziel gesetzt und verzweifle, vielleicht gibt es ja da draußen eine gute Seele, die einen heißen Tip für mich hat?
Mein Plan:
Ich habe ein Auftragsbuch in Excel angelegt und möchte per Klick auf einen Button eine Rechnung in Word erstellen lassen.
Word müsste also an bestimmten Stellen (diese habe ich mit Bookmarks markiert) bestimmte Informationen aus Excel übernehmen, z.B. Rechnungsdatum, Kunde, Preis etc.
Und um das Ganze noch ein bisschen interessanter zu gestalten, soll Excel auch noch wissen, dass es bitte schön die Daten des zuvor ausgewählten Auftrags übernimmt.
Den Button zu erstellen und dafür zu sorgen, dass dieser mir auch brav die erstellte Schablone öffnet, war kein Problem. Ich bin auch noch so weit gekommen, dass automatisch die letzte aktive Zelle ausgewählt wird, aber dann hört's auf.
Makro:
Sub FindLast1()
ActiveCell.SpecialCells(xlLastCell).Select
End Sub
Sub WordDateiStarten()
CreateObject("Word.application").Documents.Open("c:\Users\laptop\Desktop\MHG Translations\ _
Rechnungen\Rechnung.docx").Application.Visible = True
End Sub

Bitte nicht falsch verstehen:
Ich erwarte nicht, dass mir hier jemand ein fertiges Makro liefert, viel mehr erhoffe ich mir einen Denkansatz oder auch einfach ein klares: "Mädel, das wird noch nichts, beschäftige dich erst mal 'ne Weile mit VBA!" :-)
Ich bin für jeden Tip dankbar.
Liebe Grüße,
Hedwig

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten von Excel nach Word kopieren
28.07.2014 12:45:19
Excel
Halo Hedwig,
Du kennst Dich ja mit VBA aus. Word ich nicht so mein Gebiet. Ich habe mal so was ähnliches in Word realisiert mit einer UserForm. Die TextBoxen hatten den gleichen Namen wie die Textmarke.
Vielleicht ist dies ein Ansatz.
Private Sub CmMD_Ende_Click()
TXT_Datum = Format(Date, "dd.MM.yyyy")
TXT_Anrede = CBO_Anrede.Value
'   TXT_Anrede2 im Briefkopf
Select Case TXT_Anrede
Case "Herr"
TXT_Anrede2 = "r " & TXT_Anrede
Case "Frau"
TXT_Anrede2 = " " & TXT_Anrede
Case "Damen und Herren"
TXT_Anrede2 = " " & TXT_Anrede
End Select
If CBO_Verkauf = "Rüdiger Doll" Or CBO_Verkauf = "Thomas Dix" Then
StFunktion = "Vertriebsleiter"
ElseIf CBO_Projektierung = "Matthias Bergatt" Then
StFunktion = "Projektierungsingenieur"
Else
StFunktion = "Gebietsverkaufsleiter"
End If
StEigenschaft = TXT_Firma1
TXT_Verkauf = CBO_Verkauf.Value
TXT_Projektierung = CBO_Projektierung
If TXT_Firma1 = "" Then
TXT_Firma1 = "Firma1"
TXT_Firma2 = "Firma2"
'        TXT_Anrede2 = "Herr"
'        TXT_Anrede = "r " & TXT_Anrede
TXT_Nachname = "Mustermann"
TXT_Straße = "Straße"
TXT_Ort = "00000 Ort"
TXT_Angebot = StJahr & "-30xxx"
TXT_Version = "x"
End If
StDateiname = TXT_Angebot & "AN" & TXT_Version
'   zuordnen der Textfelder
Dim TMRange As Range
Dim X
''      zum Löschen des Inhaltes von den TXT-Boxen,
''       um Textmarken in den Textbausteinen zu löschen
''      userform einzeln starten!!!
'     For Each X In Me.Controls
'      If TypeOf X Is MSForms.TextBox Then
''        TMName = x.Name
''        MsgBox X.Name
'        X.Value = ""
'      End If
'    Next
'   Textmarken ins Dokument schreiben
For Each X In Me.Controls
If TypeOf X Is MSForms.TextBox Then
'        TMName = x.Name
'        MsgBox X.Name
If ActiveDocument.Bookmarks.Exists(X.Name) Then
Set TMRange = ActiveDocument.Bookmarks(X.Name).Range
TMRange.Text = X.Text
ActiveDocument.Bookmarks.Add Name:=X.Name, Range:=TMRange
End If
End If
Next
''    zum Löschen des Inhaltes von den TXT-Boxen,
''    um Textmarken in den Textbausteinen zu löschen
'    end
'   aktualisierung
Selection.WholeStory
Selection.Fields.Update
Selection.HomeKey unit:=wdStory
StKunde1 = TXT_Firma1
StAngebotsnummer = TXT_Angebot
If InStr(TXT_Ort, " ")  0 Then
StOrt = Mid(TXT_Ort, InStr(TXT_Ort, " ") + 1, Len(TXT_Ort))
Else
StOrt = TXT_Ort
End If
'   peppi MS-Office Forum  FelderAktualisieren()
Application.ScreenUpdating = False
ActiveDocument.Repaginate
Dim RaTeil As Range
For Each RaTeil In ActiveDocument.StoryRanges
RaTeil.Fields.Update
While Not (RaTeil.NextStoryRange Is Nothing)
Set RaTeil = RaTeil.NextStoryRange
RaTeil.Fields.Update
Wend
Next
Application.ScreenUpdating = True
Set TMRange = Nothing
Set RaTeil = Nothing
Unload FRM_Kundendaten
If StVariante = "Kurz" Or BoKurzkurz Or BoMail Then FRM_Ausruestung.Show
End Sub

Anzeige
AW: Daten von Excel nach Word kopieren
28.07.2014 13:24:04
Excel
Hallo Hedwig,
für einen VBA-Anfänger ist dein Vorhaben schon etwas ambitioniert.
Aber irgendwo muss man ja anfangen.
Wichtig ist das Arbeiten mit entsprechenden Variablen, um sich hier das Leben zu erleichtern und den Überblick nicht zu verlieren.
Ich hab deine Ansätze mal ein wenig erweitert/angepasst inkl. Beispielen wie die Excel-Zellinhalte an den Textmarken eingefügt werden können.
Gruß
Franz
Sub Auftrag_Excel_nach_Word()
Dim strFileName As String
Dim objWDApp As Object  'Word.Application
Dim objDoc As Object    'Word.Document
Dim xlZelle As Range    'Referenzzelle in Excel
strFileName = "c:\Users\laptop\Desktop\MHG Translations\Rechnungen\Rechnung.docx"""
If Dir(strFileName) = "" Then
MsgBox "Datei """ & strFileName & """ nicht gefunden!"
Exit Sub
End If
'Excel-Referenzzelle für Auftrag setzen
ActiveCell.SpecialCells(xlLastCell).Select
With ActiveSheet
Set xlZelle = .Cells(ActiveCell.Row, 1) ' Zelle in aktiver Zeile, Spalte A
End With
Application.ScreenUpdating = False
'Word-Anwendung sichtbar starten
Set objWDApp = CreateObject("Word.Application")
objWDApp.Visible = True
'Vorlage öffnen - schreibgeschützt
Set objDoc = objWDApp.Documents.Open(strFileName, ReadOnly:=True)
'Werte aus Zellen in Excel an Textmarken im Worddokument einfügen
objDoc.Bookmarks("Kundennummer").Range.Text = xlZelle.Text       'aus Spalte A
objDoc.Bookmarks("Rechnungsdatum").Range.Text = xlZelle.Offset(0, 1).Text 'aus Spalte B
objDoc.Bookmarks("Preis").Range.Text = xlZelle.Offset(0, 2).Text 'aus Spalte C
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Daten von Excel nach Word kopieren
28.07.2014 13:24:30
Excel
Hallo Hedwig,
ich habe ein Beispiel in meiner Sammlung, welches ein paar Ähnlichkeiten aufweist.
Zu jeder Zeile in der Excel-Tabelle wird ein Word-Dokument nach einer Vorlage erstellt.
Das Programm sieht folgendermaßen aus:
Sub Mitteilungen_erstellen()
Dim abt As String
Dim DatEigensch As Boolean
Dim dok As Word.Document
Dim letzteZeile As Long
Dim pfad As String
Dim punkte As String
Dim wdApp As Word.Application
Dim ws As Worksheet
Dim zeile As Long
pfad = ThisWorkbook.Path & "\"
' Word unsichtbar starten
Set wdApp = New Word.Application
' Word sichtbar machen (falls gewünscht, sonst auskommentieren)
wdApp.Visible = True
' Abfrage nach Datei-Eigenschaften zw.speichern
' und anschließend ausschalten
DatEigensch = wdApp.Options.SavePropertiesPrompt
wdApp.Options.SavePropertiesPrompt = False
' Ein neues Dokument anlegen und unter dem
' Namen "FehlerListe.doc" wegspeichern
Set dok = wdApp.Documents.Add
' Abfrage zur Eingabe der Dateieigenschaften
' zwischenspeichern und ausschalten
DatEigensch = wdApp.Options.SavePropertiesPrompt
wdApp.Options.SavePropertiesPrompt = False
' ws - Tabellenblatt mit den Wettbewerbsergebnissen
Set ws = ThisWorkbook.Worksheets("Ergebnis")
letzteZeile = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
If letzteZeile 

Ich lade dir die Wordvorlage (gezippt, da Herber keine dot-Dateien mag) und die Arbeitsmappe hoch.
https://www.herber.de/bbs/user/91754.zip
https://www.herber.de/bbs/user/91755.xls
MfG
Dieter

Anzeige
AW: Daten von Excel nach Word kopieren
28.07.2014 13:58:16
Excel
Wahnsinn!
Vielen Dank! Ihr seid toll!
Da werde ich mich doch gleich mal ans Basteln machen - mit so tollen Vorlagen kann es ja eigentlich nur gut gehen!
DANKE

AW: Daten von Excel nach Word kopieren
28.07.2014 14:54:21
Excel
Hallo Hedwig,
ich habe gerade gesehen, dass da noch etwas überflüssiges Zeugs hängen geblieben ist.
Hier die etwas entschlackte Version:
Sub Mitteilungen_erstellen()
Dim abt As String
Dim DatEigensch As Boolean
Dim dok As Word.Document
Dim letzteZeile As Long
Dim pfad As String
Dim punkte As String
Dim wdApp As Word.Application
Dim ws As Worksheet
Dim zeile As Long
pfad = ThisWorkbook.Path & "\"
' Word unsichtbar starten
Set wdApp = New Word.Application
' Word sichtbar machen (falls gewünscht, sonst auskommentieren)
wdApp.Visible = True
' Abfrage nach Datei-Eigenschaften zw.speichern
' und anschließend ausschalten
DatEigensch = wdApp.Options.SavePropertiesPrompt
wdApp.Options.SavePropertiesPrompt = False
Set ws = ThisWorkbook.Worksheets("Ergebnis")
letzteZeile = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
If letzteZeile 
Viele Grüße
Dieter
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige