Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Daten aus Excel automatisch in ein Word-Dokument übernehmen
zurück: VBA Serienbrief Empfänger suchen und auswählen weiter: HILFE! Seriendruck Kopfzeile nur auf 1. Seite und Tabelle. Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast



Verfasst am:
22. März 2010, 10:36
Rufname:

Daten aus Excel automatisch in ein Word-Dokument übernehmen - Daten aus Excel automatisch in ein Word-Dokument übernehmen

Nach oben
       Version: Office 2007

Hallo zusammen,

ich habe folgende Problemstellung:

Ausgangspunkt ist ein teilweise schreibgeschütztes Word-Dokument
in welchem nur einige Felder ausfüllbar sind.
http://www.bag.bund.de/cae/servlet/contentblob/9988/publicationFile/612/Taetigkeitsnachweis_FahrP.doc

Desweiteren eine Excel Datei in der Daten verschiedener Leute stehen die in eben
diese Editierbaren felder eingetragen werden sollen.

Idee ist über einen Index zu bestimmen welche Daten in diese Worddokument übertragen werden.

Ich glaube nicht das es realisierbar ist, aber vielleicht hat ja jemand eine Idee.

Das Layout des Worddokuments darf nicht verändert werden und muss exakt erhalten bleiben.
J_B
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. März 2010, 12:03
Rufname:


AW: Daten aus Excel automatisch in ein Word-Dokument überneh - AW: Daten aus Excel automatisch in ein Word-Dokument überneh

Nach oben
       Version: Office 2007

Wie sieht die zugehörige Excel-Datei aus?
Vernünftige Tabelle mit Spaltenüberschrift und einem Datensatz pro Zeile oder hat da jemand ein Formular "gemalt"?
Stehen die Daten immer in derselben Spalte (Name, Str., HsNr., ...) oder wenigstens in derselben Zelle (Jeder "Kunde" auf einem Tabellenblatt)?

ICH wuerde ggf. die Daten zuerst in EINE Tabelle uebertragen, weil
- der VBA-Code dann einfacher ist
- man auch gleich eine Auswertung via Pivot-Tabelle erstellen kann

Es gibt in VBA die Funktion Sendkeys ("Tastenfolge senden") mit der man Eingaben in jede andere Anwendung senden kann (primitiv, aber klappt Wink ).

Dabei sollte man die Makros zur Steuerung in eine eigene Excel-Datei packen und NICHT in die Datei mit den Daten.

Hier mal ein Beispiel zum Ausfüllen von PDF-Dateien:

Code:
Sub PDF_Ausfuellen01()
   '#Ausfuellen einer PDF-Datei mit Daten aus einer Excel-Datei und Speichern unter individuellem Namen
    Dim Zeil%, AZeil%, LZeil%, DatNam$, Titel$, N%, ZPfad$
    Dim X
    ChDrive Left(ThisWorkbook.Path, 1)
    ChDir ThisWorkbook.Path
    Titel = Application.Caption
   
    'verschiedene Werte (erste/letzte Zeile der Datentabelle, Pfad zur Datei) wurden
    'in einer Tabelle (Worksheet("INI") eingetragen, da sie dort einfacher zu finden
    'und zu aendern sind, als im VBA-Code
    ZPfad = Cells(1, 2)
    AZeil = Cells(2, 2) 'erste und letzte Zeile
    LZeil = Cells(3, 2)
    N = 0 'Anzahl bearbeiteter Dateien
    X = Shell("C:\Programme\Adobe\Reader 8.0\Reader\AcroRd32.exe", 1)
   
    For Zeil = AZeil To LZeil
        fWartedauer (1) 's.u.  Function fWartedauer
        AppActivate Titel
        Cells(Zeil - 1, 2).Select
        Selection.Font.Bold = False
        Cells(Zeil, 2).Select
        Selection.Font.Bold = True
        fWartedauer (1)
       
        'Dateiname inkl. Pfad zusammensetzen
        DatNam = ZPfad & CStr(Cells(Zeil, 1)) & "\" & CStr(Cells(Zeil, 2)) & ".PDF"
     
      On Error GoTo KeinAdobeReader
      AppActivate ("Adobe Reader")
    fWartedauer (1)
      On Error GoTo 0
      On Error GoTo KeineDatei
      SendKeys "^o" '= STRG-o (Datei oeffnen-Dialog)
    fWartedauer (1)
      xSendKeys DatNam '= Dateiname der zu oeffnenden Datei senden
      'hier evtl. immer dieselbe Vorlage oeffnen, mit "Speichern unter"
      'unter einem individuellen Namen speichern
      'z.B. (Datum <JJJJMMTT>_<FirmenName>_<FahrerName>_<FahrerVorname>.doc)
     
    fWartedauer (1)
      SendKeys "{Enter}"
      On Error GoTo 0
    fWartedauer (3)
      SendKeys "{TAB}"
      xSendKeys CStr(Cells(Zeil, 3)) 'Name
    fWartedauer (1)
      SendKeys "{TAB}"
      xSendKeys CStr(Cells(Zeil, 7)) 'Tel
    fWartedauer (1)
      SendKeys "{TAB}"
      xSendKeys CStr(Cells(Zeil, 4)) 'Str
    fWartedauer (1)
      SendKeys "{TAB}"
      xSendKeys CStr(Cells(Zeil, 8)) 'FAX
    fWartedauer (1)
      SendKeys "{TAB}"
      xSendKeys CStr(Cells(Zeil, 5)) 'PLZ
    fWartedauer (1)
      'zwei Eingabefelder weiterspringen
      SendKeys "{TAB}"
      SendKeys "{TAB}"
    fWartedauer (1)
      SendKeys "^s" 'Speichern
    fWartedauer (5)
      SendKeys "^w"
      On Error GoTo 0
      N = N + 1
      'hier werden zu Kontrollzwecken Anzahl der Dateien und benoetigte Zeit gespeichert
      'kann raus
      Cells(3, 3) = N
      Cells(5, 3) = Time
      ActiveWorkbook.Save 'Excel-Programm speichern
    Next Zeil
    'Reader beenden
    AppActivate ("Adobe Reader")
  fWartedauer (1)
    SendKeys "^q"
   
    fWartedauer (1)
    AppActivate Titel
    fWartedauer (1)
    Cells(Zeil - 1, 2).Select
    Selection.Font.Bold = False
    Cells(5, 3) = Time
    ActiveWorkbook.Save
   
    MsgBox (N & " PDF-Dateien bearbeitet!")
    Exit Sub

'Fehlerbehandlung
KeinAdobeReader:
MsgBox ("Acrobat Reader nicht gestartet?!")
Exit Sub

KeineDatei:
MsgBox ("Datei " & DatNam & " nicht gefunden!")
Exit Sub

AndererFehler:
MsgBox ("Fehler aufgetreten! Beende Makro!")
End Sub


Function fWartedauer(X)
    '#wartet X Sekunden
    'die Funktion fWartedauer ist noetig, damit das System Zeit hat z.B. eine Datei zu oeffnen usw.
    'da sonst die Tastenfolge evtl. im "Nirwana" landen wuerde
    Dim NStd, NMin, NSek, WZeit
    NStd = Hour(Now())
    NMin = Minute(Now())
    NSek = Second(Now()) + X
    WZeit = TimeSerial(NStd, NMin, NSek)
    Application.Wait WZeit
End Function


Hoffe das hilft Dir.

_________________
Gruß

J_B
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Word Serienbriefe: Serienbrief - Daten aus Access Abfrage mit vb-Code 2 Zocker-3001 1830 18. Aug 2009, 07:44
Zocker-3001 Serienbrief - Daten aus Access Abfrage mit vb-Code
Keine neuen Beiträge Word Serienbriefe: Serienbrief mit Daten aus Sharepointliste 0 domi_nik 3804 29. Jul 2009, 08:54
domi_nik Serienbrief mit Daten aus Sharepointliste
Keine neuen Beiträge Word Serienbriefe: Serienfeld nachträglich automatisch ändern? 8 Saft 2129 11. Feb 2009, 14:38
Saft Serienfeld nachträglich automatisch ändern?
Keine neuen Beiträge Word Serienbriefe: Serienmail Datenquelle automatisch verbinden 0 adamth 1711 13. Sep 2008, 14:00
adamth Serienmail Datenquelle automatisch verbinden
Keine neuen Beiträge Word Serienbriefe: Strichcode automatisch generieren 0 manuel_bo 2024 02. Jul 2008, 15:26
manuel_bo Strichcode automatisch generieren
Keine neuen Beiträge Word Serienbriefe: Word-Dokument als Lieferschein 0 trailsurfer76 3258 24. Jun 2008, 14:45
trailsurfer76 Word-Dokument als Lieferschein
Keine neuen Beiträge Word Serienbriefe: Serienbrief Daten aktuallisieren 0 PC Dummy 605 13. Mai 2008, 10:43
PC Dummy Serienbrief Daten aktuallisieren
Keine neuen Beiträge Word Serienbriefe: Word importiert nicht alle Daten 2 April28 1205 01. Apr 2008, 08:58
Gast Word importiert nicht alle Daten
Keine neuen Beiträge Word Serienbriefe: Formular mit Access-Datenbank automatisch "befüllen&quo 0 craysee 1114 11. März 2008, 16:24
craysee Formular mit Access-Datenbank automatisch "befüllen&quo
Keine neuen Beiträge Word Serienbriefe: Word Serienbrief mit Eingabe von Daten in Eingabefeld 0 Volunteer2008 1938 05. März 2008, 09:20
Volunteer2008 Word Serienbrief mit Eingabe von Daten in Eingabefeld
Keine neuen Beiträge Word Serienbriefe: Kopf und Fußzeile aus Access Datenbank übernehmen 4 f12 1310 19. Aug 2007, 19:07
f12 Kopf und Fußzeile aus Access Datenbank übernehmen
Keine neuen Beiträge Word Serienbriefe: Mehrere Datensätz in einem Worddokument 0 Boris81 593 02. Mai 2007, 11:21
Boris81 Mehrere Datensätz in einem Worddokument
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps