Supportnet / Forum / Tabellenkalkulation
Doppelte Zahlen löschen
Frage
Ich muss in einer Tabelle 2 Spalten vergleichen und die Zahlen die doppelt sind komplett löschen das heisst :
[code]
A B
231 356
233 231
[/code]
dann soll am ende nur noch die zahl 356 und 233 stehen.
Ich habe zwar bereits mehrere Lösungen gefunden die aber die doppelte Zahl nur einmal löschen.
Antwort 1 von Saarbauer
Hallo,
Versuchs mal damit
Sub Einzeltabellen()
letzteZeile_A = Range("A65536").End(xlUp).Row
letzteZeile_B = Range("A65536").End(xlUp).Row
For i = 1 To letzteZeile_A
For j = 1 To letzteZeile_B
If Range("A" & i).Value = Range("B" & j).Value Then
Range("A" & i).Select
Selection.Delete Shift:=xlUp
Range("B" & j).Select
Selection.Delete Shift:=xlUp
End If
Next j
Next i
End Sub
Gruß
Helmut
Versuchs mal damit
Sub Einzeltabellen()
letzteZeile_A = Range("A65536").End(xlUp).Row
letzteZeile_B = Range("A65536").End(xlUp).Row
For i = 1 To letzteZeile_A
For j = 1 To letzteZeile_B
If Range("A" & i).Value = Range("B" & j).Value Then
Range("A" & i).Select
Selection.Delete Shift:=xlUp
Range("B" & j).Select
Selection.Delete Shift:=xlUp
End If
Next j
Next i
End Sub
Gruß
Helmut
Antwort 2 von Saarbauer
Hallo,
gerade aufgefallen, kleine Ergänzung
Sub Einzeltabellen()
letzteZeile_A = Range("A65536").End(xlUp).Row
letzteZeile_B = Range("A65536").End(xlUp).Row
For i = 1 To letzteZeile_A
For j = 1 To letzteZeile_B
If Range("A" & i).Value = Range("B" & j).Value Then
Range("A" & i).Select
Selection.Delete Shift:=xlUp
Range("B" & j).Select
Selection.Delete Shift:=xlUp
i=i-1
j= j-1
End If
Next j
Next i
End Sub
Gruß
Helmut
gerade aufgefallen, kleine Ergänzung
Sub Einzeltabellen()
letzteZeile_A = Range("A65536").End(xlUp).Row
letzteZeile_B = Range("A65536").End(xlUp).Row
For i = 1 To letzteZeile_A
For j = 1 To letzteZeile_B
If Range("A" & i).Value = Range("B" & j).Value Then
Range("A" & i).Select
Selection.Delete Shift:=xlUp
Range("B" & j).Select
Selection.Delete Shift:=xlUp
i=i-1
j= j-1
End If
Next j
Next i
End Sub
Gruß
Helmut
Antwort 3 von nighty
hi all :)
wie gewünscht :)
gruss nighty
Option Explicit
Sub such()
Dim suche1 As Range
Dim zaehler1 As Long
zaehler1 = 1
Do
zaehler1 = zaehler1 + 1
Set suche1 = Sheets(1).Range("A2" & ":B" & Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row).Find(Sheets(1).Range("A" & zaehler1), LookIn:=xlValues)
If Not suche1 Is Nothing Then
Sheets(1).Cells(suche1.Row, suche1.Column).Clear
Sheets(1).Cells(zaehler1, 1).Clear
zaehler1 = zaehler1 + 1
Else
zaehler1 = zaehler1 + 1
End If
Loop Until zaehler1 = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
End Sub
wie gewünscht :)
gruss nighty
Option Explicit
Sub such()
Dim suche1 As Range
Dim zaehler1 As Long
zaehler1 = 1
Do
zaehler1 = zaehler1 + 1
Set suche1 = Sheets(1).Range("A2" & ":B" & Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row).Find(Sheets(1).Range("A" & zaehler1), LookIn:=xlValues)
If Not suche1 Is Nothing Then
Sheets(1).Cells(suche1.Row, suche1.Column).Clear
Sheets(1).Cells(zaehler1, 1).Clear
zaehler1 = zaehler1 + 1
Else
zaehler1 = zaehler1 + 1
End If
Loop Until zaehler1 = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
End Sub
Antwort 4 von nighty
hi all :)
mit der findmethode laesst sich einiges bewerkstelligen,vermeidung einer geschachtelten schleife :))
gruss nighty
mit der findmethode laesst sich einiges bewerkstelligen,vermeidung einer geschachtelten schleife :))
gruss nighty

