Abfrage bestimmter Zellen auf Inhalt

Bild

Betrifft: Abfrage bestimmter Zellen auf Inhalt
von: Chak
Geschrieben am: 22.11.2015 15:42:55

Hallo,
leider kann ich in meinem alten Beitrag nicht weiter schreiben, deswegen muss ich einen neuen Beitrag öffnen.
Ich habe eine Tabelle in Excel:
A3:A12 = Text
B3:A12 = Datum
C3:A12 = Datum
E3:E12 = Zahl
F3:F12 = Zahl
G3:G12 = Zahl
Folgender Code kopiert mir den Inhalt der jeweiligen Ranges in eine Word Tabelle.
Set Bereich = Worksheets("Tabelle1").Range("C3:C12")
For Each Zelle In Bereich
If Zelle.Text <> "" Then
TextSpeicher = TextSpeicher & Zelle.Text & Chr(10)
End If
Next

appWord.ActiveDocument.Tables(1).Cell(5, 3).Select
appWord.Selection.Text = TextSpeicher

TextSpeicher = ""
Jetzt habe ich das Wochenende vergeblich versucht diesen Code um folgendes zu erweitern:
Eine Abfrage auf den Inhalt des Textes in Spalte A für jede Zeile.
Bevor der Inhalt von C3 kopiert wird, soll erstmal überprüft werden ob der Text von A3 = "Beispiel" ist. Wenn das der Fall ist sollen etwas mehr Zeilenumbrüche in die Variable geschrieben werden. Bei C4 soll dann bei A4 geprüft werden.
Der Text in A3:A12 ist meistens länger als eine Zeile in der Word Tabelle. Dadurch das ich jede Range unabhängig von einander in die Word Tabelle kopiere, passen sich die anderen Spalten nicht an und es fehlen mir dort Zeilenumbrüche.
Ich muss jetzt nochmal kurz weg, danach werde ich hier noch Beispiel Dateien hochladen.
Danke.
Chak

Bild

Betrifft: AW: Abfrage bestimmter Zellen auf Inhalt
von: Chak
Geschrieben am: 22.11.2015 17:31:48
Hier die Beispiel Datei:
https://www.herber.de/bbs/user/101720.zip
Im Makro muss der Pfad des Word Dokuments angepasst werden.

Bild

Betrifft: gelöst
von: Chak
Geschrieben am: 22.11.2015 19:10:24
Hab es so gelöst:
iRow = 3
Set Bereich = Worksheets("Tabelle1").Range("B3:B12")
For Each Zelle In Bereich
If Zelle.Text <> "" Then
If Worksheets("Tabelle1").Range("A" & iRow) = "Beispiel 2" Then
TextSpeicher = TextSpeicher & Zelle.Text & Chr(10) & Chr(10) & Chr(10) & Chr(10) & Chr(10) & Chr(10)
Else
TextSpeicher = TextSpeicher & Zelle.Text & Chr(10) & Chr(10)
End If
End If
iRow = iRow + 1
Next

appWord.ActiveDocument.Tables(1).Cell(2, 2).Select
appWord.Selection.Text = TextSpeicher

TextSpeicher = ""
Gruß
Chak

Bild

Betrifft: AW: Lösung zwo :-)
von: Gerd L
Geschrieben am: 23.11.2015 20:32:24
Hallo!

For Each Zelle In Worksheets("Tabelle1").Range("B3:B12")
    If Zelle.Text <> "" Then _
    TextSpeicher = TextSpeicher & Zelle.Text & _
    String(2 + (Zelle.Offset(-1) = "Beispiel 2") * 4, Chr(10))
Next
appWord.ActiveDocument.Tables(1).Cell(2, 2).Select
appWord.Selection.Text = TextSpeicher
Gruß Gerd

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Abfrage bestimmter Zellen auf Inhalt"