Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1012to1016
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

Excel an Word

Excel an Word
29.09.2008 12:05:00
Volker
Guten Tag zusammen,
ich haben mir folgenden Code gesucht und für meine Bedürfnisse angepasst.
Soweit funktioniert er auch wie ich es möchte.
Allerdings würde ich mir wünschen, das der Code nach Eingabe in das letze Feld (Hier WAL)
Das Dokument unter dem inhalt der Textmarke (Name) und der Textmarke (Datum) als .doc auf Laufwerk C
abspeichert.
Ich bin für jeden Hinweis dankbar.
Gruß Volker
Hier der Code:
Private Const Pfad = "C:\Bestellungen\Bestellvordruck.doc" 'an diesem ort liegt das Worddokument,
'die Position des Exceldokumentes ist beliebig
Private wdAnw As Object
Private wdDok As Object

Sub WordMitBestehendemDokumentStarten()
On Error Resume Next
Set wdAnw = GetObject(, "Word.Application")    'Bestehende Word-Instanz suchen
Select Case Err.Number
Case 0                                       'Alles paletti
Case 429                                     'Es gibt soweit keine Word-Instanz
Err.Clear
Set wdAnw = CreateObject("Word.Application") 'Word-Instanz erzeugen
If Err.Number > 0 Then
BadOrHappyEnd Err.Number, Err.Description
Exit Sub
End If
Case Else 'Unerwarteter Fehler
BadOrHappyEnd Err.Number, Err.Description
Exit Sub
End Select
On Error GoTo 0
wdAnw.Visible = True 'Instanz sichtbar machen
wdAnw.WindowState = 0
'Je nach dem, ob das Dokument bereits geöffnet ist oder nicht wird verbunden
'bzw. geöffnet. Diese Differenzierung geschieht implizit.
On Error Resume Next
Set wdDok = wdAnw.Documents.Open(Filename:=Pfad)
If Err.Number > 0 Then                                         'Wenn Arbeitsmappe nicht  _
existiert oder unerwarteter Fehler
BadOrHappyEnd Err.Number, Err.Description
Exit Sub
End If
On Error GoTo 0
'eigentliche Codeausführung
'jetzt können die Felder im Word gefüllt werden
wdAnw.ActiveDocument.FormFields.Item("Firma").Result = Cells(1, 1)
wdAnw.ActiveDocument.FormFields.Item("Name").Result = Cells(2, 1)
wdAnw.ActiveDocument.FormFields.Item("Anschrift").Result = Cells(3, 1)
wdAnw.ActiveDocument.FormFields.Item("PLZ").Result = Cells(4, 1)
wdAnw.ActiveDocument.FormFields.Item("Ort").Result = Cells(5, 1)
wdAnw.ActiveDocument.FormFields.Item("Land").Result = Cells(6, 1)
'Bis hierhin Anschrift
wdAnw.ActiveDocument.FormFields.Item("esberät").Result = Cells(1, 8)  'Es berät Sie
wdAnw.ActiveDocument.FormFields.Item("Telefon").Result = Cells(2, 8)    'Telefon
wdAnw.ActiveDocument.FormFields.Item("Telefax").Result = Cells(3, 8)
wdAnw.ActiveDocument.FormFields.Item("email").Result = Cells(4, 8) 'EMail
wdAnw.ActiveDocument.FormFields.Item("IhrZeichen1").Result = Cells(5, 8)
wdAnw.ActiveDocument.FormFields.Item("IhrZeichen2").Result = Cells(6, 8)
wdAnw.ActiveDocument.FormFields.Item("MeinZeichen1").Result = Cells(7, 8)
wdAnw.ActiveDocument.FormFields.Item("MeinZeichen2").Result = Cells(8, 8)
wdAnw.ActiveDocument.FormFields.Item("Datum").Result = Cells(9, 8)
wdAnw.ActiveDocument.FormFields.Item("Text47").Result = Cells(9, 9)   'Unterzeichner
'Bis hierhin Kopf
wdAnw.ActiveDocument.FormFields.Item("Artikel01").Result = Cells(13, 1)
wdAnw.ActiveDocument.FormFields.Item("Menge01").Result = Cells(13, 2)
wdAnw.ActiveDocument.FormFields.Item("EPreis01").Result = Cells(13, 3)
wdAnw.ActiveDocument.FormFields.Item("GPreis01").Result = Cells(13, 4)
'Bis hierhin Artikel  01
soweiter bis 14
wdAnw.ActiveDocument.FormFields.Item("Nettopreis").Result = Cells(27, 4) ' Summe vor Steuer
wdAnw.ActiveDocument.FormFields.Item("MWSTPreis").Result = Cells(28, 4)  ' Summe MWSt
wdAnw.ActiveDocument.FormFields.Item("Bruttopreis").Result = Cells(30, 4) 'Gesamtsumme
wdAnw.ActiveDocument.FormFields.Item("WAL").Result = Cells(10, 8)
End Sub


1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel an Word
04.10.2008 12:48:00
Tino
Hallo,
ohne auf Deine Fehlende Deklarierung einzugehen, so müsste es gehen.
Sub WordMitBestehendemDokumentStarten()
Dim wdAnw As Object, wdDok As Object
Dim strDocNeuerName As String
  On Error Resume Next
  Set wdAnw = GetObject(, "Word.Application")    'Bestehende Word-Instanz suchen 
  Select Case Err.Number
    Case 0                                       'Alles paletti 
    Case 429                                     'Es gibt soweit keine Word-Instanz 
      Err.Clear
      Set wdAnw = CreateObject("Word.Application") 'Word-Instanz erzeugen 
      If Err.Number > 0 Then
        BadOrHappyEnd Err.Number, Err.Description
        Exit Sub
      End If
    Case Else 'Unerwarteter Fehler 
      BadOrHappyEnd Err.Number, Err.Description
      Exit Sub
  End Select
  On Error GoTo 0
  ' 
  wdAnw.Visible = True 'Instanz sichtbar machen 
  wdAnw.WindowState = 0
  ' 
  'Je nach dem, ob das Dokument bereits geöffnet ist oder nicht wird verbunden 
  'bzw. geöffnet. Diese Differenzierung geschieht implizit. 
  On Error Resume Next
  Set wdDok = wdAnw.Documents.Open(Filename:=Pfad)
  If Err.Number > 0 Then                                         'Wenn Arbeitsmappe nicht _
existiert oder unerwarteter Fehler 
    BadOrHappyEnd Err.Number, Err.Description
    Exit Sub
  End If
  On Error GoTo 0
  
'eigentliche Codeausführung 
'jetzt können die Felder im Word gefüllt werden 
With wdAnw.ActiveDocument.FormFields
  .Item("Firma").Result = Cells(1, 1)
  .Item("Name").Result = Cells(2, 1)
  .Item("Anschrift").Result = Cells(3, 1)
  .Item("PLZ").Result = Cells(4, 1)
  .Item("Ort").Result = Cells(5, 1)
  .Item("Land").Result = Cells(6, 1)
  'Bis hierhin Anschrift 
  '------------------------------------------------------------------------------------------ 
  .Item("esberät").Result = Cells(1, 8)  'Es berät Sie 
  .Item("Telefon").Result = Cells(2, 8)    'Telefon 
  .Item("Telefax").Result = Cells(3, 8)
  .Item("email").Result = Cells(4, 8) 'EMail 
  .Item("IhrZeichen1").Result = Cells(5, 8)
  .Item("IhrZeichen2").Result = Cells(6, 8)
  .Item("MeinZeichen1").Result = Cells(7, 8)
  .Item("MeinZeichen2").Result = Cells(8, 8)
  .Item("Datum").Result = Cells(9, 8)
  .Item("Text47").Result = Cells(9, 9)   'Unterzeichner 
  'Bis hierhin Kopf 
  '------------------------------------------------------------------------------------------ 
  .Item("Artikel01").Result = Cells(13, 1)
  .Item("Menge01").Result = Cells(13, 2)
  .Item("EPreis01").Result = Cells(13, 3)
  .Item("GPreis01").Result = Cells(13, 4)
  'Bis hierhin Artikel  01 

 'soweiter bis 14 

  .Item("Nettopreis").Result = Cells(27, 4) ' Summe vor Steuer 
  .Item("MWSTPreis").Result = Cells(28, 4)  ' Summe MWSt 
  .Item("Bruttopreis").Result = Cells(30, 4) 'Gesamtsumme 
  .Item("WAL").Result = Cells(10, 8)
End With

'*********************************************************************** 
'Datei unter C:\ abspeichern******************************************** 
wdAnw.Application.DisplayAlerts = False                              '** 
    strDocNeuerName = Cells(2, 1) & " " & Format(Date, "dd_mm_yyyy") '** 
    wdAnw.ActiveDocument.SaveAs Filename:="C:\" & strDocNeuerName    '** 
wdAnw.Application.DisplayAlerts = True                               '** 
'*********************************************************************** 
'*********************************************************************** 
End Sub


Gruß Tino

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige