Hallo zusammen!
Nachdem Ihr mir kürzlich schon so super weitergeholfen habt, hier nochmals eine kurze Frage an Euch:
Ich habe stets zwei txt.-Listen, wovon die eine bereits meine bisher angeschriebene Email-Adressen enthält und bei der anderen immer komplett neue Adressen hinzukommen. Da es immer nur ein einmaliges Mailing sein soll (um Belästigung zu vermeiden), was ich verschicken will, möchte ich natürlich nicht, dass bei den Neuen, auch die Adressen abermals angeschrieben werden, welche die Mail bereits vormals bekommen haben, also sich bereits in der "alten" Liste befinden.
Somit habe ich eine alte, immer länger werdende Liste (weil ich die neuen Adressen nach erfolgtem Versand natürlich immer in die alte, bestehende Liste hineinkopiere). Bei ein paar wenigen Adresse kann man das natürlich auch "von Hand" vergleichen, ob die Neuen nun bereits vorhanden sind oder nicht. Nun hat meine Liste aber einen Umfang erreicht, welcher dies unmöglich macht.
Nun endlich zu meiner Frage:
Ich würde somit gerne einfach zwei Spalten (alte & neue Adressen) anlegen und diese dann autom. "vergleichen" lassen, sodass dann in der 3. Spalte nur noch die komplett neuen, bisher nicht in der 1. Spalte vorhandenen Adressen ausgegeben werden ....
Ich hoffe, ich habe das trotz langem Vorspann, einigermassen verständlich erklären können .....
Vielen Dank fuer Eure Hilfe .....
2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben
Moderator: Moderatoren
Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben
Hallo,
Du hast drei Spalten mit entsprechender Überschrift: alte Liste, neue Liste und neue Adressen.
jetzt benennst Du über Einfügen>Namen den Bereich mit der alten Liste (ohne Überschrift) als 'alteListe', das vereinfacht die Formel und die Referenzen.
Unter neue Adressen, also in C2, trägst Du folgende Formel ein: und ziehst die so weit runter wie die neue Liste reicht.
Jetzt hast Du in Spalte C die neuen Adressen munter über die Spalte verteilt. Per Daten>Filter>Standardfilter filterst Du jetzt die Spalte auf nicht leere: Feldname: neue Adressen, Bedingung: <>, Wert (leer).
Damit werden alle Zeilen, in denen neue Adressen leer ist, ausgeblendet. Die kannst Du jetzt kopieren und weiter verwenden; außerdem kannst Du sie so wie sie sind ans Ende von alte Liste kopieren, um die weiter zu führen. Dazu markierst Du die neuen Adressen, drückst <strg>+<c> und fügst sie ein mit Bearbeiten>Inhalte einfügen, das Häkchen bei Formeln aus. Und Du markierst die erweiterte alte Liste und definierst über Einfügen>Namen>Festlegen>Ändern den Namen neu, um ihn beim nächsten Mal wieder zu verwenden.
Anschließend entfernst Du den Filter über Daten>Filter>Filter entfernen.
Du hast drei Spalten mit entsprechender Überschrift: alte Liste, neue Liste und neue Adressen.
jetzt benennst Du über Einfügen>Namen den Bereich mit der alten Liste (ohne Überschrift) als 'alteListe', das vereinfacht die Formel und die Referenzen.
Unter neue Adressen, also in C2, trägst Du folgende Formel ein:
Code: Alles auswählen
=WENN(SUMMENPRODUKT(alteListe=B2)=0;B2;"")
Jetzt hast Du in Spalte C die neuen Adressen munter über die Spalte verteilt. Per Daten>Filter>Standardfilter filterst Du jetzt die Spalte auf nicht leere: Feldname: neue Adressen, Bedingung: <>, Wert (leer).
Damit werden alle Zeilen, in denen neue Adressen leer ist, ausgeblendet. Die kannst Du jetzt kopieren und weiter verwenden; außerdem kannst Du sie so wie sie sind ans Ende von alte Liste kopieren, um die weiter zu führen. Dazu markierst Du die neuen Adressen, drückst <strg>+<c> und fügst sie ein mit Bearbeiten>Inhalte einfügen, das Häkchen bei Formeln aus. Und Du markierst die erweiterte alte Liste und definierst über Einfügen>Namen>Festlegen>Ändern den Namen neu, um ihn beim nächsten Mal wieder zu verwenden.
Anschließend entfernst Du den Filter über Daten>Filter>Filter entfernen.
Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben
Hallo Zusammen,
man kann das natürlich so machen wie es Christian beschrieben hat. Ich finde das aber recht umständlich wenn man das öffters machen möchte.
Einfacher geht es dann mit folgendem Makro:
Hier mal eine Beispieldatei
Viel Erfolg.
Jürgen
man kann das natürlich so machen wie es Christian beschrieben hat. Ich finde das aber recht umständlich wenn man das öffters machen möchte.
Einfacher geht es dann mit folgendem Makro:
Code: Alles auswählen
Sub MailDubletten_finden
odoc=thiscomponent
oSheet = ThisComponent.CurrentController.getActiveSheet()'aktives Tabellenblatt
oCellCursor = oSheet.createCursor()
oCellCursor.GotoEndOfUsedArea(True)
letzte_Zeile = oCellCursor.getRangeAddress.EndRow 'letzte Zeile mit Inhalt finden
oQuelleRange=oSheet.getCellRangeByPosition(1,0,1,letzte_Zeile)'Bereich Spalte B kopieren
oQuellRangeAddresse = oQuelleRange.getRangeAddress
oZiel = oSheet.getCellByPosition(2,0) 'kopierten Bereich in Spalte C einfügen
oZielCellAdresse=oZiel.getCellAddress
oSheet.copyRange(oZielCellAdresse,oQuellRangeAddresse)
for i = 0 to letzte_Zeile
text1 = osheet.getcellbyposition(0,i).string 'Spalte A
for j = 0 to letzte_Zeile
text2 =osheet.getcellbyposition(2,j).string 'Spalte C
if text1 = text2 then ' wenn Inhalt in den Zellen Spalte A und C gleich dann...
oNext = oSheet.getCellByPosition(2,j)
oSheet.removeRange(oNext.RangeAddress, com.sun.star.sheet.CellDeleteMode.UP)'...Zelle löschen
end if
next j
next i
msgbox "Der Vorgang ist abgeschlossen",64, "Maildubletten finden"
End Sub
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben
Hallo Jürgen,
Hallo Christian!
Ich danke Euch Beiden vielmals. Ihr habt mir wirklich sehr, sehr weitergeholfen.
Natürlich muss ich zugeben, dass das Makro von Jürgen nochmals eine Stufe einfacher zu bedienen ist ..... Unfassbar!
Nochmals Danke!
Hallo Christian!
Ich danke Euch Beiden vielmals. Ihr habt mir wirklich sehr, sehr weitergeholfen.
Natürlich muss ich zugeben, dass das Makro von Jürgen nochmals eine Stufe einfacher zu bedienen ist ..... Unfassbar!
Nochmals Danke!
Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben
Ja, manche kochen nur mit Wasser, Jürgen hat den Tee dazu spendiert
In der Theorie hat mir der Ansatz, mit den beiden Schleifen das Ganze sequenziell zu lösen, auch vorgeschwebt - bietet sich bei der Aufgabenstellung an, aber mir fehlt das Wissen, das in ein Makro umzusetzen.

In der Theorie hat mir der Ansatz, mit den beiden Schleifen das Ganze sequenziell zu lösen, auch vorgeschwebt - bietet sich bei der Aufgabenstellung an, aber mir fehlt das Wissen, das in ein Makro umzusetzen.
Re: 2 List./Spalt. vergleichen & NichtÜbereinstimmungen ausgeben
und ich wäre niemals auf die Lösung von Christian gekommen.chrk hat geschrieben:aber mir fehlt das Wissen, das in ein Makro umzusetzen.
Das nennt man ausgleichende Gerechtigkeit.

Schönen Sonntag noch.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem