Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1040to1044
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

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


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

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
Anzeige
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige