Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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
2 Spalten vergleichen
03.07.2020 10:57:58
René
Hallo Excel Profis
Ich möchte 2 Spalten miteinander vergleichen und doppelte Zellen in einer Spalte Löschen und zwar nicht die ganze Zeile sondern nur die Zelle.
Beispiel: Spalte A mit Spalte C vergleichen, doppelte Werte in Zelle A5 löschen. Kann man das mit einem Makro lösen? Ich möchte ein Makro weil sich die Daten zum Vergleichen immer wieder ändern.
Kann mir da jemand helfen?
Gruss René

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Spalten vergleichen
03.07.2020 11:09:42
Werner
Hallo,
können kann man viel. Aber nur wenn man die nötigen Infos hat.
Wann ist für dich ein Zellinhalt doppelt?
-wenn irgendwo in Spalte A ein Wert ist, der auch irgendwo in Spalte C ist?
-oder nur wenn der gleiche Wert in Spalte A in der gleichen Zeile wie in Spalte C vorkommt?
Von wievielen Daten sprechen wir denn (Zeilen) sprechen wir denn in etwa?
Am besten mal eine kleine Beispielmappe mit Beispieldaten hier hochladen.
Gruß Werner
AW: 2 Spalten vergleichen
03.07.2020 11:26:49
René
Hallo Werner
Erstmal Danke für die Hilfe!
Hier eine Beispiel Liste: https://www.herber.de/bbs/user/138749.xlsx
Ja ich möchte (- wenn irgendwo in Spalte A ein Wert ist, der auch irgendwo in Spalte C ist?). Wir reden von ca. 40-50 Zeilen.
Hoffe das hilft dir!
Gruss René
Anzeige
AW: 2 Spalten vergleichen
03.07.2020 12:16:37
Werner
Hallo,
so?
Public Sub aaa()
Dim i As Long, raDelete As Range
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
If WorksheetFunction.CountIf(.Columns("C"), .Cells(i, "A")) > 0 Then
If raDelete Is Nothing Then
Set raDelete = .Cells(i, "A")
Else
Set raDelete = Union(raDelete, .Cells(i, "A"))
End If
End If
Next i
If Not raDelete Is Nothing Then
raDelete.Delete shift:=xlUp
End If
End With
Set raDelete = Nothing
End Sub
Gruß Werner
AW: 2 Spalten vergleichen
03.07.2020 13:44:51
René
Erstmal super, klappt!
Ich habe aber noch ein Überlegungsfehler gemacht. Die Daten in Spalte A UND B sind irgendwo in Spalte C UND D identisch. Kann man das nun so erweitern, dass beides in Spalte A+B gelöscht wird?
Gruss René
Anzeige
AW: 2 Spalten vergleichen
03.07.2020 19:58:54
Werner
Hallo,
machbar ist vieles. Deine Beispielmappe hat keine Daten in Spalte B.
Es macht keinen Sinn hier eine Beispielmappe einzustellen, die in ihrem Aufbau von deinem Original abweicht.
Also bitte eine neue Beispielmappe die in ihrem Aufbau exakt deinem Original entspricht.
Gruß Werner
AW: 2 Spalten vergleichen
04.07.2020 16:08:23
René
Hallo Werner
Also die Aufgabe ist eigentlich, von Tabelle 1 die Spalten A5 bis ca. A35 und B5 bis ca. B35 in Tabelle 2 ab Spalte A2 und ab Spalte B2 die Zellen zu kopieren. Danach in Tabelle 2 wenn irgendwo in Spalte A und B ein Wert ist, der auch irgendwo in Spalte C und D ist diese vergleichen und dann in Spalte A+B löschen, so wie du das Makro ja schon gemacht hast, einfach erweitert mit 2 Spalten. Die Lösung kann ein oder auch 2 Makros sein. Hier eine Beispielmappe: https://www.herber.de/bbs/user/138772.xlsx
Vielen Dank für die Hilfe!
Gruss René
Anzeige
AW: 2 Spalten vergleichen
04.07.2020 17:57:49
Werner
Hallo,
dann teste mal.
https://www.herber.de/bbs/user/138776.xlsm
1. Die Spalten A und B in Tabelle2 werden geleert
2. Tabelle1 A2:B bis letzte belegte Zeiel werden in Tabelle2 A1 kopiert
3. Tabelle2 Spalten A:B werden mit Spalte C:D verglichen und bei Vorkommen in C:D wird A:B gelöscht.
Gruß Werner
AW: 2 Spalten vergleichen
06.07.2020 09:14:45
René
Hallo Werner
Funktioniert schon sehr gut.
Einzig Punkt 2. Tabelle1 A2:B bis letzte belegte Zeile werden in Tabelle2 A1 kopiert
könnte man das noch anpassen dass nicht bis letzte belegte Zeile kopiert wird sondern nur bis Zeile A30:B30?
Gruss René
Anzeige
AW: 2 Spalten vergleichen
06.07.2020 09:21:22
Werner
Hallo,
dann das hier:
With Worksheets("Tabelle1")
.Range("A4:B" & .Cells(.Rows.Count, "A").End(xlUp).Row).Copy _
Worksheets("Tabelle2").Range("A1")
End With

durch das hier:
With Worksheets("Tabelle1")
.Range("A4:B30").Copy _
Worksheets("Tabelle2").Range("A1")
End With

ersetzen.
Gruß Werner
AW: 2 Spalten vergleichen
06.07.2020 10:12:33
René
Super, funktioniert nun einwandfrei! Habe noch in Tabelle 1 Schrift 14pt und Tabelle 2 Schrift 10pt. aber das kriege ich sicher noch hin!
VIELEN DANK!
AW: 2 Spalten vergleichen
06.07.2020 10:25:11
Werner
Hallo,
falls du nochmal rein schaust. Hier der Code nochmal.
Hatte da am Anfang noch Application.CutCopyMode = False, das sollte eigentlich Application.ScreenUpdating = Fals sein.
Jetzt auch mit Änderung der Schriftgröße in Tabelle2 auf 10.
Option Explicit
Public Sub aaa()
Dim i As Long, loLetzte As Long, loLetzte1 As Long
Dim loSpalte As Long, raDelete As Range
Application.ScreenUpdating = False
With Worksheets("Tabelle2")
.Columns("A:B").ClearContents
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Row
loLetzte1 = .Cells(.Rows.Count, "C").End(xlUp).Row
loSpalte = .Cells(4, .Columns.Count).End(xlToLeft).Offset(, 1).Column
If loLetzte1 > loLetzte Then loLetzte = loLetzte1
With Worksheets("Tabelle1")
.Range("A4:B30").Copy Worksheets("Tabelle2").Range("A1")
End With
With .Range(.Cells(2, loSpalte), .Cells(loLetzte, loSpalte))
.FormulaLocal = "=$A2&$B2"
.Value = .Value
End With
With .Range(.Cells(2, loSpalte + 1), .Cells(loLetzte, loSpalte + 1))
.FormulaLocal = "=$C2&$D2"
.Value = .Value
End With
For i = 2 To loLetzte
If WorksheetFunction.CountIf(.Columns(loSpalte + 1), .Cells(i, loSpalte)) > 0 Then
If raDelete Is Nothing Then
Set raDelete = .Cells(i, "A").Resize(, 2)
Else
Set raDelete = Union(raDelete, .Cells(i, "A").Resize(, 2))
End If
End If
Next i
If Not raDelete Is Nothing Then
raDelete.Delete shift:=xlUp
End If
.Range(.Cells(1, loSpalte), .Cells(1, loSpalte + 1)).EntireColumn.ClearContents
.Columns("A:B").Font.Size = 10
End With
Set raDelete = Nothing
End Sub
Gruß Werner
Anzeige
AW: 2 Spalten vergleichen
06.07.2020 11:48:31
René
Danke Werner, unglaublich toll und vielen Dank nochmal!
Gruss René
Gerne u. Danke für die Rückmeldung. o.w.T.
06.07.2020 11:50:12
Werner
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
07.07.2020 15:15:51
René
Lieber Werner
Vielleicht kannst du mir noch einmal helfen bei dem VBA welches du geschrieben hast. Ich möchte gerne die Arbeitsmappe "Freigeben", dann kommt aber eine Fehlermeldung: Laufzeitfehler 1004, dieser Befehl ist bei freigegebenen Dateien nicht verfügbar.
Gibt es da eine Lösung?
Gruss René
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
08.07.2020 07:19:11
Werner
Hallo,
wahrscheinlich wohl eher nicht. Bei freigegebenen Mappen ist so manches per VBA nicht möglich/zulässig.
Macht bei manchem ja auch Sinn. Stell dir mal vor, zwei Nutzer haben die freigegebene Mappe offen und einer davon löscht dann per Makro ein Tabellenblatt, das vom zweiten Nutzer bearbeitet/geändert wurde.
Kannst ja mal nach freigegebene Arbeitsmappe und Makros googeln.
Gruß Werner
Anzeige
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
09.07.2020 13:38:15
René
Hallo Werner
Ja Danke werde ich machen, habe ich schon vermutet und mach wie du schreibst auch keinen Sinn.
Danke und Gruss
René

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige