Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zeilenumbruch nach Kopiervorgang

Zeilenumbruch nach Kopiervorgang
20.10.2016 14:55:21
Hubert
Hallo zusammen,
ich schreibe gerade ein Makro, welches Werte aus Excel in eine Vorlage in Word kopiert. Ich habe nun alles soweit, dass Word geöffnet wird, die Werte kopiert werden und an einer Textmarke in einer Tabelle landen. Allerdings ist dabei auch eine Liste mit Überschrift und jeweiliger Unterüberschrift, welche in Excel untereinander in eigenen Zellen angeordnet sind. Wenn ich nun also den Kopiervorgang starte, werden alle Zellen nacheinander an die Textmarke kopiert (in die gleiche Zelle der Tabelle) und stehen dann ohne Abstand oder Umbrüche da. Gibt es da eine Mögichkeit, quasi zwischen den Kopiervorgängen der einzelnen Zellen einen Zeilenumbruch einzufügen?
Danach sollten die Überschriften noch Fett werden, dazu ist mir bisher auch noch keine Lösung eingefallen, wisst ihr da vielleicht was dazu?
Ich benutze Office 2016 und Windows 7.
Liebe Grüße und vielen Dank schonmal im voraus,
Nik
Hier der Ausschnitt (Falls da irgendwelche VBA No-Go's dabei sind, verzeihts mir, ist mein erstes Programm in VBA ;-))
'Überschriften & Beschreibungen
'Gesamtkonzeption
'Unterüberschriften
If Cells(14, 13) "0" Then 'Prüfen ob Zelle einen Wert hat. (14, 13) = M14
If objDocument.Bookmarks.Exists(strBookmark1) = True Then 'Prüfen ob Textmarke existiert
objDocument.Bookmarks(strBookmark1).Range = .Range("D14").Text 'Einfügen des Wertes von D14 an die Textmarke 1
End If
End If
'Zeilenumbruch
If Cells(13, 13) "0" Then
If objDocument.Bookmarks.Exists(strBookmark1) = True Then
objDocument.Bookmarks(strBookmark1).Range = .Range("D13").Text
End If
End If
'Zeilenumbruch
If Cells(12, 13) "0" Then
If objDocument.Bookmarks.Exists(strBookmark1) = True Then
objDocument.Bookmarks(strBookmark1).Range = .Range("D12").Text
End If
End If
'Zeilenumbruch
If Cells(11, 13) "0" Then
If objDocument.Bookmarks.Exists(strBookmark1) = True Then
objDocument.Bookmarks(strBookmark1).Range = .Range("D11").Text
End If
End If
'Zeilenumbruch
If Cells(10, 13) "0" Then
If objDocument.Bookmarks.Exists(strBookmark1) = True Then
objDocument.Bookmarks(strBookmark1).Range = .Range("D10").Text
End If
End If
'Zeilenumbruch
If Cells(9, 13) "0" Then
If objDocument.Bookmarks.Exists(strBookmark1) = True Then
objDocument.Bookmarks(strBookmark1).Range = .Range("D9").Text
End If
End If
'Zeilenumbruch
'Überschrift (Fett)
If Cells(15, 13) "0" Then
If objDocument.Bookmarks.Exists(strBookmark1) = True Then
objDocument.Bookmarks(strBookmark1).Range = .Range("D8").Text
End If
End If
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenumbruch nach Kopiervorgang
23.10.2016 15:27:11
Peter
Hallo Nik,
ich wundere mich nicht, dass ich offenbar der erste bin, der Dir antwortet. Dieses Forum ist m. E. zu 95 % ein reines Excel-Forum und nur wenige Mitglieder interessieren sich für die Verbindungen Excel-Word. Da ich Dein Thema interessant finde, habe ich mal versucht, eine Lösung zu entwickeln, die allerdings einen völlig anderen Ansatz hat.
Zunächst mal eine Excel-Datei, aus welcher die Übertragung von Excel-Daten zu Word gesteuert wird. Ich habe diese Datei "Uebertr_Excel_Word.xlsm" genannt. Wenn Du einen anderen Namen verwenden willst, musst Du die Makros entsprechend anpassen. Genaue Erläuterungen finden sich auf dem dritten Arbeitsblatt dieser Datei.
https://www.herber.de/bbs/user/108977.xlsm
In meinem Beispiel sind 8 Spalten enthalten, die man problemlos in ein A4-Hochkant-Formular von Word unterbringen kann. Beim Querformat von Word habe ich erfolgreich mit 15 Spalten getestet.
Bitte lege unter demselben Pfadnamen noch eine leere Excel-Datei namens "Dummy.xlsm" an. In einem Auto-Open-Makro von "Uebertr..." wird diese Datei geladen und sofort wieder geschlossen. Damit wird erreicht, dass in der Task-Leiste der Name der Datei (und nicht nur "Excel") erscheint. Dies ist für den weiteren Programmverlauf absolut wichtig.
Meine Musterdatei in Word habe ich "Dok1.docm" genannt. Die Datei ist jetzt aktuell im Hochformat; man kann jedoch auch das Querformat einstellen. Wenn die Excel-Daten zwischen zwei Textstellen in Word eingefügt werden sollen, dann sollten sich dort mindestens zwei Leerzeilen befinden. Hier der Upload von "Dok1.docm" (bitte die Zip-Datei extrahieren).
https://www.herber.de/bbs/user/108978.zip
Diese Datei dient als Mustervorlage. Wenn Du mehrere dieser Muster verwenden willst, könnte man auch eine Liste dieser Dateien per Makro abarbeiten.
Was nicht in meiner Problemlösung enthalten ist: Die Heranholung der Excel-Daten (mehrere Dateien?) und die Speicherung der mit den Einfügungen versehenen Word-Datei, auch hier könnte man eine Liste per Makro bearbeiten.
Ich arbeite mit WINDOWS7 und OFFICE2007 und hoffe, dass dies mit Deinen Systemen kompatibel ist.
Bitte mal ausprobieren; Rückmeldung wäre schön.
Mit freundlichem Gruß
Peter Kloßek
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilenumbruch nach Kopiervorgang in Excel und Word


Schritt-für-Schritt-Anleitung

  1. Vorbereitung der Excel-Datei: Stelle sicher, dass Deine Excel-Datei die Daten enthält, die Du nach Word übertragen möchtest. Achte darauf, dass die Überschriften und Unterüberschriften in separaten Zellen stehen.

  2. Öffnen von Word: Starte Word und öffne ein neues Dokument oder eine bestehende Vorlage, in die Du die Daten einfügen möchtest.

  3. VBA-Makro erstellen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Füge ein neues Modul hinzu und schreibe Dein Makro, um die Daten aus Excel zu Word zu kopieren. Beispiel:

      Sub CopyDataToWord()
       Dim objWord As Object
       Dim objDocument As Object
       Set objWord = CreateObject("Word.Application")
       Set objDocument = objWord.Documents.Add
      
       ' Deine Kopiervorgänge hier
       If Cells(14, 13) <> "0" Then
           objDocument.Bookmarks("YourBookmark").Range.Text = .Range("D14").Text & vbCrLf  ' Zeilenumbruch einfügen
       End If
       ' Füge weitere Zellen hinzu
       ' ...
       objWord.Visible = True
      End Sub
    • Ersetze "YourBookmark" durch den Namen Deiner Textmarke in Word.
  4. Zeilenumbrüche einfügen: Verwende vbCrLf oder vbNewLine zwischen den Werten, um einen Zeilenumbruch zu forcieren.

  5. Word-Dokument formatieren: Nach dem Kopiervorgang kannst Du die Schriftart und -größe anpassen sowie die Überschriften fett formatieren.


Häufige Fehler und Lösungen

  • Problem: Daten werden ohne Zeilenumbrüche eingefügt.

    • Lösung: Stelle sicher, dass Du vbCrLf in Deinem VBA-Code verwendest, um einen Zeilenumbruch nach jedem Wert einzufügen.
  • Problem: Überschriften werden nicht fett dargestellt.

    • Lösung: Füge nach dem Einfügen der Überschrift folgenden Code hinzu:
      objDocument.Bookmarks("YourBookmark").Range.Font.Bold = True
  • Problem: Die Daten erscheinen nicht richtig in Word.

    • Lösung: Überprüfe, ob die Textmarke in Word korrekt gesetzt ist und ob die Excel-Zellen tatsächlich Werte enthalten.

Alternative Methoden

  • Excel-Text mit Umbruch in eine Zelle kopieren: Anstatt die Daten in Word zu kopieren, kannst Du sie auch in eine Excel-Zelle mit einem manuellen Zeilenumbruch einfügen. Dies funktioniert, indem Du ALT + ENTER verwendest.

  • Word-Tabelle in Excel umwandeln: Wenn Du eine Word-Tabelle hast, die Du nach Excel kopieren möchtest, kannst Du dies tun, indem Du die Tabelle kopierst und in Excel einfügst. Achte darauf, die Option „Einfügen“ als „Tabelle“ auszuwählen, um die Struktur zu bewahren.


Praktische Beispiele

  • Einfügen von Überschriften und Unterüberschriften: Wenn Du eine Liste von Daten in Excel hast, z. B.:

    D8: Überschrift 1
    D9: Unterüberschrift 1.1
    D10: Unterüberschrift 1.2

    Stelle sicher, dass Du zwischen diesen Zellen einen Zeilenumbruch einfügst, wenn Du sie nach Word überträgst.

  • Kopieren einer Liste: Um eine Liste in Word zu erstellen, kannst Du mehrere Zellen aus Excel kopieren. Beispiel:

    objDocument.Bookmarks("YourBookmark").Range.Text = .Range("D9").Text & vbCrLf & .Range("D10").Text

Tipps für Profis

  • Automatisierung: Erstelle ein vollständiges VBA-Skript, das automatisch alle benötigten Daten kopiert, anstatt jeden Schritt manuell durchzuführen.

  • Daten validieren: Vor dem Kopiervorgang solltest Du sicherstellen, dass alle Zellen die erwarteten Werte enthalten, um Fehler zu vermeiden.

  • Formatierung in Word: Nutze die Word-Formatierungsoptionen, um das Erscheinungsbild des Dokuments zu optimieren. Du kannst auch Styles für Überschriften verwenden.


FAQ: Häufige Fragen

1. Wie kann ich einen manuellen Zeilenumbruch in Word einfügen? Um einen manuellen Zeilenumbruch in Word einzufügen, drücke Shift + Enter.

2. Was sind Werte ohne Zeilenumbrüche? Werte ohne Zeilenumbrüche sind Daten, die in einer einzigen Zeile erscheinen, ohne dass sie durch einen Zeilenumbruch oder ähnliches getrennt sind.

3. Wie kann ich eine Word-Tabelle nach Excel kopieren ohne Zeilenumbruch? Um eine Word-Tabelle ohne Zeilenumbruch zu kopieren, kopiere die Tabelle normal und füge sie in Excel ein. Achte darauf, dass Du die Daten als „Tabelle“ einfügst.

4. Wie kann ich Zeilenumbrüche in Excel erzwingen? In Excel kannst Du einen Zeilenumbruch erzwingen, indem Du ALT + ENTER innerhalb einer Zelle drückst, wo Du den Umbruch haben möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige