Supportnet / Forum / Tabellenkalkulation
zwei Spalten in Excel vergleichen
Frage
Habe in Spalte A etaw 500 Materialnummer z.B 36685555 und in Splate B die selbe Anzahl von Materialnummern diese beiden Splaten möchte ich gerne vergleichen das dann in Spalte C nur die angezeigt werden die in A und B gleich sind
Antwort 1 von JoeKe
Hallo,
versuch es mal mit folgenden VBA-Code:
Sub Doppelte()
Dim loZeile As Long, Doppelte As Variant, loLetzte As Long
Columns(3).ClearContents
loLetzte = Cells.SpecialCells(xlCellTypeLastCell).Row
For loZeile = 1 To loLetzte
Doppelte = Application.WorksheetFunction.CountIf(Range(Cells(1, 1), _
Cells(loLetzte, 2)), Cells(loZeile, 1))
If Doppelte > 1 Then
Cells(loZeile, 1).Copy Destination:=Cells(Rows.Count, 3).End(xlUp).Offset(1, 0)
End If
Next
End Sub
MfG
JöKe
versuch es mal mit folgenden VBA-Code:
Sub Doppelte()
Dim loZeile As Long, Doppelte As Variant, loLetzte As Long
Columns(3).ClearContents
loLetzte = Cells.SpecialCells(xlCellTypeLastCell).Row
For loZeile = 1 To loLetzte
Doppelte = Application.WorksheetFunction.CountIf(Range(Cells(1, 1), _
Cells(loLetzte, 2)), Cells(loZeile, 1))
If Doppelte > 1 Then
Cells(loZeile, 1).Copy Destination:=Cells(Rows.Count, 3).End(xlUp).Offset(1, 0)
End If
Next
End Sub
MfG
JöKe
Antwort 2 von jensen
hi,
kopier doch alle Nummern in eine Spalte und über
Daten - Filter - Spezialfilter - keine Duplikate
lösche Duplikate raus.
Gruss
Jens
kopier doch alle Nummern in eine Spalte und über
Daten - Filter - Spezialfilter - keine Duplikate
lösche Duplikate raus.
Gruss
Jens
Antwort 3 von Disco-STU-GT
@ JöKe: hast du den VBA-Code selber geschrieben oder hast du ein Makro gemacht, oder wie?
Danke
MfG
Disco-STU
Danke
MfG
Disco-STU
Antwort 4 von JoeKe
@Disco-STU
verstehe deine Frage zwar nicht.
Aber das ist von mir geschrieben.
Gruß
JöKe
verstehe deine Frage zwar nicht.
Aber das ist von mir geschrieben.
Gruß
JöKe
Antwort 5 von Disco-STU-GT
Nett, meine Codes sehen nie so kompleziert aus, aber naja ich hätte es auch mit der "Wennfunktion" gemacht.
Antwort 6 von JoeKe
@ Disco-STU
das freut mich für dich.
Steht dir auch frei einen weniger komplizierten Code zu posten.
das freut mich für dich.
Steht dir auch frei einen weniger komplizierten Code zu posten.
Antwort 7 von Disco-STU-GT
So hätte ich das gemacht:
(bitte korigiere mich wenn ich einen Fehler gemacht habe)
option explicit
Sub Doppelte()
dim zeile as integer
zeile = 1
do until cells(zeile,1).value = ""
if cells(zeile,1).value = cells(zeile,2).value then
cells(zeile,3).value = cells(zeile,1).value
loop
msgbox "Vergleich abgeschlossen!"
habs nicht asprobiert also kann gut sein, das noch ein Fehler drin ist.
MfG
Disco-STU
(bitte korigiere mich wenn ich einen Fehler gemacht habe)
option explicit
Sub Doppelte()
dim zeile as integer
zeile = 1
do until cells(zeile,1).value = ""
if cells(zeile,1).value = cells(zeile,2).value then
cells(zeile,3).value = cells(zeile,1).value
loop
msgbox "Vergleich abgeschlossen!"
habs nicht asprobiert also kann gut sein, das noch ein Fehler drin ist.
MfG
Disco-STU
Antwort 8 von Disco-STU-GT
hab das end sub vergessen, sry ;)
Antwort 9 von JoeKe
Sieht gut aus.
Aber es fehlt ein End If.
Es muss gewährleistet sein, dass die doppelten Einträge in der selben Zeile sind
Die Zeile muss um 1 erhöht werden.
Zeilen sollten als Long deklariert werden. Integer für -32.768 bis 32,767, Long für -2.147.483.648 bis 2.147.483.647. Da (außer bei Office 2007) die Zeilen bis 65536 gehen bist du mit Integer schnell aus dem Rennen.
Gruß
Aber es fehlt ein End If.
Es muss gewährleistet sein, dass die doppelten Einträge in der selben Zeile sind
Zitat:
if cells(zeile,1).value = cells(zeile,2).value
if cells(zeile,1).value = cells(zeile,2).value
Die Zeile muss um 1 erhöht werden.
Zitat:
zeile = 1
zeile = 1
Zeilen sollten als Long deklariert werden. Integer für -32.768 bis 32,767, Long für -2.147.483.648 bis 2.147.483.647. Da (außer bei Office 2007) die Zeilen bis 65536 gehen bist du mit Integer schnell aus dem Rennen.
Gruß
Antwort 10 von Disco-STU-GT
Danke für die Info über die Variablen.
das end if, zeile = zeile +1 und das end sub habe ich vergessen. War in dem moment aber auch erst 15 min wach, sry.
MfG
Disco-STU
das end if, zeile = zeile +1 und das end sub habe ich vergessen. War in dem moment aber auch erst 15 min wach, sry.
MfG
Disco-STU
Antwort 11 von raanchlo
Kein schleckter Vorschlag aber die Dublikate sollen nicht gelöscht werden sondern wenn möglich in Spalte C angezeigt werden.
Sorry aber die ander Vorschläge verstehe ich nicht weil ich ein absoluter Anfänger in Excel bin.
Sorry aber die ander Vorschläge verstehe ich nicht weil ich ein absoluter Anfänger in Excel bin.
Antwort 12 von JoeKe
Hallo,
bei den anderen Vorschlägen handelt es sich um VBA Lösungen.
Um sie in deine Mappe zubekommen gehst du wie folgt vor:
Um das Makro zu starten bindest du am besten eine Schaltfläche ein. Öffne dafür die Symbolleiste "Formular". Dort wählst du die Schaltfläche mit einem links klick aus. Jetzt kannst du auf deinem Blatt die Schaltfläche zeichnen. Wenn du die Schaltfläche erstellt hast öffnet sich automatisch die Aufstellung deiner Makros, bei dir wahrscheinlich nur "Doppelte", das du dann mit einem doppel-links-klick auswählst. Nun brauchst du nur noch auf irgendeine Zelle auf deinem Blatt klicken und kannst anschliessend die Schaltfläche nutzen. Bei einem klick auf die Schaltfläche werden dann die Spalte A und B auf doppelte Einträge überprüft und die gefundenen in Spalte C aufgelistet.
Ich hoffe du kommst mit der Beschreibung zurecht. Bei Fragen nochmal melden.
Gruß
JöKe
bei den anderen Vorschlägen handelt es sich um VBA Lösungen.
Um sie in deine Mappe zubekommen gehst du wie folgt vor:
- Mit Alt+F11 in die VBA-Umgebung wechseln.
Falls auf der linken Seite nicht der Projektexplorer (Überschrift:Projekt - VBAProject) zu sehen ist, diesen mit Strg+r einblenden.
Im Projektexplorer klickst du mir rechts auf: VBAProjekt("Der Name deiner Mappe") und wählst nacheinander "Einfügen" - "Modul".
In das sich darauf öffnende Codefenster (rechts) kopierst du oben stehenden Code.
Abschliessend die VBA-Umgebung mit Alt+q verlassen
Um das Makro zu starten bindest du am besten eine Schaltfläche ein. Öffne dafür die Symbolleiste "Formular". Dort wählst du die Schaltfläche mit einem links klick aus. Jetzt kannst du auf deinem Blatt die Schaltfläche zeichnen. Wenn du die Schaltfläche erstellt hast öffnet sich automatisch die Aufstellung deiner Makros, bei dir wahrscheinlich nur "Doppelte", das du dann mit einem doppel-links-klick auswählst. Nun brauchst du nur noch auf irgendeine Zelle auf deinem Blatt klicken und kannst anschliessend die Schaltfläche nutzen. Bei einem klick auf die Schaltfläche werden dann die Spalte A und B auf doppelte Einträge überprüft und die gefundenen in Spalte C aufgelistet.
Ich hoffe du kommst mit der Beschreibung zurecht. Bei Fragen nochmal melden.
Gruß
JöKe