Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1756to1760
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 zu einer verbinden o. doppe

Zwei Spalten zu einer verbinden o. doppe
05.05.2020 13:54:09
Steve
Hallo Leute,
ich möchte Spalte A und Spalte C untereinander in Spalte E darstellen und das ohne doppelte.
Präziser: Ich möchte die Ranges ("N_N1") und ("N_N2") ohne doppelte in der Tabelle ("T_N3") darstellen
Spalte A in E kopieren bekomme ich wohl noch hin. Aber dann hört es leider schon auf. Ich habe einen, leider fehlgeschlagenen, Versuch bisher.
Mein bisheriger Versuch:
Sub Makro1()
Dim lngZeile As Long
Dim N3 As Range
Set N3 = Range("N_N3")
Range("T_N1[Name]").Copy
Range("E2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("T_N2[Name]").Copy
lngZeile = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row + 1
Range(lngZeile, 5).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Wie man allerdings die doppelten rausfiltert weiss ich überhaupt nicht. Ich habe einen Code im Netz gefunden. Aber bei dem müssen beide Teiltabellen in Spalte A liegen. Ich befreife ihn leider nicht genug um ihn für meine Zwecke anzupassen.
Der gefundene Code:
Sub beispiel()
Dim lngCounter As Long
Dim lngRow As Long
Dim bytColumn As Byte
Application.ScreenUpdating = False
For bytColumn = 1 To 2
For lngCounter = 1 To Cells(Rows.Count, bytColumn).End(xlUp).Row
If WorksheetFunction.CountIf(Range("C:C"), Cells(lngCounter, bytColumn)) = 0 Then
lngRow = lngRow + 1
Cells(lngRow, 3).Value = Cells(lngCounter, bytColumn).Value
End If
Next
Next bytColumn
Application.ScreenUpdating = True
End Sub
Kann mir jemand Bitte bei einer Lösung helfen?
Liebe Grüße
Steve

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwei Spalten zu einer verbinden o. doppe
05.05.2020 15:03:01
Werner
Hallo,
deine Zielspalte markieren - Daten - Duplikate entfernen (je nachdem ob Überschriften oder nicht entsprechend auswählen) ok und fertig.
Das kannst du auch mit dem Makrorekorder aufzeichnen und in dein Kopiermakro einbauen.
Gruß Werner
Funktioniert nicht richtig.
07.05.2020 12:18:55
Steve
Moin Werner,
Danke für dein Tipp. Daran habe ich gar nicht gedacht. Das habe ich umgesetzt.
Trotzdem funktioniert meine Lösung nicht richtig. Ich erhalte (spätestens nach dem zweiten Lauf des Makros) eine Leerzeile zwischen den beiden Tabellen. Zudem wird dann mit jedem weiteren Durchlauf die Liste erweitert ohne das Daten bei der Quelle hinzugefügt werden.
Kannst du mir Bitte sagen wo mein Fehler liegt?
Sub TEST()
Dim lz As Long, ez As String
lz = ActiveSheet.Cells(Rows.Count, 5).End(xlUp).Row + 1
ez = ActiveSheet.Range("T_E").Address
'MsgBox "Beschriebener Bereich:" & ez
'MsgBox "erste leere Zeile:" & lz
On Error Resume Next 'für den Fall das die erste Zeile noch leer ist.
Range(ez).Delete
Range("N_Q1").Copy
Range(ez).PasteSpecial
Application.CutCopyMode = False
Range("N_Q2").Copy Destination:=Range("T_E").End(xlUp).Offset(lz - 1, 0)
Application.CutCopyMode = False
Range("T_E").Select
ActiveSheet.Range("T_E[#Alle]").RemoveDuplicates Columns:=1, Header:=xlYes
Range("A1").Select
End Sub
Die drei Tabellen habe ich mit Namen versehen, damit ich sie später überall hin verschieben kann.
Leider bekomme ich den Wert lz nicht so flexibel hin. Ich müsste eigentlich die letzte leere Zeile unter der Tabelle (T_E) oder dem Range(N_E) erhalten. Aber wenn ich das versuche umzuschreiben funktioniert es nicht. Kannst du mir dazu einen Tipp geben?
vielen Dank für deine Hilfe und Tipps.
Die Datei habe ich mal angefügt: https:\/\/www.herber.de/bbs/user/137343.xlsm
Liebe Grüße
Steve
Anzeige
AW: Funktioniert nicht richtig.
08.05.2020 08:29:44
Steve
Moin Werner,
ich danke dir für deine Hilfe.
Nun kann ich alle Tabellen frei verschieben und dem Layout entsprechend anpassen.
Eine Verständnisfrage: Wenn ich eine dritte Quelltabelle hinzufügen möchte, dann muss ich doch nur den folgenden Bereich - natürlich mit angepasstem Quellrange - hinzufügen oder?
loLetzteZ = .Range("T_E").Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, _
searchdirection:=xlPrevious).Offset(1).Row
.Range("T_Q2").Copy
.Cells(loLetzteZ, .Range("T_E").Column).PasteSpecial Paste:=xlPasteValues
Das folgende verstehe ich bisher nur in Teilen. Wäre es möglich mir die Zeilen eben zu erklären?
loLetzteZ = .Range("T_E").Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, _
searchdirection:=xlPrevious).Offset(1).Row
Finde hierzu keine gute Erklärung. Habe die Zeilen zerlegt und mir das eine oder andere angelesen.
Eine gute Erklärung zum Lesen reicht mir auch.
PS.: Ich möchte mich ganz doll bedanken für deine Hilfe immer. Ich versuche meistens alles alleine zu machen, aber das Feld ist extrem umfangreich und meine Ideen wachsen schneller als meine Kenntnisse.
Herzlichst
Steve
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige