Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Email Adressen aus mehreren Spalten in eine Spalte

Email Adressen aus mehreren Spalten in eine Spalte
03.03.2009 14:03:50
Martin
Hallo Leute!
Ich hab heut wiedermal eine Frage an euch.
Ich hab ein Excelblatt in dem in verschiedenen Spalten Email Adressen stehen. Ich möchte nun aber, dass alle Adressen in einer Spalte zb. "X" stehen jedoch in der Zeile bleiben in der sie gestanden sind.
z.B.: steht in der Zelle A1, A2, B3,C4 jeweils eine Adresse und sie sollen anschließend in X1 X2 X3 X4 stehen.
Es kann unter umständen sein dass sich in einer Zeile 2 Adressen befinden. In diesem Fall wäre es genial wenn die zweite email adresse in der Spalte "Z" stehen würde.
lässt sich sowas machen?
Danke im Vorraus für eure Hilfe
lg
Martin
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Email Adressen aus mehreren Spalten in eine Spalte
03.03.2009 14:38:20
gemoppelt
Hallo Martin,
ich habe angenommen, das die Mailadressen als Link in den Zellen stehen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub extractMailAddress()
  Dim rng As Range, rngRow As Range
  Dim lngC As Long, lngLast As Long
  Dim hLink As Hyperlink
  
  With ActiveSheet
    lngLast = .Rows(.UsedRange.Rows(1).Row + .UsedRange.Rows.Count - 1).Row
    
    Set rng = .Range(.Cells(1, 1), .Cells(lngLast, 25))
    
    For Each rngRow In rng.Rows
      lngC = 26
      For Each hLink In rngRow.Hyperlinks
        If InStr(1, hLink.Address, "@") > 0 Then
          .Hyperlinks.Add Anchor:=.Cells(rngRow.Row, lngC), _
            Address:=hLink.Address, _
            TextToDisplay:=hLink.TextToDisplay
          lngC = lngC + 1
        End If
      Next
    Next
    
  End With
  
  Set rng = Nothing
  Set rngRow = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Email Adressen aus mehreren Spalten in eine Sp
03.03.2009 14:49:18
Martin
Hallo Sepp!
Danke für dein Macro! Aber leider stehen die Adressen nicht als Links im Sheet. :( Sorry
Kann ich das irgendwie schnell machen?
Danke nochmal.
lg
Martin
nachgefragt
03.03.2009 14:54:58
Josef
Hallo Martin,
die Adressen stehen aber schon alleine in den Zelle, oder sind die in anderem Text eingeschlossen?
Gruß Sepp

Anzeige
AW: Email Adressen aus mehreren Spalten in eine Sp
03.03.2009 15:11:38
Josef
Hallo Martin,
wenn die Adressen allein in den Zellen stehen,dann geht's so.
Sub extractMailAddress()
  Dim rng As Range, rngRow As Range
  Dim lngC As Long, lngLast As Long
  Dim hLink As Hyperlink, strFirst As String
  
  With ActiveSheet
    lngLast = .Rows(.UsedRange.Rows(1).Row + .UsedRange.Rows.Count - 1).Row
    
    Set rng = .Range(.Cells(1, 1), .Cells(lngLast, 25))
    
    Set rngRow = rng.Find(What:="@", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns)
    If Not rng Is Nothing Then
      strFirst = rngRow.Address
      
      Do
        lngC = Application.Max(26, .Cells(rngRow.Row, Columns.Count).End(xlToLeft).Column + 1)
        .Hyperlinks.Add Anchor:=.Cells(rngRow.Row, lngC), _
          Address:=rngRow.Text, _
          TextToDisplay:=rngRow.Text
        
        Set rngRow = rng.FindNext(rngRow)
      Loop While Not rngRow Is Nothing And strFirst <> rngRow.Address
      
    End If
    
  End With
  
  Set rng = Nothing
  Set rngRow = Nothing
End Sub

Gruß Sepp

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Email Adressen aus mehreren Spalten in eine Spalte zusammenführen


Schritt-für-Schritt-Anleitung

Um mehrere Email-Adressen aus verschiedenen Spalten in eine Spalte zusammenzuführen, kannst du ein VBA-Makro verwenden. Hier ist eine einfache Anleitung:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub extractMailAddress()
    Dim rng As Range, rngRow As Range
    Dim lngC As Long, lngLast As Long
    Dim strFirst As String

    With ActiveSheet
        lngLast = .Rows(.UsedRange.Rows(1).Row + .UsedRange.Rows.Count - 1).Row
        Set rng = .Range(.Cells(1, 1), .Cells(lngLast, 25))

        Set rngRow = rng.Find(What:="@", LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns)
        If Not rng Is Nothing Then
            strFirst = rngRow.Address

            Do
                lngC = Application.Max(26, .Cells(rngRow.Row, Columns.Count).End(xlToLeft).Column + 1)
                .Cells(rngRow.Row, lngC).Value = rngRow.Value

                Set rngRow = rng.FindNext(rngRow)
            Loop While Not rngRow Is Nothing And strFirst <> rngRow.Address
        End If
    End With

    Set rng = Nothing
    Set rngRow = Nothing
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu deinem Excel-Dokument.
  2. Starte das Makro über Entwicklertools > Makros und wähle extractMailAddress.

Nun werden die Email-Adressen aus den verschiedenen Spalten in die nächste freie Spalte geschrieben.


Häufige Fehler und Lösungen

  • Fehler: Es werden keine Adressen gefunden.
    Lösung: Stelle sicher, dass die Email-Adressen in den Zellen tatsächlich stehen und nicht in einem anderen Text eingebettet sind.

  • Fehler: Das Makro funktioniert nicht.
    Lösung: Überprüfe, ob Makros in deiner Excel-Version aktiviert sind. Du kannst diese Einstellung unter Datei > Optionen > Trust Center finden.


Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch Formeln einsetzen:

  1. Verwende die Funktion TEXTVERKETTEN (Excel 365), um mehrere Spalten zu einer Spalte zu kombinieren.
  2. Eine einfache Formel könnte so aussehen:
    =TEXTVERKETTEN(", "; WAHR; A1:C1)

Diese Methode ist besonders nützlich, wenn du keine Programmierkenntnisse hast und schnell mehrere Email-Adressen in einer Zelle zusammenfassen möchtest.


Praktische Beispiele

Wenn du beispielsweise folgende Email-Adressen hast:

A B C
test1@example.com test2@example.com
test3@example.com test4@example.com
test5@example.com

Nach dem Ausführen des Makros sollten die Adressen in der nächsten freien Spalte so aussehen:

D E
test1@example.com, test2@example.com test3@example.com, test4@example.com
test5@example.com

So kannst du alle Adressen effektiv in einer Spalte kombinieren.


Tipps für Profis

  • Um eine bessere Übersicht zu behalten, kannst du die Adressen vor dem Zusammenführen in eine neue Arbeitsmappe kopieren.
  • Überlege dir, ob du die Adressen vielleicht direkt in eine Outlook-Kontaktliste importieren möchtest. Hierfür eignet sich die Funktion "mehrere Email-Adressen aus Excel in Outlook kopieren".

FAQ: Häufige Fragen

1. Frage
Kann ich die Adressen auch in eine andere Excel-Datei exportieren?
Antwort: Ja, du kannst das Makro anpassen, um die Adressen in eine andere Arbeitsmappe zu schreiben, indem du Workbooks.Add verwendest.

2. Frage
Funktioniert das auch mit älteren Excel-Versionen?
Antwort: Ja, das VBA-Makro sollte auch in Excel 2010 und späteren Versionen funktionieren. Formeln wie TEXTVERKETTEN sind jedoch erst in Excel 365 verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige