Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1600to1604
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

Verketten von Zellen bis nächste freie

Verketten von Zellen bis nächste freie
11.01.2018 14:15:48
Zellen
Hallo zusammen,
ich hatte die Frage und auch eine Lösung vor einigen Jahren hierzu erhalten.
Finde sie jedoch nicht mehr. Also hoffe ich erneut das mir jemand eine Lösung anbieten kann.
Ich habe eine Zelle A1 mit einer Materialnummer und ein Zelle B1 bis B4 mit Text.
Nun möchte ich den Text der Zellen in Spalte B verketten bis die nächste Materialnummer die in Spalte A erscheint. Die Anzahl der Textfelder ist in B unterschiedlich. Zur Verdeutlichung habe ich eine Beispieldatei hochgeladen.
https://www.herber.de/bbs/user/118877.xlsx
Ich hoffe man versteht was ich möchte. Das Zielergbnis soll dann in Zelle C1 erscheinen bzw. in der Zeilennummer wo die nächste Materialnummer in Spalte A steht.
Ich hoffe auf eine Rückmeldung und bedanke mich schonmal für Euren Input.
Gruß
KraemJo

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vielleicht hast Du ja die 2016er Version ...
11.01.2018 14:22:02
...
Hallo,
... dann kannst Du dazu dazu jetzt die Funktion TEXTVERKETTEN() nutzen.
Gruß Werner
.. , - ...
AW: Verketten von Zellen bis nächste freie
11.01.2018 15:03:20
Zellen
Hallo
per VBA
in ein Modul
Sub Verketten()
    Dim TB, i As Double, Letzte As Double, RNG As Range
    Dim SP As Integer, ZE As Integer, LR As Double
    
    Application.ScreenUpdating = False
    
    '*** Stammdaten Anfang 
    Set TB = ActiveSheet
    SP = 2 'Spalte B 
    ZE = 3 'ab Zeile 
    '*** Stammdaten Ende 
    
    LR = TB.Cells(TB.Rows.Count, SP).End(xlUp).Row 'letzte Zeile in B 
    
    Letzte = LR
    For i = LR To ZE Step -1
        If TB.Cells(i, SP).Offset(0, -1) <> "" Then
            Set RNG = TB.Range(TB.Cells(i, SP), TB.Cells(Letzte, SP)) 'Bereich 
            TB.Cells(i, SP).Offset(0, 1) = Join(WorksheetFunction.Transpose(RNG), vbLf)
            Letzte = i - 1
        End If
    Next
    
End Sub


LG UweD
Anzeige
AW: Verketten von Zellen bis nächste freie
11.01.2018 17:54:36
Zellen
Hallo Uwe,
vielen Dank für die schnelle Antwort. Es funktioniert auch, bis auf ein kleines Problem.
Es gibt auch Zeilen die haben nur ein Textfeld in Spalte B und da erhalte ich momentan Laufzeitfehler '13' Typen unverträglich. Hast Du da auch ein Lösung?
Wenn ich eine Leerzeile einfüge funktioniert das ganze und das Script läuft weiter.
Es sind aber ca. 45.000 Zeilen
AW: Verketten von Zellen bis nächste freie
11.01.2018 18:53:12
Zellen
Hallo
Hast du mal eine musterdatei mit einigen wenigen Daten?
Lg UweD
Quatsch...
11.01.2018 18:56:28
UweD
Hab was verwechselt.
Datei hab ich ja schon.
Sehe ich mir morgen an.
AW: Quatsch...
12.01.2018 08:30:41
UweD
Sub Verketten()
    Dim TB, i As Double, Letzte As Double, RNG As Range
    Dim SP As Integer, ZE As Integer, LR As Double
    
    Application.ScreenUpdating = False
    
    '*** Stammdaten Anfang 
    Set TB = ActiveSheet
    SP = 2 'Spalte B 
    ZE = 3 'ab Zeile 
    '*** Stammdaten Ende 
    
    LR = TB.Cells(TB.Rows.Count, SP).End(xlUp).Row 'letzte Zeile in B 
    
    Letzte = LR
    For i = LR To ZE Step -1
        If TB.Cells(i, SP).Offset(0, -1) <> "" Then
            Set RNG = TB.Range(TB.Cells(i, SP), TB.Cells(Letzte, SP)) 'Bereich 
            If i = Letzte Then
                TB.Cells(i, SP).Offset(0, 1) = RNG
            Else
                TB.Cells(i, SP).Offset(0, 1) = Join(WorksheetFunction.Transpose(RNG), vbLf)
            End If
            Letzte = i - 1
        End If
    Next

LG UweD
Anzeige
AW: Verketten von Zellen bis nächste freie
11.01.2018 21:14:49
Zellen
HI
am einfachsten und schnellsten so (Formeln passend für deine Beispieldatei):
1. in die Zelle D3 diese Formel: =B3&WENN(A4="";ZEICHEN(10)&D4;"")
2. in die Zelle C3 diese Formel: =WENN(A3="";"";D3)
3. beide Formeln bis zum Tabellenende runterziehen
4. Spalte C kopieren und an gleicher Stelle als Wert einfügen
5. Spalte D wieder löschen
wenn man es als Makro braucht, einfach diese Schritte per Makro ausführen lassen.
Wenn Spalte D belegt ist, nimmt man einfach die erste freie Spalte am Tabellenende.
Gruß Daniel

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige