Microsoft Excel

Herbers Excel/VBA-Archiv

Text aus mehreren Tabellenblättern auslesen

Betrifft: Text aus mehreren Tabellenblättern auslesen von: Walter
Geschrieben am: 02.10.2014 14:31:30

Hallo Experten,
ich stehe gerade bei einer Auswertung an:

das erste TabBlatt beinhaltet die Zusammenfassung der restlichen TabBlätter.
Zahlen auslesen bringe ich zustande. Jetzt möchte ich aber in der Zelle C45 den Text aller TabBlätter (jeweils Zelle C45) stehen haben (jeder Eintrag in einer neuen Zeile.

Wenn das möglich ist, bitte ich um Hilfe

Herzlichen DANK!

mfg
Walter

  

Betrifft: AW: Text aus mehreren Tabellenblättern auslesen von: fcs
Geschrieben am: 02.10.2014 16:58:53

Hallo Walter,

man könnte so etwas versuchen mit der Funktion INDIREKT zu lösen.

Zeile	Spalte B	Spalte C
44	Tab-Name	Wert C45
45	Tabelle1	=INDIREKT("'"&B45&"'!C45")
46	Tabelle2	=INDIREKT("'"&B46&"'!C45")
Gruß
Franz


  

Betrifft: AW: Text aus mehreren Tabellenblättern auslesen von: Walter
Geschrieben am: 03.10.2014 09:25:45

Hallo Franz,
danke für die Info.
Das war nicht ganz das, was ich wollte. Ich habe mich wahrscheinlich nicht gut ausgedrückt.

Ich möchte in Zelle C45 des ersten Arbeitsblattes alle Textwerte der Zellen C45 der restlichen Arbeitsblätter stehen haben.

Genial wäre, wenn die Textwerte aller Arbeitsblätter - egal wie viele - eingefügt würden (das erste und letzte Tabellenblatt haben eine fixe Bezeichnung; mit Zahlen funktioniert das

Danke und LG Walter


  

Betrifft: AW: Text aus mehreren Tabellenblättern auslesen von: fcs
Geschrieben am: 04.10.2014 10:35:38

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


  

Betrifft: AW: Text aus mehreren Tabellenblättern auslesen von: Walter
Geschrieben am: 06.10.2014 08:47:02

Vielen DANK,
die Lösung von Boris hat mir weitergeholfen, die kann ich realisieren.

DANKE!

Walter


  

Betrifft: AW: Text aus mehreren Tabellenblättern auslesen von: {Boris}
Geschrieben am: 03.10.2014 17:35:01

Hi Walter,

der Vorschlag von fcs war schon richtig. Alternativ kannst Du das auch so lösen:

Vergib den Namen x mit Bezug auf:

=ARBEITSMAPPE.ZUORDNEN(1+0*JETZT())

Dann in C45 Deines Übersichtsblattes (dies sollte übrigens in der Anordnung alle Blätter das ERSTE sein) folgende Formel:

=WENN(SPALTEN($A:B)>ANZAHL2(x);"";INDIREKT("'"&INDEX(x;SPALTEN($A:B))&"'!C45"))

und nach rechts kopieren.

VG, Boris


  

Betrifft: AW: Text aus mehreren Tabellenblättern auslesen von: Walter
Geschrieben am: 06.10.2014 08:45:50

Herzlichen DANK,
damit komme ich super zurecht.

Walter


 

Beiträge aus den Excel-Beispielen zum Thema "Text aus mehreren Tabellenblättern auslesen"