Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.06.2024 19:56:24
17.06.2024 19:39:46
Anzeige
Archiv - Navigation
1528to1532
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

Eintragungstabelle in Word übertragen

Eintragungstabelle in Word übertragen
21.12.2016 10:06:43
Susi
Halli Hallo.
Ich füge täglich Anmeldedaten aus einer Exceltabelle in ein Worddokument ein.
Die Anmeldedaten sehen wie folgt aus:
Name Firma Eingecheckt Ausgecheckt
Jane intern 08:00 17:00
Bob intern 08:00 17:00
Jan intern 08:00 17:00
Udo intern 08:00 17:00
Diese Liste wird dann zwecks Archivierung für jede Person in eine Worddatei übertragen.
Name Jane
Firma Intern
Eingecheckt 8:00
Ausgecheckt 17:00
Dabei muss die Tabelle gespiegelt werden.
Ich bin bisher soweit, dass ich die Tabelle schonmal in ein Worddokument übertragen kann:
  • 
    Sub NachWordKopieren()
    Dim wd As Object
    Range("A1:J48").Copy
    Set wd = CreateObject("word.application")
    wd.documents.Add
    wd.Visible = True
    wd.activedocument.Range.Paste
    End Sub
    

  • Das Problem ist, dass die Liste gespiegelt werden muss und ich auf diesem Weg für jede Zeile ein neues Makro schrieben müsste und das dann eher kontraproduktiv ist.

    2
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    Umgruppierung
    21.12.2016 10:30:26
    lupo1
    R1: =INDEX($1:$1;REST(ZEILE(A4);4)+1)
    S1: =INDEX(A:D;ZEILE(A8)/4;REST(ZEILE(A4);4)+1)
    runterziehen
    AW: Eintragungstabelle in Word übertragen
    21.12.2016 12:17:01
    fcs
    Hallo Susi,
    am "einfachsten" wird es, wenn die Daten in der Exceltabelle zeilenweise abarbeitet werden und dabei in den Word-Dokumenten jeweils eine passende Wordtabelle (4 Zeilen,2 Spalten) angelegt wird.
    Beim Übertragen der Daten kann man die Spalten und Zeilen vertauschen.
    Bei den Dateinamen der Worddateien musst du ggf. Anpassungen machen.
    Ich hab ihn jetzt aus Datum (JJJJ-MM-TT)-Name-Zeilennummer zusammengesetzt.
    Mit der Zeilennummer werden identische Namen oder Mehrfach-Ckeck-inns erfasst.
    Den Archiv-Pfad musst du ggf. ebenfalls anpassen.
    LG
    Franz
    
    Sub NachWordKopieren()
    Dim wksData As Worksheet
    Dim Zeile As Long, Spalte As Long
    Dim strPath As String
    Dim wdApp As Object
    Dim wdDoc As Object 'Word.document
    Set wksData = ActiveSheet
    strPath = wksData.Parent.Path & "\Archiv" 'Verzeichnis zum Archivieren der Checkins
    Set wdApp = CreateObject("word.application")
    wdApp.Visible = True
    'Tabellen-Rahmen Optionen setzen
    With wdApp.Options
    .DefaultBorderLineStyle = 1 'wdLineStyleSingle
    .DefaultBorderLineWidth = 4 'wdLineWidth050pt
    .DefaultBorderColor = -16777216 'wdColorAutomatic
    End With
    With wksData
    For Zeile = 2 To .Cells(1, 1).End(xlDown).Row
    'neues Worddokument anlegen
    Set wdDoc = wdApp.documents.Add
    'Word-Tabelle mit 4 Zeilen und 2 Spalten anlegen
    wdDoc.Tables.Add wdDoc.Range, 4, 2
    With wdDoc.Tables(1)
    'Spaltenbreiten anpassen
    With .Columns(1)
    .PreferredWidthType = 3 'wdPreferredWidthPoints
    .PreferredWidth = wdApp.CentimetersToPoints(3)
    End With
    With .Columns(2)
    .PreferredWidthType = 3 'wdPreferredWidthPoints
    .PreferredWidth = wdApp.CentimetersToPoints(12)
    End With
    With .Borders(-1) 'wdBorderTop
    .LineStyle = wdApp.Options.DefaultBorderLineStyle
    .LineWidth = wdApp.Options.DefaultBorderLineWidth
    .Color = wdApp.Options.DefaultBorderColor
    End With
    With .Borders(-2) 'wdBorderLeft
    .LineStyle = wdApp.Options.DefaultBorderLineStyle
    .LineWidth = wdApp.Options.DefaultBorderLineWidth
    .Color = wdApp.Options.DefaultBorderColor
    End With
    With .Borders(-3) 'wdBorderBottom
    .LineStyle = wdApp.Options.DefaultBorderLineStyle
    .LineWidth = wdApp.Options.DefaultBorderLineWidth
    .Color = wdApp.Options.DefaultBorderColor
    End With
    With .Borders(-4) 'wdBorderRight
    .LineStyle = wdApp.Options.DefaultBorderLineStyle
    .LineWidth = wdApp.Options.DefaultBorderLineWidth
    .Color = wdApp.Options.DefaultBorderColor
    End With
    With .Borders(-5) 'wdBorderHorizontal
    .LineStyle = wdApp.Options.DefaultBorderLineStyle
    .LineWidth = wdApp.Options.DefaultBorderLineWidth
    .Color = wdApp.Options.DefaultBorderColor
    End With
    With .Borders(-6) 'wdBorderVertical
    .LineStyle = wdApp.Options.DefaultBorderLineStyle
    .LineWidth = wdApp.Options.DefaultBorderLineWidth
    .Color = wdApp.Options.DefaultBorderColor
    End With
    'Daten aus Zeile in Exceltabelle in Word-Tabelle übertragen
    For Spalte = 1 To 4
    'Spaltentitel in Spale 1 eintragen
    .Cell(Spalte, 1).Range.Text = wksData.Cells(1, Spalte).Text
    'Werte in Zeile in Spale 2 eintragen
    .Cell(Spalte, 2).Range.Text = wksData.Cells(Zeile, Spalte).Text
    Next Spalte
    End With
    'Worddokument speichern und schliessen
    wdDoc.SaveAs2 Filename:=strPath & "\" & Format(Date, "YYYY-MM-DD") _
    & "-" & .Cells(Zeile, 1).Text & Format(Zeile - 1, "-000") & ".docx", _
    FileFormat:=16, _
    Addtorecentfiles:=False '16 = wdFormatDocumentDefault
    wdDoc.Close Savechanges:=False
    Next Zeile
    End With
    'Word-Anwendung wieder beenden
    wdApp.Quit
    End Sub
    

    Anzeige

    306 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige