Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: doppelte Löschen und A:A in Ruhe lassen.

doppelte Löschen und A:A in Ruhe lassen.
18.01.2009 21:55:00
Peter
Hallo
Habe im Archiv volgendes Makro gefunden, das ich einwenig umgestrickt habe.
Habe im Tab nur Daten in A2:C200 ungefähr.
Nun möchte ichdoppelte Werte ausgehend von B3 gelöscht haben, vorher werden sie noch sortiert.
Das funzt auch.
Aber ich habe in A3:A200 laufende Nummern, so =WENN(B4>0;A3+1;"") usw.
Die werden immer zerstört beim auffinden der doppelten.
Wie kann ich es hinbekommen, das A:A nicht angefasst wird.?
Mfg. Peter

Private Sub CommandButton1_Click()
Range("B3:C200").Select
Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Dim i As Integer, j As Integer
For i = 1 To Range("B65536").End(xlUp).Row
For j = Range("B65536").End(xlUp).Row To i + 1 Step -1
If Range("B" & j).Value = Range("B" & i).Value Then Rows(j).Delete
Next
Next
Range("A24").Select
End Sub


Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: doppelte Löschen und A:A in Ruhe lassen.
18.01.2009 22:15:00
Josef
Hallo Peter,
dann lösche halt nicht die gesamte Zeile, sondern nur dei entsprechenden Zellen.


Private Sub CommandButton1_Click()
Range("B3:C200").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Dim i As Integer, j As Integer
For i = 1 To Range("B65536").End(xlUp).Row
For j = Range("B65536").End(xlUp).Row To i + 1 Step -1
If Range("B" & j).Value = Range("B" & i).Value Then Range("B" & j & ":C" & j). _
Delete xlUp
Next
Next
End Sub



Gruß Sepp

Anzeige
AW: doppelte Löschen und A:A in Ruhe lassen.
18.01.2009 22:26:00
Peter
Hallo Sepp,
Danke für die schnelle Antwort.
Geht leider nicht, gleiches Ergebnis, in A wird fast alles zerstört.
Mfg. Peter
AW: doppelte Löschen und A:A in Ruhe lassen.
18.01.2009 22:33:40
Tino
Hallo,
merke die Formel in einer Area und schreibe diese am ende zurück.

Dim meArea
meArea = Range("A3", Cells(Rows.Count, 1).End(xlUp)).FormulaR1C1
'Dein Code
Range("A3", Cells(UBound(meArea) + 2, 1)).FormulaR1C1 = meArea


Gruß Tino

Anzeige
AW: doppelte Löschen und A:A in Ruhe lassen.
18.01.2009 22:43:00
Peter
Hallo Tino
danke für deine Antwort.
Leider bin ich nicht so weit fortgeschritten, dass ich Deine Antwort verstehe.
Wäre nett wenn Du mir das näher bringen könntest, und den Code schnipsel in men Code integrieren könntest.
Gruß Peter
vielleicht so...
18.01.2009 22:56:39
Tino
Hallo,
ich gehe mal davon aus, dass Dein Code soweit funzt.

Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer
Dim meArea
Application.ScreenUpdating = False
meArea = Range("A3", Cells(Rows.Count, 1).End(xlUp)).FormulaR1C1
Range("B3:C200").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
For i = 1 To Range("B65536").End(xlUp).Row
For j = Range("B65536").End(xlUp).Row To i + 1 Step -1
If Range("B" & j).Value = Range("B" & i).Value Then Rows(j).Delete
Next
Next
Range("A3", Cells(UBound(meArea) + 2, 1)).FormulaR1C1 = meArea
Application.ScreenUpdating = True
End Sub


Gruß Tino

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige