Anzeige
Archiv - Navigation
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
808to812
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Adressen in eine Zelle kopieren

Adressen in eine Zelle kopieren
12.10.2006 15:19:22
Tom
Hallo,
ich habe in meiner Liste ca. 250 E-Mail-Adressen in Spalte H7:H240.
Wie schaffe ich es, dass alle Adressen, getrennt durch einen ; und anschließendem Leerzeichen in Zelle H1 übernommen werden?
Gruß und Danke vorab
TOM

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Adressen in eine Zelle kopieren
12.10.2006 15:59:40
fcs
Hallo TOM,
z.B. mit folgender benutzerdefinierten Funktion, die du im VBA-Editor in ein Modul der Datei einfügst:

Function emailAdressen(Bereich As Range) As String
emailAdressen = Bereich(1, 1)
For I = 2 To Bereich.Rows.Count
emailAdressen = emailAdressen & "; " & Bereich(I, 1)
Next I
End Function
Die Formel in H1 ist dann:
=emailAdressen(H7:H240)

Je nach Länge der e-mail-Adressen kann es jedoch sein, dass der Ergebnis-Textstring für die Formel zu lang wird und am 1028. Zeichen abgeschnitten wird.
xxxxxxxxyy@t-online.de passt z.B. nur ca. 40 mal in den Ergebnisstring.
Gruß
Franz
Anzeige
AW: Adressen in eine Zelle kopieren
13.10.2006 08:21:23
Tom
Hallo Franz,
es wird immer ein Fehler angeziegt - das i" bei Funktion wird markiert
Zudem "Fehler beim Kompilieren" Projekt oder Bibliothek nicht gefunden ..
Gruß
TOM
AW: Adressen in eine Zelle kopieren
13.10.2006 09:53:29
fcs
Hallo Tom,
#### es wird immer ein Fehler angeziegt - das i" bei Funktion wird markiert
Du hast wahrscheinlich als 1. Zeile im Modul "Option Explicit" stehen. Dann müssen alle Variablen in den Prozeduren per Dim-Anweisung deklariert werden.
Anpassung:

Function emailAdressen(Bereich As Range) As Variant
Dim I As Long
emailAdressen = Bereich(1, 1)
For I = 2 To Bereich.Rows.Count
emailAdressen = emailAdressen & "; " & Bereich(I, 1)
Next I
End Function

#### Zudem "Fehler beim Kompilieren" Projekt oder Bibliothek nicht gefunden ..
Schwierig zu sagen was da nicht passt. Ich habe die Function unter Excel 2003, Office 2003, Windows XP Professional erstellt und getestet. Evtl. ist im VBA-Editor unter Extras--Verweise ein notwendiges Element nicht markiert.
Standarmäßig sollten dort mindestens folgende Elemente mit Häkchen ausgewählt sein. Soweit ich weiss gilt dies nicht nur für Excel 2003(11.0) sondern auch für andere Excel-Versionen:
- VisualBasic for Applications
- Microsoft Excel x.y Object Library
- Ole Automation
Bei Excel im Office-Paket auch noch
- Microsoft Office x.x Object Library
Gruß
Franz
Anzeige
AW: Adressen in eine Zelle kopieren
13.10.2006 13:35:27
Tom
Super, jetzt funktioniert es - kleiner Zusatz:
Ist es möglich, leere Zellen "auszugrenzen"? D.h. einfach dann kein ; mehr zu setzen, damit nicht folgende Reihenfolge passieren kann:
xy@test.de; marketing@xy.com; ; ; ; ; test2@xy.de; ; test4@test.de usw
Gruß
TOM
AW: Adressen in eine Zelle kopieren
13.10.2006 15:44:15
fcs
Hallo TOM,
folgende Anpassung "überspringt" leere Zellen bzw. Leerstrings

Function emailAdressen(Bereich As Range) As Variant
Dim I As Long
For I = 2 To Bereich.Rows.Count
If Bereich(I, 1) <> "" Then
If emailAdressen = "" Then
emailAdressen = Bereich(I, 1)
Else
emailAdressen = emailAdressen & "; " & Bereich(I, 1)
End If
End If
Next I
End Function

Gruß
Franz
Anzeige
AW: Adressen in eine Zelle kopieren
13.10.2006 16:32:26
Tom
Hallo Franz,
vielen Dank für Deine Hilfe und ein schönes Wochenende!
TOM
AW: Adressen in eine Zelle kopieren
14.10.2006 11:47:19
Tom
Hallo Franz,
eine riesen Bitte hätte ich noch:
Kann man auch alle Mail-Adressen überspringen, wenn in einer Zelle der Spalte AF das Wort "Absage" steht?
Wäre super.
Danke nochmal vorab
TOM
AW: Adressen in eine Zelle kopieren
14.10.2006 14:09:56
fcs
Hallo Tom,
ich hab die Funktion jetzt etwas allgemeiner aufgebaut. Optional kann jetzt ein 2. Zellbereich angegeben werden. Stimmt der Wert in diesem Bereich mit dem optionalen Begriff überein, dann wird die e-mail-Adresse nicht in die Liste aufgenommen.
Gruss
Franz

Function emailAdressen(Bereich As Range, Optional Ausnahme As Range, Optional Nicht As String) As Variant
'Bereich = Zellbereich mit den emailadressen in der 1. Spalte
'Ausnahme = Zellbereich mit speziellem Eintrag
'Zellbereiche für Bereich und Ausnahme müssen die gleichen Zeilennummern haben
'Nicht = Begriff im Zellbereich Ausnahme, bei Übereinstimmung wird e-mailadresse nicht in die Liste aufgenommen
Dim I As Long
If Ausnahme Is Nothing Then
For I = 2 To Bereich.Rows.Count
If Bereich(I, 1) <> "" Then
If emailAdressen = "" Then
emailAdressen = Bereich(I, 1)
Else
emailAdressen = emailAdressen & "; " & Bereich(I, 1)
End If
End If
Next I
Else
If Bereich.Row < Ausnahme.Row Or Bereich.Rows.Count <> Ausnahme.Rows.Count Then
MsgBox "Bereiche mit e-mailAdressen und Ausnahmen müssen die gleichen Zeilen beinhalten!"
emailAdressen = "Fehler"
Exit Function
End If
For I = 2 To Bereich.Rows.Count
If Bereich(I, 1) <> "" And Ausnahme(I, 1) <> Nicht Then
If emailAdressen = "" Then
emailAdressen = Bereich(I, 1)
Else
emailAdressen = emailAdressen & "; " & Bereich(I, 1)
End If
End If
Next I
End If
End Function
Die Formel in der Tabelle schaut dann z.B. so aus:
=emailAdressen(H7:H40;AF7:AF40;"Absage")

Anzeige
AW: Adressen in eine Zelle kopieren
05.12.2006 14:04:34
Tom
Hallo Franz,
ich komme anch wie vor nicht ganz dahinter, an welcher Schraube ich drehn muss ...
Ich möchte nun alle email-Adressen, die in Spalte H stehen. Aber nur die, bei denen in Spalte U ein X steht ...
Kannst Du mir nochmal helfen?
Wäre super nett.
Gruß
TOM

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige