Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Verketten2 (Zusammenfassen) im größeren Stil
#1
Guten Tag Zusammen,

bräuchte euch bitte mal zur Hilfe.

Ich habe ca.30 Listen mit Zeilentiefen von je über 250.000.
(wenn es nur eine Liste wäre, würde ich sie wahrscheinlich manuell machen.)

Mein Ziel ist, die Daten aus Spalte D (bitte vgl. Beispieldatei anbei) in Spalte E - in der ersten Zelle des Datensatzes zusammenzufassen.

Aktuell nutze ich den nachfolgenden Code (herzlichen Dank nochmal an dieser Stelle!) bereits seit 2 Jahren.
Nur muss ich dazu die Verketten2 - Zeilen, welche ich möchte manuell begrenzen; sprich in meinem Fall: E1=verketten2(D1: D8,"") - das funktioniert wie gesagt auch.
Code:
Function Verketten2(ByRef bereich As Range, Trennzeichen As String) As String
Dim rng As Range

  For Each rng In bereich
     If rng <> "" Then
     Verketten2 = Verketten2 & rng & Trennzeichen
     End If
  Next

If Len(Verketten2) > 0 Then _
Verketten2 = Left(Verketten2, Len(Verketten2) - Len(Trennzeichen))

End Function

Nur jetzt wo ich immensen Datenfluten gegenüberstehe die Frage, kann mir bitte jemand den VBA-Code so abändern, dass das "automatisch" funktioniert?

Ich habe auch eine VBA gefunden, welche bis zur nächsten leeren zelle verkettet. Hier stehe ich nur dem Problem gegenüber, dass ich dazu eine Leerzelle benötige, die ja als "Stopper" fungiert - ich habe nur leider keine Option gefunden, diese "auf Masse" überall nach jedem Datensatz einzufügen, und dann sollte wenn möglich der Rechner dabei auch nicht abrauchen.

Ist die Option aus excel2016 (nutze noch 2013) bereits die Lösung? Dann kaufe ich mir das einfach sche
Code:
=TEXTVERKETTEN(Trennzeichen; Leere ignorieren; Text1; Text2....)


Sieht da jemand eine Option?

Danke vorab für jede Hilfe
derOlli


Angehängte Dateien
.xlsx   Beispiel-Liste Forum.xlsx (Größe: 10,1 KB / Downloads: 12)
Antworten Top
#2
Hallo Olli,

Zitat:bitte vgl. Beispieldatei anbei

sehe ich nicht.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Sorry - jetzt
Antworten Top
#4
Hallo derOlli,

ich denke, dass ist mit einem kleinen Makro lösbar aber habe noch einige Fragen:

1. Sind alle Listen gleich aufgebaut?

2. Woran erkennt man genau in welcher und bis welcher Zeile die Zusammenfassung erfolgen soll.

3. Sollen auf Anforderung in die entsprechenden Zellen die Formeln oder direkt die Texte eingetragen werden (einfacher)?

4. Woran erkenne ich die unterschiedluchen Listbereiche?

5. Sollen alle Listen gleichzeitig aktualisiert werden?
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • derOlli
Antworten Top
#5
@Olli

wenn in SpalteC bis auf die Variablennamen immer Leerzellen sind


Zitat:Sub Phi()
For Each ar In ActiveSheet.UsedRange.Columns(3).SpecialCells(4).Areas
    Cells(ar.Cells(1).Offset(-1).Row, "F") = Join(Application.Transpose(Range(ar.Cells(1).Offset(-1, 1), ar.Cells(ar.Count).Offset(, 1))), ", ")
Next ar
End Sub
Antworten Top
#6
Guten Morgen Zusammen,

vielen Dank für eure Rückmeldungen.
Entschuldigt - war gestern bereits aus dem Büro und zu Hause wird umgebaut - kein Internet.

@Ego:

1. Sind alle Listen gleich aufgebaut?
Die Listen sind alle gleich, nur die Datentiefe, also auch die unterschiedlichen Datensätze welche zusammen müssen sind immer unterschiedlich lang.

2. Woran erkennt man genau in welcher und bis welcher Zeile die Zusammenfassung erfolgen soll.
Die Zusammenfassung soll quasi so lange stattfinden in Spalte D bis (Spalte D) der neue Datensatz losgeht.
In der Datei anbei farbig markiert, in "echt" ohne Farbe. Der Indikator dann wäre, dass in den Spalten A-C nichts steht.
Also der erste Datensatz ginge in der Beispielliste von Zeile 1-einschließlich 8, der nächste von 9 - einschl. 21 etc.

3. Sollen auf Anforderung in die entsprechenden Zellen die Formeln oder direkt die Texte eingetragen werden (einfacher)?
Ähh - what? Big Grin Hatte noch keinen Kaffee bis jetzt Big Grin
Also in Spalte E in diesem Beispiel sollte dann der Inhalt aus D1 + D2 + D3 +D4 + D5 + D6 + D7 + D8 stehen.
Meintest Du das so? Also ob dort erst eine Formel steht, oder gleich das Ergebnis ist eigentlich egal.

4. Woran erkenne ich die unterschiedluchen Listbereiche?
Wenn der neue Datensatz anfängt, hört der andere auf - also quasi wie in 2 beschrieben.

5. Sollen alle Listen gleichzeitig aktualisiert werden?
Nein das muss es auf keinenfall. Glaube auch, das macht der Rechner nicht mit.
Wenn ich weiß wie ich eine einfach gestalten kann, dann mach ich das natürlich bei den anderen selbst.

Besten Dank für Deine Mühen!
Antworten Top
#7
Phi.VBA:

Auch Dir besten Dank für Deine Hilfe.
Das füge ich wahrscheinlich wieder unter ALT+F11 --> Module ein?
Sorry, aber: wie aktiviere ich es? Rufe es ab? (schäm)

Besten Dank
derOlli
Antworten Top
#8
Und, ohne es übertreiben zu wollen und etwas am Thema vorbei:

Gibt es eine Möglichkeit (wenn ich nicht Ersteller der Liste bin und die Liste / Spalte nicht im richtigen Format abspeichern kann)
ein Datum (z.B. 01.Juni) in 1.6 als Zahl umzuwandeln?

Aktuell arbeite ich mit Ersetzen und füge dann das hinterlegte Datum, da falsch abgespeichert (z.B. 01.06.2018) und lasse es durch '1.6 ersetzen.

Gibt es da eine einfachere Möglichkeit?

Abspeichern und Text, Zahl etc. funktioniert nicht.

Danke und VG
derOlli
Antworten Top
#9
Hallo Olli

stell doch bitte eine beispieldatei mit 20-30 Daten die kritisch sind ins Forum.  Kann es sein das Zellen als Standard statt Datum formatiert sind und dort das Datum als Text drin steht??  Solche Probleme lassen sich m.E. schneller per VBA lösen.  Ich müsste die Daten aber im Original Zellenformat sehen.

mfg  Gast 123
Antworten Top
#10
Hallo Gast123,

habe eine Datei mit beigefügt.
Es handelt sich hier um Motor / Literangaben.
Ein Motor mit 2.2 Liter wird dann zu meinem 02.Januar etc.

Danke Dir.

Edit: die Zeilen, welche nicht als Datum dargestellt wurden sind i.O. - die hat es halt nicht "verpfuschtelt", da sie einen "Beibuchstaben" haben oder eben 2.0 wo es kein Monat 0 gibt.
Ich hab Sie nur drinnen gelassen, sodass Du einen Einblick über den Aufbau der Spalte hast. Danke


Angehängte Dateien
.xlsx   Datumsproblem.xlsx (Größe: 10,35 KB / Downloads: 3)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste