1.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallöschen lieber Helfer!

Bin zwar recht fit in Excel, aber in VBA fehlt mir die Kenntnis. Mein Problem:

Ich habe eine Tabelle mit 4100 Datensätzen, erstellt aus zwei getrennten Tabellen. Die eine Tabelle (mit 1120 Datensätzen) hat Kundenadressen mit Ansprechpartner, die andere (restliche Datensätze) ohne Ansprechpartner. Nun möchte ich in der großen Tabelle alle Duplikate löschen. Bedingung ist, dass nur die Zeile gelöscht wird, in der kein Ansprechpartner ist.

Ziel ist, eine Tabelle mit allen Adressen zu haben, aus der dann auch ersichtlich ist, wo uns noch die Ansprechpartner fehlen.

Hier die Deklaration der Spalten:
A Gebiet
B Außendienstler
C Kundenname
D Straße
E PLZ
F Ort
G Kategorie
H Land
I Anrede
J Vorname
K Nachname

Verglichen werden sollen die Angaben in Spalte C. Gelöscht wird dann das Duplikat, wo die Spalten I, J und K leer sind.

Kann mir da einer helfen???? Hab zwar schon nach Makros gegooglet, aber so wirklich nichts passendes gefunden. Und wegen der fehlenden VBA-Kenntnis kann ich es leider auch nicht abändern.

Dank euch schon mal von tiefsten Herzen!!!!!!!!!!

GLG
Mona1980

4 Antworten

0 Punkte
Beantwortet von saarbauer Profi (15.6k Punkte)
Hallo,

sind die Daten sortiert?
Wenn ja wie?
Wenn nein, wäre eine Sortierung möglich?

Könntest du eine Beispieltabelle zur verfügung stellen

Gruß

Helmut
0 Punkte
Beantwortet von
Hallo Helmut,

die Daten sind so eigentlich nicht sortiert (höchstens manuell durch mich) können es aber gerne.

Eine Beispieltabelle ist ein bisserl schwierig...in der Not manuell aber möglich. Weiß nur nicht, wie ich die dann zur Verfügung stellen kann.

Lieben Gruß
Mona1980
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all

eine variante :-)

gruss nighty

Tabelle1 wird mit tabelle2 verglichen und tabelle1 gegebenenfalls ergaenzt

Option Explicit
Sub Abgleich()
Dim zaehler1 As Long, zaehler2 As Long, zeile As Long, zaehler4 As Long
Dim zaehler3 As Integer
Dim schalter As Boolean
Worksheets(1).Activate
zeile = Cells(Rows.Count, 3).End(xlUp).Row * 2
ReDim wks1(zeile, 11) As Variant
ReDim wks2(zeile, 11) As Variant
wks1() = Range("A1:K" & zeile)
Worksheets(2).Activate
wks2() = Range("A1:K" & zeile)
For zaehler1 = 1 To zeile - 1
For zaehler2 = 1 To zeile - 1
If wks2(zaehler1, 3) = wks1(zaehler2, 3) Then
schalter = True
For zaehler3 = 1 To 11
If wks1(zaehler1, zaehler3) = "" Then
wks1(zaehler2, zaehler3) = wks2(zaehler1, zaehler3)
End If
Next zaehler3
End If
Next zaehler2
If schalter = False Then
zaehler4 = zaehler4 + 1
For zaehler3 = 1 To 11
wks1(zeile / 2 + zaehler4, zaehler3) = wks2(zaehler1, zaehler3)
Next zaehler3
End If
schalter = False
Next zaehler1
Worksheets(1).Activate
Range("A1:K" & zeile) = wks1()
End Sub
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all

war erst mal auf die schnelle :-)

keine fehlerabfrage auf zeilenende
keine abfrage der tabelle1 auf doppelte bzw mehrfache

erstmal fragesteller abwarten :-))

gruss nighty
...