Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1576to1580
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

zwei Spalten zusammenführen per VBA?

zwei Spalten zusammenführen per VBA?
30.08.2017 17:02:23
snewi
Hallo,
ich habe eine Tabelle 1 wo es in Spalte C einen Text gibt und in E ein Text steht! Ich möchte jetzt in Tabelle 2 eine Zusammenführung in Spalte G haben! Der Veranstalter soll dab als neue Zeile unter den Text aus Description angefügt werden!
Könnt ihr mir helfen?
https://www.herber.de/bbs/user/115896.xlsx
Gruss

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zwei Spalten zusammenführen per VBA?
30.08.2017 17:19:16
Dieter(Drummer)
Hallo Snewi,
das geht auch ohne VBA, mit Formel in Tabelle2, siehe Datei: https://www.herber.de/bbs/user/115897.xlsx
Gruß, Dieter(Drummer)
AW: zwei Spalten zusammenführen per VBA?
30.08.2017 17:30:26
snewi
ok danke! Würdet ihr mir trotzdem ma den Weg über VBA zeigen! Habe noch mehrere Spalten die ich so immoment kopiere und würde das dann in einem Zuge machen!

Sub Copy_Subject()
Sheets("TAbelle1").Select
Columns("A:A").Select
Selection.Copy
Sheets("Tabelle2").Select
Columns("A:A").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False,  _
Transpose:=False
Application.CutCopyMode = False
Columns("A:A").EntireColumn.AutoFit
Range("A1").Select
End Sub
Danke
Anzeige
AW: zwei Spalten zusammenführen per VBA?
30.08.2017 18:03:26
Robert
Hallo,
folgendes Makro müsste Deinen Wunsch erfüllen
Sub Zusammen()
Dim cl As Range, wks1 As Object, wks2 As Object
Set wks1 = Sheets("Tabelle1")
Set wks2 = Sheets("Tabelle2")
For Each cl In wks1.Range("C1:C" & wks1.Range("C1").End(xlDown).Row).Cells
wks2.Range("G" & cl.Row) = cl & Chr(10) & cl.Offset(0, 2)
Next
End Sub

Gruß
Robert
AW: zwei Spalten zusammenführen per VBA?
30.08.2017 18:28:10
snewi
So ist es perfekt Danke!!
Frage: Brauche ja aus wks1 die Spalten C und E! Schaust du mit dem Code auf C bis zur letzten befüllten?
KAnn man das auch fix für beiden Spalten lösen, damit nicht wenn in der Tabelle was dazukommt ein Fehler passiert?
Gruss
Anzeige
AW: zwei Spalten zusammenführen per VBA?
31.08.2017 15:08:32
Robert
Hallo,
richtig. Das Makro durchsucht den Bereich der Spalte C bis zur letzten befüllten Zelle, sofern keine Lücken vorhanden sind. Wenn man in der ersten Zeile der For-Schleife den Teil"wks1.Range("C1").End(xlDown).Row" durch "wks1.Usedrange.Rows.Count" ersetzt, wird die Zeilen-Nr. der letzten befüllten Zelle (egal in welcher Spalte) genommen.
Gruß
Robert
AW: zwei Spalten zusammenführen per VBA?
30.08.2017 18:03:40
snewi
ich habe nochmal geschaut und finde die Variante mit der Formel doch ganz cool! HAbe dann immer ein aktuelles Abbild! Danke reicht mir so!
eine Frage bleibt noch: Wenn ich beim zweiten Datensatz immer das Veranstalter davor weglassen möchte was muss ich in der Formel ändern?
Gruss
Anzeige
AW: zwei Spalten zusammenführen per VBA?
30.08.2017 18:37:32
Dieter(Drummer)
Hallo Snewi,
hatte in der Formel den Zeilenumbruch nicht integriert. Formel müsste so lauten:
In Tabelle2, G2: "=Tabelle1!C2& ZEICHEN(10)&Tabelle1!E2"
Dann runterkopieren fertig.
Menüpunkt "Zeilenumbruch" muss aktiviert sein.
Zu deiner zweiten Frage, da können dir Formelspezialisten helfen. Da es immer der gleiche Text ist,
der nicht mit rein soll, kann man diesen in der Formel auch raus lassen. Da muss ein Formelspezialist ran.
Gruß, Dieter(Drummer)
AW: zwei Spalten zusammenführen per VBA?
30.08.2017 18:49:25
snewi
Danke spitze!
AW: Danke für Rückmeldung und Gruß. owT
30.08.2017 18:56:54
Dieter(Drummer)
AW: zwei Spalten zusammenführen per VBA?
31.08.2017 09:30:04
Dieter(Drummer)
Hallo Snewi,
die Formel hat mir keine Ruhe gelassen, um das Wort "Veranstalter auch noch raus zu lassen.
Hier die Formel für G2, Tabelle2:
  • =Tabelle1!C2&ZEICHEN(10)&TEIL(Tabelle1!E2;SUCHEN(":";Tabelle1!E2)+2;LÄNGE(Tabelle1!E2))

  • So wird der Inhalt von Tabelle1, E2, ohne das Wort "Veranstalter" eingefügt und der Teil hinter dem Doppelpunkt ist auch da.
    Evtl. kann man die Formel kürzen, aber das ist etwas für Formelspezialisten.
    Gruß, Dieter(Drummer)
    Anzeige
    AW: zwei Spalten zusammenführen per VBA?
    01.09.2017 14:01:18
    snewi
    Danke Hammer!!!
    AW: Gerne und danke für Rückmeldung. owT
    01.09.2017 14:36:36
    Dieter(Drummer)
    AW: zwei Spalten zusammenführen per VBA?
    30.08.2017 18:05:16
    Piet
    Hallo
    nur Anfaenger programmieren über Select, zu 95% kann man darauf verzichten. s.unten.
    Man kann beim Kopieren den Zielbereich direkt dahinter schreiben. Funktioniert wie Paste!!
    Der Vorteil, diese kurzeste Schreibweise benötigt kein!! - Application.CutCopyMode = False
    Ansonsten bitte angewöhnen die Tabelle und den Bereich mit Copy direkt zusammenschreiben.
    Vor allem hat man keinen flackernden Bildschirm mehr, der jedes Blatt neu aufbauen muss!!
    Ob Tabelle2 noch selektiert werden muss weiss ich nicht? Sonst den Befehl einfach löschen!!
    mfg Piet
    Sub Copy_Subject()
    'so wenn man Spalte A in Tabelle 2 mit Paste einfügen will - (kürzeste Schreibweise)
    Sheets("TAbelle1").Columns("A:A").Copy Sheets("Tabelle2").Columns("A:A")
    'so wenn man nur Werte (ohne Formate) Tabelle 2 kopieren will - (über PastSpecial)
    Sheets("TAbelle1").Columns("A:A").Copy
    Sheets("Tabelle2").Columns("A:A").PasteSpecial xlPasteValues
    Sheets("Tabelle2").Columns("A:A").EntireColumn.AutoFit
    Application.CutCopyMode = False
    Sheets("Tabelle2").Select
    Range("A1").Select
    End Sub
    

    Anzeige
    AW: zwei Spalten zusammenführen per VBA?
    31.08.2017 23:26:37
    snewi
    Hi, es komt immer ein Fehler bei:
    
    Sub Datum_aufschlüsseln_2()
    Dim AC As Range, z, lz As Long, ok
    Dim Tb2 As Worksheet   'Tabelle2
    Set Tb2 = Worksheets("Veranstaltungen_CSV")
    lz = Tb2.Cells(Rows.Count, 2).End(xlUp).Row
    Tb2.Range("B2:F" & lz + 2) = Empty
    With Worksheets("Veranstaltungen")
    lz = .Range("B2").End(xlDown).Row
    z = 2  '1. Zeile in Liste
    'Schleife zum Datum/Uhrzeit auswerten
    For Each AC In .Range("B2:B" & lz)
    SZeit = Empty: EZeit = Empty
    'Datum ohne Uhrzeit ignorieren!!
    If Len(AC) Tb2.Cells(z, 4) = CDate(Ende)  --Typen unverträglich
    Tb2.Cells(z, 6) = "'True"
    'dann "nachmittag" auswerten
    ElseIf InStr(AC, "nachmittag") Then
    Start = Left(Trim(AC), 10)
    Tb2.Cells(z, 2) = CDate(Start)
    Tb2.Cells(z, 3) = Format(NMT, "hh:mm")
    
    LG
    Anzeige
    AW: zwei Spalten zusammenführen per VBA?
    01.09.2017 00:21:08
    Piet
    Hallo snewi
    anbei ein Code den ich um: "On Error Goto Fehler" erweitert habe. Er markiert in beiden Tabellen in welcher Zeile ein Fehler auftritt. Dort muss man das Datumformat prüfen, ob die Schreibweise mimimal anders ist. So können wir den Fehler wenigstens einkreisen, ggf. die Auswertung aendern.
    mfg Piet
    Sub Datum_aufschlüsseln_2()
    Dim AC As Range, z, lz As Long, ok
    Dim Tb2 As Worksheet   'Tabelle2
    Set Tb2 = Worksheets("Tabelle2")
    lz = Tb2.Cells(Rows.Count, 2).End(xlUp).Row
    Tb2.Range("B2:F" & lz + 2) = Empty
    With Worksheets("Tabelle1")
    lz = .Range("B1").End(xlDown).Row
    z = 2  '1. Zeile in Liste
    On Error GoTo Fehler
    'Schleife zum Dtum/Uhrzeit auswerten
    For Each AC In .Range("B1:B" & lz)
    SZeit = Empty: EZeit = Empty
    'Datum ohne Uhrzeit ignorieren!!
    If Len(AC) 

    Anzeige
    AW: zwei Spalten zusammenführen per VBA?
    01.09.2017 13:57:25
    snewi
    Hi, hatte doch schon geschrieben wo er hängen bleibt fett markiert:
    
    Tb2.Cells(z, 4) = CDate(Ende)  --Typen unverträglich
    

    AW: zwei Spalten zusammenführen per VBA?
    01.09.2017 14:29:50
    snewi
    Es funktioniert wenn ich diese Zeile einfach auskommentiere! Aber warum?
    LG

    300 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige