Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1928to1932
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

Zeilen in Word löschen

Zeilen in Word löschen
03.05.2023 17:13:51
Luisa

Hallo liebe Mitglieder,

ich benötige nochmal Hilfe.
Dank eurer Hilfe, habe ich mittlerweile einen funktionierenden Code, der meine Daten aus Excel zu Word überträgt. Leider gibt es noch 2 Baustellen.

1. Da die Zeilen die aus Excel übertragen werden eine Variable Anzahl sind, wäre es schön wenn die Zeilen die in Word nicht befüllt werden raus gelöscht werden. Bzw. anders herum, für jede Zeile die aus Excel an Word übergeben wird, auch nur eine Zeile in Word kreiert wird.

2. In Spalte D meiner Excel, stehen nicht immer Daten. Besteht die Möglichkeit, wenn keine Daten in einer Zelle stehen und diese leer an Word übertragen wird, einen Eintrag in Word zu machen, mit z.B. "Kein Eintrag" ?

Mein aktueller Code um die Daten zu übertragen sieht so aus.

Dim appWord     As Object
Dim oWord       As Object
Dim sUName      As String

Dim oTable, lloRow As Long, lshXL As Worksheet, lloWdNext As Long

sUName = Environ("username")

Set oWord = CreateObject("Word.Application")
With oWord
.Documents.Add Template:="C:\Users\" & sUName & "\Desktop\Test.docx"

.Visible = True
.Activate


Set lshXL = Sheets("Tabelle.Test")
        Set oTable = .ActiveDocument.Tables(1)
        lloWdNext = 6
        
            For lloRow = 2 To lshXL.Cells(lshXL.Rows.Count, 1).End(xlUp).Row
                oTable.Cell(lloWdNext, 2) = lshXL.Range("E" & lloRow).Value
                oTable.Cell(lloWdNext, 3) = lshXL.Range("I" & lloRow).Value
                oTable.Cell(lloWdNext, 4) = lshXL.Range("A" & lloRow).Value & vbCrLf & _
                                            lshXL.Range("C" & lloRow).Value
                oTable.Cell(lloWdNext, 5) = lshXL.Range("D" & lloRow).Value
                oTable.Cell(lloWdNext, 6) = lshXL.Range("B" & lloRow).Value
                oTable.Cell(lloWdNext, 8) = lshXL.Range("H" & lloRow).Value
                oTable.Cell(lloWdNext, 11) = lshXL.Range("L" & lloRow).Value
                oTable.Cell(lloWdNext, 12) = lshXL.Range("M" & lloRow).Value
                oTable.Cell(lloWdNext, 13) = lshXL.Range("K" & lloRow).Value
                lloWdNext = lloWdNext + 1
            Next
        
    End With
    
    Set oWord = Nothing
    Set oTable = Nothing
    Set lshXL = Nothing
    
End Sub


Ich hoffe ich konnte mein Anliegen halbwegs verständlich rüber bringen.
Danke schonmal für euere Hilfe.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen in Word löschen
03.05.2023 17:44:40
ReginaR
Hi,
die 2. Frage ist relativ einfach zu lösen:


if  lshXL.Range("D" & lloRow).Value = "" then
      oTable.Cell(lloWdNext, 5) =  oTable.Cell(lloWdNext, 5) = "Kein Eintrag"
Else
      oTable.Cell(lloWdNext, 5) =  oTable.Cell(lloWdNext, 5) = lshXL.Range("D" & lloRow).Value
End If
Zu der ersten Frage eine Rückfrage:

Der Code liest sich so, dass in der Tabelle in Deiner Worddatei bereits 5 Zeilen befüllt sind, ist das so?

Gruß Regina


AW: Zeilen in Word löschen
03.05.2023 20:52:59
Luisa
Hi Regina,

erstmal vielen Dank für deine Rückmeldung.
Wenn ich deinen Code so umsetze, dann werden meine leeren Felder in der Worddatei befüllt, jedoch immer mit "False".
Ansonsten funktioniert es.
ZU deiner Rückfrage:
Nein die Tabelle der Worddatei ist leer. lediglich in der ersten Spalte befinden sich fortlaufende Nummern, da dies mit dem Code auch nicht automatisch eingetragen werden. Diese können aber auch entfernt werden und nachher manuell eingetragen werden. Die Tabelle sieht so aus :
https://www.herber.de/bbs/user/158915.jpg
Bloß, dass alles leer ist bis auf wie gesagt die erste Spalte, die wiederum auch entfernt werden kann.
Beste Grüße

Luisa


Anzeige
AW: Zeilen in Word löschen
03.05.2023 22:50:40
ReginaR
sorry, bei meinem 1. Post habe ich falsch kopiert. Die Cide-Veräderung sollte so aussehen:



if  lshXL.Range("D" & lloRow).Value = "" then
      oTable.Cell(lloWdNext, 5) =   "Kein Eintrag"
Else
      oTable.Cell(lloWdNext, 5) =   lshXL.Range("D" & lloRow).Value

End If
Was Deine andere Frage anbelangt. Lade doch bitte einmal eine Beispieldatei für das Worddokument hoch.

Gruß Regina


AW: Zeilen in Word löschen
03.05.2023 22:58:24
Luisa
Hi Regina,

jetzt klappt es hervorragend. Vielen Dank. :)

Hier ist einmal die Beispiel Excel + die Worddatei, vielleicht kannst du damit ja was anfangen.

https://www.herber.de/bbs/user/158939.zip

Grüße


Anzeige
AW: Zeilen in Word löschen
04.05.2023 11:13:04
Jowe
wie wäre es denn so:

Option Explicit

Sub Test_Word_Datei()
    ' Test_Word_Datei Makro
    Dim appWord As Object
    Dim oWord As Object
    Dim oTable As Object
    Dim sUName As String
    Dim lloRow As Long
    Dim lloWdNext As Long
    Dim ze As Long
    Dim lshXL As Worksheet
    sUName = Environ("username")
    Set oWord = CreateObject("Word.Application")
    With oWord
      .Documents.Add Template:="C:\Temp\Luisa\Test VA.dotx" 'Mein Pfad-/ bzw. DateiName
      '.Documents.Add Template:="C:\Users\" & sUName & "\OneDrive\Desktop\Beispiel"
      .Visible = True
      .Activate
      Set lshXL = Sheets("Tabelle1") 'Tabellenname anpassen!!
      Set oTable = .ActiveDocument.Tables(1)
      lloWdNext = 6
      For lloRow = 2 To lshXL.Cells(lshXL.Rows.Count, 1).End(xlUp).Row
        With lshXL
          oTable.Cell(lloWdNext, 1) = lloRow - 1
          oTable.Cell(lloWdNext, 2) = .Range("E" & lloRow).Value
          oTable.Cell(lloWdNext, 3) = .Range("I" & lloRow).Value
          oTable.Cell(lloWdNext, 4) = .Range("A" & lloRow).Value & Chr(13) & .Range("C" & lloRow).Value
          If .Range("D" & lloRow).Value = "" Then
            oTable.Cell(lloWdNext, 5) = "kein Eintrag"
          Else
            oTable.Cell(lloWdNext, 5) = .Range("D" & lloRow).Value
          End If
          If .Range("B" & lloRow).Value = "" Then
            oTable.Cell(lloWdNext, 6) = "leer"
          Else
            oTable.Cell(lloWdNext, 6) = .Range("B" & lloRow).Value
          End If
          oTable.Cell(lloWdNext, 8) = .Range("H" & lloRow).Value
          oTable.Cell(lloWdNext, 11) = Format(.Range("L" & lloRow).Value, "#,###.00 €")
          oTable.Cell(lloWdNext, 12) = Format(.Range("M" & lloRow).Value, "#,###.00 €")
          oTable.Cell(lloWdNext, 13) = .Range("K" & lloRow).Value
          lloWdNext = lloWdNext + 1
        End With
      Next
      For ze = 20 To lshXL.Cells(lshXL.Rows.Count, 1).End(xlUp).Row + 5 Step -1
        oTable.Rows(ze).Delete
      Next ze
    End With
    Set oWord = Nothing
    Set oTable = Nothing
    Set lshXL = Nothing
End Sub

Gruß
Jochen


Anzeige
AW: Zeilen in Word löschen
04.05.2023 18:12:17
Luisa
Hi Jochen,

danke für deinen Code und deine Hilfe.
Leider werden die übrigen Zeilen im Worddokument nicht entfernt .:(
Mache ich ggf. etwas falsch ? Gibt es was zu beachten ?

Grüße
Luisa


AW: Zeilen in Word löschen
05.05.2023 12:46:36
Jowe
hmm, wie viele Zeilen hat Deine Vorlage für die zu übertragenden Daten, bis war ich von 15 Zeilen ausgegangen.


AW: Zeilen in Word löschen
05.05.2023 13:55:06
Jowe
Also an meinem PC klappt das; die Tabellenzeilen ab Zeile 6 werden gefüllt, die Zeilen zwischen letzter gefüllter Tabellenzeile bis zur Tabellenzeile 20 werden gelöscht.
Dazu kannst Du in das Ergebnis-Dokument meines Makros schauen - "Mein Text mit meinem Makro Vordruck Alle.docx".
https://www.herber.de/bbs/user/159065.zip
Gruß
Jochen


Anzeige
AW: Zeilen in Word löschen
03.05.2023 22:57:01
Oberschlumpf
Hi Regina,

hier, für dich zur Unterstützung:

https://www.herber.de/forum/messages/1929038.html

Da hatte Luisa schon mal grundsätzlich wegen ihres Problems nachgefragt.
Da sie aber auch im 1. Beitrag eher sparsam mit - brauchbaren - Bsp-Dateien war, hatte ich sie um diese gebeten.

Nach Erhalt konnte ich dann zumindest für einen großen Teil helfen - aber dann leider nicht mehr die Folgefragen beantworten, weil ich nich wusste, ob der Beitrag schon im Archiv verschwindet, bevor ich mit weiteren Ideen fertig bin.

Daher empfahl ich ihr, a) neuen Beitrag zu schreiben, b) sowohl fast fertige Excel-, wie auch Word-Datei per Upload zu zeigen.
Leider hat Luisa b) nich berücksichtigt, so dass du (oder andere Helfer) fast wieder bei 0 anfangen musst...was ich mit b) eigtl verhindern wollte

Na ja, vllt hilft dir ja mein Hinweis mit Link auf ersten Beitrag.

Ciao
Thorsten


Anzeige
AW: Zeilen in Word löschen
04.05.2023 11:22:55
ReginaR
Moin Thorsten,
danke für den Hinweis ... Komme heutekaum dazu, mir das anzusehen ... Falls es morgen noch offen ist, schaue ich mir das mal intensiver an.

Gruß Regina


AW: Zeilen in Word löschen
04.05.2023 12:45:30
ReginaR
.... guter Witz :-)))

Haben in einer Kommunialwahl in Schleswig-Holstein und da misch eich in "meinem" Dorf mit. Hinlegen ist da eher nicht angesagt.

VG aus Ellerhoop

Regina


AW: Zeilen in Word löschen
04.05.2023 13:53:53
Oberschlumpf
Ellerhoop?

hehe, schöne Grüße zurück aus dem ca 30 km entfernten Hambuuurchhhh :-))

...UND ICH bin genau extra deswegen Techniker geworden, weil ich Kaufmann UND Politiker nich kann und auch nich will! :-)...


AW: Zeilen in Word löschen
04.05.2023 21:12:04
Luisa
Regina kann sich hier alle Zeit der Welt lassen, sie hat mir ja auch schon super geholfen. :)

7 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige