Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Text aus Zellen in andere Zellen vor dessen Text k

Text aus Zellen in andere Zellen vor dessen Text k
25.08.2016 16:27:24
rieckmann
Hallo liebe Excel Profis,
ich habe eine lange Datenliste.
Nun möchte ich den Text in den Zellen von Spalte "O" vor den Text in Spalte "M" mit abschließenden Komma kopieren.
Die Überschriften in Zeile 1 sollen nicht berücksichtigt werden.
Hätte da jemand eine Lösung ?
Wie ich schon erwähnte, es ist sind ca. 3000 Zeilen.
Gruß
Fred
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Text aus Zellen in andere Zellen vor dessen Text k
25.08.2016 17:28:29
Michael
Hallo Fred!
Hätte da jemand eine Lösung ?
Naja sicher, denn grds. ist das ja selbst manuell ein Klacks:
1. Verkette in einer Hilfspalte die Werte aus O:O und M:M mit dem gewünschten Trennzeichen (Funktion VERKETTEN(...;...;...) oder auch nur mit "&")
2. Kopiere die Werte der Hilfspalte und füge sie als Werte in Spalte O:O ein
3. Lösche die Hilfsspalte
Wenn das nicht das ist was Du suchst, musst Du präziser werden. Bzw. falls Du diesen Vorgang als Makro brauchst.
es ist sind ca. 3000 Zeilen.
Das kann kein Problem sein bei dem Vorgang.
LG
Michael
Anzeige
AW: Text aus Zellen in andere Zellen vor dessen Text k
25.08.2016 17:42:05
rieckmann
Hallo Michael,
besser wäre eine VBA-Lösung, da es sich um mehrere Tabellenblätter mit so vielen Datensätzen handelt.
(Evt. noch eine Auswahl für welches Tabellenblatt es so angewendet werden soll.
Ist aber nicht so wichtig !)
Eine Hilfsspalte könnte ab Spalte "AA" genommen werden.
Hier einmal eine BeispielMappe
https://www.herber.de/bbs/user/107839.xls
Gruß
Fred
Anzeige
Okay, schaue ich mir morgen an, melde mich! owT
25.08.2016 19:28:49
Michael
Teste mal...
26.08.2016 10:06:09
Michael
Hallo Fred,
...folgenden Code:
Sub a()
Const TRENNER As String = ", "
Dim Wb As Workbook
Dim Ws As Worksheet
Dim Sp1, Sp2, i&
Set Wb = ThisWorkbook
Set Ws = Wb.Worksheets(1)
With Ws
Sp1 = Application.Transpose(.Range("M2:M" & _
.Cells(.Rows.Count, 13).End(xlUp).Row))
Sp2 = Application.Transpose(.Range("O2:O" & _
.Cells(.Rows.Count, 15).End(xlUp).Row))
For i = LBound(Sp1) To UBound(Sp1)
Sp1(i) = Sp2(i) & TRENNER & Sp1(i)
Next i
.Range("M2:M" & .Cells(.Rows.Count, 13).End(xlUp).Row) = _
Application.Transpose(Sp1)
End With
Erase Sp1
Erase Sp2
Set Wb = Nothing
Set Ws = Nothing
End Sub
Dieser muss in ein allgemeines Modul, und wirkt in der jeweiligen Mappe auf dem ersten Tabellenblatt; ggf. musst Du diese Zeile entsprechend anpassen für ein anderes Blatt

Set Ws = Wb.Worksheets(1)
Set Ws = Wb.Worksheets(2)
Set Ws = Wb.Worksheets(3)
usw. usf.
Die Zellwerte aus M2:Mx werden jetzt aus den Zellwerten von O2:Ox, einem Trenner (hier Komma + Leerzeichen) und den Zellwerten von M2:Mx gebildet. Hab's jetzt gleich mit Arrays gemacht, ohne Hilfsspalte und Formeln.
LG
Michael
Anzeige
Oder noch besser...
26.08.2016 10:14:28
Michael
Hi Fred,
...mein obiger Code funktioniert, aber noch schlanker ist diese Variante (spart ein Array, ich bin noch müde ;-) ):
Sub b()
Const TRENNER As String = ", "
Dim Wb As Workbook
Dim Ws As Worksheet
Dim Sp1, i&
Set Wb = ThisWorkbook
Set Ws = Wb.Worksheets(1)
With Ws
Sp1 = .Range("M2:O" & .Cells(.Rows.Count, 15).End(xlUp).Row)
Debug.Print LBound(Sp1), UBound(Sp1)
For i = LBound(Sp1) To UBound(Sp1)
Sp1(i, 1) = Sp1(i, 3) & TRENNER & Sp1(i, 1)
Next i
.Range("M2:O" & .Cells(.Rows.Count, 15).End(xlUp).Row) = Sp1
End With
Erase Sp1
Set Wb = Nothing
Set Ws = Nothing
End Sub
LG
Michael
Anzeige
AW: Oder noch besser...
26.08.2016 12:43:25
rieckmann
Hallo Michael,
Hut ab, das klappt sehr gut.
Vielen Dank für deine Mühe.
Du hast mir eine Menge Arbeit erspart.
Ich wünsche dir noch einen schönen Tag
Gruß
Fred
Immer gern, schönes Wochenende! owT
26.08.2016 12:54:13
Michael
AW: Text aus Zellen in andere Zellen vor dessen Text k
25.08.2016 17:28:38
Michael
Hallo Fred!
Hätte da jemand eine Lösung ?
Naja sicher, denn grds. ist das ja selbst manuell ein Klacks:
1. Verkette in einer Hilfspalte die Werte aus O:O und M:M mit dem gewünschten Trennzeichen (Funktion VERKETTEN(...;...;...) oder auch nur mit "&")
2. Kopiere die Werte der Hilfspalte und füge sie als Werte in Spalte O:O ein
3. Lösche die Hilfsspalte
Wenn das nicht das ist was Du suchst, musst Du präziser werden. Bzw. falls Du diesen Vorgang als Makro brauchst.
es ist sind ca. 3000 Zeilen.
Das kann kein Problem sein bei dem Vorgang.
LG
Michael
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige