Inhalte _vieler_ Zellen aneinanderfügen



Excel-Version: 9.0 (Office 2000)
nach unten

Betrifft: Inhalte _vieler_ Zellen aneinanderfügen
von: Wolfgang Fuchs
Geschrieben am: 04.06.2002 - 17:00:04

Hallo zusammen,

ich habe eine lange Spalte mit E-mailadressen, die möchte ich gerne mit einem einzigen copy & paste-Vorgang weiter verarbeiten, und sie dafür in einer Zelle sammeln (separiert mit Kommata).

Da die Anzahl der Zeilen schwankt (und groß ist) möchte ich nun keine händische Mega-addition a la

= A1 & ", " & A2 & ....

bilden

Weiß jemand einen Trick?

Danke im voraus & viele Grüße,
W o l f g a n g.


nach oben   nach unten

Re: Inhalte _vieler_ Zellen aneinanderfügen
von: Stefan
Geschrieben am: 04.06.2002 - 17:18:21

Hallo,

du könntest folgenden Programmcode in einem Makro einsetzen:

Sub Text_aneinanderfuegen()
Dim Zelle As Range
Dim sText
For Each Zelle In Selection
If sText = "" Then
sText = Zelle
Else: sText = sText & ", " & Zelle
End If
Next Zelle
Cells(1, 1) = sText
End Sub

Dabei musst Du die betreffenden Zeilen markieren und anschliesend das Makro laufen lassen. Es schreibt Dir dann den Text des markierten Bereichs in die Zelle A1.

Gruß

Stefan

nach oben   nach unten

Re: Inhalte _vieler_ Zellen aneinanderfügen
von: PeterW
Geschrieben am: 04.06.2002 - 17:22:15

Hallo Wolfgang,


Sub Sammelstring()
Dim stEmail As String
Dim As Integer
Dim As Integer

r = 1
c = 1

Do Until Cells(r, 1) = ""
    Do Until Cells(1, c) = ""
        stEmail = stEmail & Cells(r, c) & ", "
        c = c + 1
    Loop
    Cells(r, 10) = stEmail
    c = 1
    stEmail = ""
    r = r + 1
Loop
   
End Sub

geht bestimmt auch einfacher - aber funktioniert. ;)

Gruß
Peter


nach oben   nach unten

Re: Inhalte _vieler_ Zellen aneinanderfügen
von: Oliver
Geschrieben am: 04.06.2002 - 17:23:18

Hallo Wolfgang,
ich habe keine wirklich gute Lösung, aber zumindest schon mal eine Vereinfachung. Wenn die Adressen in einer Spalte vorliegen musst du in die Zelle hinter jeder Adresse ein Komma eingeben.
In der Zelle, in der alles "addiert" werden soll, gibst du ein:

=verketten(

Dann klickst du nacheinander mit gedrückter STRG-Taste jeweils die Zellen an: Adresse, Komma, Adresse, Komma usf.
Nach der letzten Adresse gibst du manuell eine ")" (=Klammer zu) ein.

Wie gesagt, nicht wirklich gut, aber etwas schneller als manuell tippen.

Trotzdem schönen Tag noch!

Oliver

nach oben   nach unten

Korrektur
von: PeterW
Geschrieben am: 04.06.2002 - 18:13:27

Sorry Wolfgang, hier die korrigierte Version


Sub Sammelstring()
Dim stEmail As String
Dim As Integer
Dim As Integer

r = 1
c = 1

Do Until Cells(r, c) = ""
    Do Until Cells(r, c) = ""
        stEmail = stEmail & Cells(r, c) & ", "
        c = c + 1
    Loop
    Cells(r, 5).Value = Left(stEmail, Len(stEmail) - 2)
    c = 1
    stEmail = ""
    r = r + 1
Loop
        
    
End Sub

Peter


nach oben   nach unten

Re: Korrektur
von: Wolfgang Fuchs
Geschrieben am: 05.06.2002 - 15:18:41

Hi Peter,

Danke (auch an die anderen) für die Lösung(en)!

Ein Kollege hat mir Deine Lösung noch etwas umgestrickt, damit nur die Zeilen der einen Spalte, nicht aber mehrere Spalten durchlaufen werden (falls ich das so richtig verstanden habe - bin nicht so der VBA-crack :-)
....vielleicht interessiert es noch jemanden:

Function Sammelstring(row, col As Integer) As String

Dim str As String

str = ""

Do Until Cells(row, col) = ""
str = str & Cells(row, col) & ", "

row = row + 1
Loop

Sammelstring = str

End Function

Viele Grüße,
W o l f g a n g.

nach oben   nach unten

Re: Korrektur
von: PeterW
Geschrieben am: 05.06.2002 - 19:48:21

Hallo Wolfang,

wie schön, wenn es Kollegen gibt. ;)

Danke für die Rückmeldung
Peter


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Inhalte _vieler_ Zellen aneinanderfügen"