Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Doppelte Werte löschen
#1
Question 
Hallo zusammen,

einfache doppelte Werte anhand einer Spalte kann ich schon löschen. Ich benötige jetzt nur noch eine weitere Bedingung.
Aufbau der Tabelle. AuftragsNr/Status/Datum
Er soll jetzt, wenn Auftragsnummer gleich und der Status "erledigt" bei beiden ist, die Duplikate löschen. Alle anderen nicht.

Sub Loesche_DZeilen()
Dim temp
Dim i%, n%, ZSpalte%
Dim Zeilenzahl As Long
ZSpalte = 4 'F wird gezählt
   Zeilenzahl = Sheets(1).Cells(Rows.Count, ZSpalte).End(xlUp).Row
   For n = 2 To Zeilenzahl
       temp = Sheets(1).Cells(n, ZSpalte).Value
           For i = n To Zeilenzahl
               m = Sheets(1).Cells(i + 1, ZSpalte).Value
               Do While Sheets(1).Cells(i + 1, ZSpalte).Value = temp
                   Sheets(1).Cells(i + 1, ZSpalte).EntireRow.Delete
                   Zeilenzahl = Zeilenzahl - 1
               Loop
           Next i
   Next n
End Sub

Danke für eure Unterstützung
Antworten Top
#2
Hallöchen,

wenn Diene Tabelle nur 3 Spalten hat frage ich mich, warum Du in Deinem Makro die Spalte 4 verwendest Smile

Ansonsten im Prinzip so, Wenn Stautus in Spalte B (= 2) steht:
Do While Sheets(1).Cells(i + 1, ZSpalte).Value = temp and Sheets(1).Cells(i + 1, 2).Value = "erledigt"
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Hallöchen,

meine Do - Codezeile ersetzt Deine Do - Codezeile.
Wenn Dien Code bisher mit einer Bedingung funktioniert hat, sollte es auch damit ohne Fehler gehen.


Allerdings wäre das Ergebnis wohl nicht ganz 100%ig.
Der Code löscht z.B. bei mehrfachen Auftragsnummern die erledigte auch wenn es zuvor eine ohne erledigt gibt.
Ist anders herum die erste erledigt und die zweite nicht, bleiben beide stehen. Da müsste man noch nachbessern.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste