Clever-Excel-Forum

Normale Version: Export zu Word via VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe eine Excel-Datei mit einer Tabelle und 12 Spalten.
Unter anderem Nummer, Kategorie, Unterkategorie und Posten.

Ich möchte bin dabei ein Makro zu erstellen, dass mir die Posten entsprechend ihrer Kategorie und Unterkategorie und sortiert nach der Nummerierung in eine Word Datei schreibt.
Die Posten sollen dabei einfach als nicht nummerierte Aufzählungspunkte untereinander gesetzt werden.

Das funktioniert soweit auch schon recht gut. In einigen Posten habe ich allerdings Zeilenumbrüche durch Alt+Enter.
Eine solcher Posten soll den Inhalt bis zum ersten Umbruch als normalen Punkt übernehmen und alles anschließend um eine Ebene einrücken.
Daran scheitere ich aktuell.

Bilder von einer solchen Excel-Zelle und wie es in Word aussehen sollte sind im Anhang.
Dazu mein aktueller Code des Makros.

Weiß jemand wie ich die Einzug-Ebene von Aufzählungen in einem VBA Skript definiere?
Hallöchen,

ersetze doch den Zeilenumbruch durch "* ", ggf. auch mit einem Zeilenumbruch davor.
Hey,
danke für die Antwort, ich verstehs leider nicht ganz. Das Erkennen des Zeilenumbruchs durch das Macro funktioniert. Nur die Formatierung in Word die daraus entstehen soll, leider nicht.

Hab die Datei jetzt auch noch mal hochgeladen (hätte ich gleich machen müssen... )
Zum Testen muss der Datenpfad am Anfang des Makros auf den Speicherort der Datei anpassen.

LG Stogi

Ah ich hab den Befehl gefunden!

https://learn.microsoft.com/de-de/office...aph.indent
bitte lade auch deine "Anforderungen_Vorlage.docx" hoch.
Ich fürchte dass schon dieser Code reicht:

Code:
Sub M_snb()
  ListObjects(1).Range.Sort ListObjects(1).Range.Cells(1, 3)
   
  With GetObject("G:\OF\Anforderungen_Vorlage.docx")
     .variables("cat") = "Anforderungen SPS Stand: " & Date
     .variables("inh") =  Replace(Join(Filter(Application.Transpose(ListObjects(1).Range.Columns(9)), ""), vbCr), vbLf, vbTab)
     .Fields.Update
     .Windows(1).Visible = True
     .SaveAs2 "G:\OF\" & Format(Date, "yyyymmdd_") & "Anforderungen SPS.docx"
  End With
End Sub
In Excel Datei:

Code:
Sub M_snb()
    ListObjects(1).Range.Sort Tabelle1.ListObjects(1).Range.Cells(1, 3)
    
    With GetObject("G:\OF\Anforderungen_Vorlage.docx")
        .variables("cat") = "Anforderungen SPS Stand: " & Date
        .variables("inh") = Replace(Join(Filter(Application.Transpose(ListObjects(1).Range.Columns(9)), ""), vbCr), vbLf, vbCr & vbTab)
        .Fields.Update
        With .Content.Find
           .ClearFormatting
           .Replacement.ClearFormatting
           .Replacement.Style = .Parent.Parent.Styles("List Bullet 3")
           .Execute "^t", , , , , , True, , True, "^t", 2
        End With
        .Windows(1).Visible = True
        .SaveAs2 "G:\OF\" & Format(Date, "yyyymmdd_") & "Anforderungen SPS.docx"
        .Close 0
    End With
End Sub

Nun mit Word Vorlage