Hallo Dietmar,
kopiere Deine Adressliste. Zum Testen sowieso immer Kopie verwenden. Mit Alt + F11 auf Entwicklungsumgebung.
Unter Symbol- und Menüleiste links oben ist der Projekt-Explorer. Hier klickst Du Deine Excel-Kopie an. Menü Einfügen // Modul ergänzt eine Mappe Module 1. Die doppelklicken. Dann rechts (großes Fenster) diesen Text reinkopieren:
Option Explicit
’
Sub ZuSammen()
’ Variablen deklarieren
Dim Name1 As String, Adresse1 As String, Name2 As String
Dim Adresse2 As String, Zeile1 As Long, Zeile2 As Long
Dim MinZeile As Long, MaxZeile As Long, SpalteName As Integer
Dim SpalteAdresse As Integer, SpalteVorName As Integer
Dim VorName As String
’ Variablen initialisieren
VorName = „Familie“ 'Ersatztext bei einem Treffer
SpalteVorName = 1 'Spalte A (Vorname)
SpalteName = 2 'Spalte B (Nachname)
SpalteAdresse = 3 'Spalte C (Adresse)
MinZeile = 2 'Zeile 1 nicht prüfen
MaxZeile = ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count
'Ende bei letzter belegter Zeile
’ Alles hier in der aktuellen Datei auf dem aktuellen Blatt
With ActiveWorkbook.ActiveSheet
’ äussere Schleife für 1. Zeile (Basis für Vergleich)
Application.ScreenUpdating = False 'Ergebnis erst mal nicht darstellen
For Zeile1 = MinZeile To MaxZeile 'wiederhole von Min bis Max
Name1 = Cells(Zeile1, SpalteName).Value 'Nachname und
Adresse1 = Cells(Zeile1, SpalteAdresse).Value 'Adresse Zeile1
Zeile2 = Zeile1 + 1 'eine Zeile weiter zum Vergleichen
For Zeile2 = Zeile2 To MaxZeile 'alle folgenden Vergleichen
Name2 = Cells(Zeile2, SpalteName).Value 'Nachname und
Adresse2 = Cells(Zeile2, SpalteAdresse).Value ’ Adresse Zeile2
If Name1 = Name2 Then 'erste Abfrage (Name)
If Adresse1 = Adresse2 Then 'zweite Abfrage (Adresse)
Rows(Zeile2).Delete 'bei Treffer zweite Zeile löschen
Cells(Zeile1, SpalteVorName).Value = VorName 'ändern
MaxZeile = MaxZeile - 1 'weil Zeile gelöscht
Zeile2 = Zeile2 - 1 'ebenso
End If 'Ende zweite
End If 'Ende erste Abfrage
Next 'zur nächsten Zeile Vergleich
Next 'zur nächsten Zeile Basis
Application.ScreenUpdating = True 'jetzt darstellen
End With 'Ende mit diesem Blatt, dieser Datei
End Sub 'Ende des Makros
Dann mit Alt + F11 zurück zu Excel. Evtl. Speichern. Jetzt mit Alt + F8 Makros aufrufen. Unter „Makros in:“ ggf. „Diese Arbeitsmappe“ auswählen. Jetzt links „ZuSammen“ (Makroname) auswählen (Linksklick) und Button „Ausführen“ oder „Run“.
Fertig.
Habe angenommen, dass Vorname in Spalte A (1), Nachname in Spalte B (2), und Adresse in Spalte C (3). Ausserdem angenommen, dass es eine Kopfzeile gibt. Daher MinZeile = 2.
Wenn meine Annahmen verkehrt sind, bitte melden. Lässt sich einfach anpassen.
Würd mich freuen, wenn Du mir einen Erfolg melden könntest… Wenn die Kommentierung (alles nach ') zu knapp ist, frag einfach.
MfG MwieMichel