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

Forumthread: Duplikate aus Tabelle entfernen

Duplikate aus Tabelle entfernen
14.02.2016 07:56:28
Christian
Hallo an euch alle,
ich hoffe ihr habt bei folgender Tabelle eine Lösung.
https://www.herber.de/bbs/user/103531.xlsx
Es geht mir darum, dass Stadt A als Start angesehen werden soll und die Städte in H - K als Ziele, die von dieser Stadt aus zu erreichen sind.
Es geht mir darum Verbindungen, die mehrfach vorkommen zu löschen.
die erste Verbindung ist z.B. Aachen nach Maastricht (A1;H1)
diese Verbindung kommt auch in umgekehrter Fahrtrichtung von Maastricht nach Aachen vor, (A183; I183). In diesem Fall soll "Aachen" aus der Zelle I183 gelöscht werden.
die zweite Verbindung ist z.B. Aachen nach Bonn (A1;I1)
In der Tabelle gibt es keine Verbindung von Bonn nach Aachen, also soll hier nichts geschehen.
die dritte Verbindung ist z.B. Aachen nach Lüttich (A1;J1)
In der Tabelle gibt es auch keine Verbindung von Lüttich nach Aachen, also soll auch hier nichts geschehen.
die vierte Verbindung ist z.B. Aachen nach Köln (A1;K1)
diese Verbindung kommt auch in umgekehrter Fahrtrichtung von Köln nach Aachen vor, (A155; J155). In diesem Fall soll "Aachen" aus der Zelle J155 gelöscht werden.
Hoffe das war genug an Beispielen, also wenn eine Verbindung in beiden Fahrtrichtungen in der Tabelle steht, soll sie das erste mal erhalten bleiben und die zweite Verbindung soll gelöscht werden.
Hat da jemand eine Lösung?
Viele Grüße und vielen Dank
Christian

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Duplikate aus Tabelle entfernen
14.02.2016 08:55:50
Sepp
Hallo Christian,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub removeDuplikates()
Dim varA As Variant, varB As Variant, varRet As Variant
Dim lngLast As Long, lngR As Long, lngC As Long, lngI As Long

With Tabelle1 'Sheets("Tabelle1") 'Activesheet
  lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row
  varA = Range("A1:A" & lngLast)
  varB = Range("H1:K" & lngLast)
  
  For lngR = 1 To UBound(varB, 1)
    For lngC = 1 To UBound(varB, 2)
      varRet = Application.Match(varB(lngR, lngC), varA, 0)
      If IsNumeric(varRet) Then
        For lngI = 1 To UBound(varB, 2)
          If varB(varRet, lngI) = varA(lngR, 1) Then varB(varRet, lngI) = ""
        Next
      End If
    Next
  Next
  .Range("H1").Resize(UBound(varB, 1), UBound(varB, 2)) = varB
End With

End Sub

Gruß Sepp

Anzeige
AW: Duplikate aus Tabelle entfernen
14.02.2016 09:10:05
Christian
Hallo Sepp,
danke für die Mühe, das klappt soweit.
Dürfte ich dich noch eine kleine Sache fragen? Warum ein allgemeines Modul und nicht in Tabelle1?
Gruß und schönes Wochenende
Christian

AW: Duplikate aus Tabelle entfernen
14.02.2016 10:04:44
Sepp
Hallo Christian,
natürlich kannst du den Code auch in das Modul der Tabelle stellen.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Sub removeDuplikates()
Dim varA As Variant, varB As Variant, varRet As Variant
Dim lngLast As Long, lngR As Long, lngC As Long, lngI As Long

With Me
  lngLast = .Cells(.Rows.Count, 1).End(xlUp).Row
  varA = .Range("A1:A" & lngLast)
  varB = .Range("H1:K" & lngLast)
  
  For lngR = 1 To UBound(varB, 1)
    For lngC = 1 To UBound(varB, 2)
      varRet = Application.Match(varB(lngR, lngC), varA, 0)
      If IsNumeric(varRet) Then
        For lngI = 1 To UBound(varB, 2)
          If varB(varRet, lngI) = varA(lngR, 1) Then varB(varRet, lngI) = ""
        Next
      End If
    Next
  Next
  .Range("H1").Resize(UBound(varB, 1), UBound(varB, 2)) = varB
End With

End Sub

Bei meinem ersten Code fehlen noch zwei Punkte (.) jeweils vor Range!
Gruß Sepp

Anzeige
AW: Duplikate aus Tabelle entfernen
14.02.2016 20:21:36
Christian
danke für den Hinweis
Christian
;

Forumthreads zu verwandten Themen

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