Excel 2003, Emaildatenbank

  • #1
T

Tommi

Guest
Hallo,

ich habe mir eine einfache Tabelle in Excel gebaut und dort Emailadressen eingetragen. Diese dienen dazu, einen Newsletter zu versenden. Ich kopiere dann einfach die Adressen von Excel in Outlook.

Nun kommt es aber ab und an vor, das Adressen doppelt da sind. Gibt es da eine Funktion in Excel, um die Adressen mit einem Rutsch nach doppelten Einträgen zu durchsuchen?

Tommi
 
  • #2
Hallo tommi,

mit einem Makro ist das ohne weiteres möglich.

Wie ist denn dein Tabelle aufgebaut?
- ab welcher Zeile sind email-adressen vorhanden?
- in welcher Spalte?
- sind leere Zeilen vorhanden ?

Was soll passieren, wenn doppelte mail-Adressen gfunden werden.

Kann die Liste nach mail-Adresse sortiert werden oder nach welchem Kriterium ist sie jetzt sortiert ?

Gruß Matjes :)
 
  • #3
Hi Matjes,

bis jetzt stehen die einzelnen Einträge einfach untereinander in der Tabelle. ansonsten is da noch alles jungfräulich.

Wenn doppelte Einträge gefunden werden, dann soll einer davon gelöscht werden. Es geht nur darum, das Kunden den Newsletter nicht 2 oder 3-mal bekommen, sondern nur einmal.

Danke Dir schon mal im Voraus.

Tommi
 
  • #4
Der folgende Makro sollte gewünschtes tun.
(Vor dem Ausprobieren Sicherung der Excel-Datei erstellen !)

Gruß Matjes :)

Code:
Sub DoppelteEmailAdrInSpA_Loeschen()
  
 ->untersucht das aktive Blatt in Spalte A auf doppelte Einträge
 ->und löscht diese
  
  Const cERSTEZEILE = 1->ab dieser Zeile wird untesucht
  Const cSP1 = 1       ->in dieser Spalte wird gesucht (hier A)
  
  Dim ws As Worksheet
  Dim lRows As Long, x As Long
  
 ->Screenupdate abschalten
  Application.ScreenUpdating = False
  
 ->aktives Blatt setzen
  Set ws = ActiveSheet
  
 ->letzten Eintrag in Spalte feststellen
  lRows = ws.Cells(ws.Rows.Count, cSP1).End(xlUp).Row
  
 ->Sortieren absteigend -> leere wandern ans Ende
  ws.Rows(cERSTEZEILE & : & lRows).Sort _
    Key1:=ws.Cells(cERSTEZEILE, cSP1), _
    Order1:=xlDescending, _
    Header:=xlNo
    
 ->letzten Eintrag in Spalte feststellen
  lRows = ws.Cells(ws.Rows.Count, cSP1).End(xlUp).Row
  
 ->doppelte Zeilen loeschen
  For x = lRows - 1 To cERSTEZEILE Step -1
    If ws.Cells(x + 1, cSP1).Value = ws.Cells(x, cSP1).Value Then
      ws.Rows(x).Delete
    End If
  Next
  
 ->Screenupdate anschalten
  Application.ScreenUpdating = True
  
AUFRAEUMEN:
  Set ws = Nothing
End Sub
 
Thema:

Excel 2003, Emaildatenbank

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben