AW: Text aus mehreren Tabellenblättern auslesen
04.10.2014 10:35:38
fcs
Hallo Walter,
mit Standard-Excel-Funktionen funktioniert es meines Wissens nicht, sondern nur mit wenigen Funktionen wie SUMME.
Mit einer benutzerdefinierten VBA-Funktion geht es. Ansonsten muss man mit der Funktion VERKETTEN arbeiten - ggf. mit Hilfberechnungen, um die Länge der Formeln übersichtlich zu halten.
Gruß
Franz
'Code in einem allgemeinen Modul der Datei
Public Function fncText_Verketten(rngZellbereich1 As Range, _
rngZellbereich2 As Range, _
Optional strTrennZelle As String = ";", _
Optional strTrennBlatt As String = vbLf) As String
'Verkettet den Text eines Zellbereiches über mehrere Tabellenblätter
'rngZellbereich1 = Zellbreich im 1. Tabellenblatt
'rngZellbereich2 = Zellbreich im letzten Tabellenblatts
'strTrennZelle = Trenntext, der zwischen den Zelleinhalten eines Blattes eingefügt wird
'strTrennBlatt = Trenntext, der zwischen den Blättern eingefügt wird
'ausgewertet wird in allen Blättern der mit dem 1. Tabellenblatt angegebene Zellbereich
'Formelbeispiel: =fncText_Verketten(Tabelle1!C45:D45;Tabelle4!C45:D45;";";ZEICHEN(10))
Application.Volatile
Dim TabIndex As Integer, strErgebnis As String, rngZelle As Range, strZellen As String
Dim strZellbereich As String
strZellbereich = rngZellbereich1.Address
For TabIndex = rngZellbereich1.Parent.Index To rngZellbereich2.Parent.Index
strZellen = ""
For Each rngZelle In ThisWorkbook.Worksheets(TabIndex).Range(strZellbereich).Cells
If strZellen = "" Then
strZellen = rngZelle.Text
ElseIf rngZelle.Text "" Then
strZellen = strZellen & strTrennZelle & rngZelle.Text
End If
Next
If strErgebnis = "" Then
strErgebnis = strZellen
ElseIf strZellen "" Then
strErgebnis = strErgebnis & strTrennBlatt & strZellen
End If
Next
fncText_Verketten = strErgebnis
End Function
Beispieldatei: https://www.herber.de/bbs/user/92960.xlsm