Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1256to1260
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
Inhaltsverzeichnis

Verketten von Zellinhalte per Formel

Verketten von Zellinhalte per Formel
Zellinhalte
Sehr geehrte Excel Anwender/Wissende.
Ich habe folgendes Problem, dass ich nicht mit eigenen Bordmitteln so nicht mehr lösen kann.
Generell habe ich als einen Lösungsansatz dieses Script-Beispiel gefunden:
https://www.herber.de/forum/archiv/1224to1228/t1226652.htm#1226652
Unabhängig, dass es mir nicht gelingt, dieses Script nach meinen Anfordrungen umzuschreiben (ich=VAB-Dau), würde ich auch lieber ein Lösung aus Basis eine Formel bevorzugen – wenn es die dann für meinen Fall gibt...
Daher beschreibe ich nun noch mal konkret meine Anforderungen, wobei ich auch die realen Zellbezüge verwende, so wie sie auch bei mir vorhanden sind.
Also, im Zellbereich G6:G61 gerenerie ich über eine 'Wenn-Abfrage' eine E-Mail Adresse: Je nach Erfüllung der 'Wenn-Bedingung' steht somit eine gültige E-Mail-Adresse in einer Zelle oder diese bleibt leer.
Nun soll bspw. in Zelle G71 folgendes passieren: Alle aufgelistete E-Mail-Adressen im darüber definierten Bereich sollen in dieser Zelle per Komma getrennt zusammen gefasst werden. Leerzellen sollen natürlich unberücksichtigt bleiben, sprich keine weiteren Zeichen, innerherlb der Zielzelle erzeugen.
Hintergrund ist, dass ich diesen Zelleninhalt aller Adressen, dann einfach per Copy&Paste ins Adressfeld meiner E-Mail Anwendung übertragen möchte.
Ich bedanke mich schon jetzt recht herzlich für eure Unterstützung.
Herzliche Grüße,
Andreas S.
AW: Verketten von Zellinhalte per Formel
05.04.2012 18:15:36
Zellinhalte
Hallo Hajo.
Danke für die schnelle Reaktion - diese Variante hatte ich bei meiner ersten Recherche auch entdeckt. Anders als bei mir stehen die Werte hier nebeneinander und es geht auch nur um vier Zellen.
Das Anpassen von nebeneinader in untereinander wäre auch prinzipiel keine Problem gewesen, jedoch müsste ich in meinem Fall 55 Zellen in dieser Formel abfangen… die wird dann ja schon ellenlang.
Und, wenn ich es richtig verstehe, müsste ich in dem Fall, wo ich mal eine Zeile hinzufügen möchte, jeweils händisch auch wieder diese Zelle in der Formel eintragen.
Ich hatte da einfach gehofft, dass es auch eine eleganter Form gäbe – ich will es mal ganz blöd mit einer Phantasie-Formel ausdrücken:
Verketten-mit-Zeichen(WENN(Zellinhalte(G6:61"";G6:G61);&", ")
So, sinngemäß halt ;-)
Wenn es also noch elegantere Möglichketien geben würde wäre ich sehr dankbar.
Herzliche Grüße,
Andreas S.
Anzeige
AW: Verketten von Zellinhalte per Formel
05.04.2012 18:07:21
Zellinhalte
Hallo
Probier mal.

Sub zusammen()
Dim c As Range
Dim neu As String
For Each c In Range("G6:G61")
If c  "" Then
If neu = "" Then
neu = c
Else
neu = neu & "," & c
End If
End If
Next
Range("G71") = neu
End Sub

gruss hary
AW: Verketten von Zellinhalte per Formel
05.04.2012 18:22:46
Zellinhalte
Hallo Harry.
Es tut genau, was es soll - super, vielen Dank.
Jetzt jedoch doch noch eine Frage dazu.
Wie kann ich es hinbekommen, dass das Makro selbstständig abläuft?
So, dass das sich der Inhalt automatisert aktualisiert, sobald sich eine Änderung ergeben hat.
Viele Grüße,
Andreas S.
Anzeige
AW: Verketten von Zellinhalte per Formel
05.04.2012 18:36:50
Zellinhalte
Hallo Andreas
Code in den Code der Tabelle. Rechtsklick auf den Reiter/Code anzeigen.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim c As Range
Dim neu As String
If Not Intersect(Target, Range("G6:G61")) Is Nothing Then
For Each c In Range("G6:G61")
If c  "" Then
If neu = "" Then
neu = c
Else
neu = neu & "," & c
End If
End If
Next
Range("G71") = neu
End If
End Sub

gruss hary
AW: zurueck
05.04.2012 18:45:53
hary
Hallo Andreas
der Code wirkt nur bei haendischer Eingabe im Bereich G6:G61. Muesstest Du aendern auf den Bereich, wo Du haendisch was aenderst.
oder so, auch in den Code der Tabelle. Wird aber immer ausgefuehrt wenn eine Formel berechnet wird.

Private Sub Worksheet_Calculate()
Dim c As Range
Dim neu As String
If Not Intersect(Target, Range("G6:G61")) Is Nothing Then
For Each c In Range("G6:G61")
If c  "" Then
If neu = "" Then
neu = c
Else
neu = neu & "," & c
End If
End If
Next
Range("G71") = neu
End If
End Sub

gruss hary
Anzeige
AW: nochmal zurueck :-((
05.04.2012 18:48:08
hary
Hallo
so muss es sein, bin schon in Kopf auf einer Party. sry

Private Sub Worksheet_Calculate()
Dim c As Range
Dim neu As String
For Each c In Range("G6:G61")
If c  "" Then
If neu = "" Then
neu = c
Else
neu = neu & "," & c
End If
End If
Next
Range("G71") = neu
End Sub

gruss hary
AW: Verketten von Zellinhalte per Formel
05.04.2012 18:52:12
Zellinhalte
Respekt, da wäre ich nie drauf gekommen.
Leider muss ich ich jetzt noch eine Ergänzugnsfrage stellen, denn es hat sich ein weiterer Gedanke dazu auf getan.
Wie muss ich den Code aufbauen, wenn ich nicht nur die Spalte G6:G61 in G71 zusammenfassen will, sondern das Gleiche auch noch mal für Spalte I6:I61 mit Ausgabe in I71 erreichen möchte?
Danke für Deine super Hilfe.
Herzliche Grüße,
Andresa S.
Anzeige
AW: Verketten von Zellinhalte per Formel
05.04.2012 19:09:06
Zellinhalte
Hallo
welches Ereigniss hast Du genommen? Change oder Calculate.
gruss hary
AW: such Dir was aus....
05.04.2012 19:31:06
hary
Hallo
hier beides. Nu Partytime.

Private Sub Worksheet_Calculate()
Dim spalte As Long
Dim c As Range
Dim neu As String
Application.ScreenUpdating = False
For spalte = 7 To 9 Step 2
For Each c In Range(Cells(6, spalte), Cells(61, spalte))
If c  "" Then
If neu = "" Then
neu = c
Else
neu = neu & "," & c
End If
End If
Cells(71, spalte) = neu
Next
neu = ""
Next
Application.ScreenUpdating = True
End Sub
'...........oder..............
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim c As Range
Dim neu As String
If Not Intersect(Target, Range("G6:G61,I6:I61")) Is Nothing Then
For Each c In Range(Cells(6, Target.Column), Cells(61, Target.Column))
If c  "" Then
If neu = "" Then
neu = c
Else
neu = neu & "," & c
End If
End If
Next
Cells(71, Target.Column) = neu
End If
End Sub

gruss hary
Anzeige
Im Archiv, hier u.anderswo, sind etliche ...
05.04.2012 21:40:00
Luc:-?
…udFktt enthalten, Leute,
die so etwas (ggf auch in Kombi m.and Fktt) bewerkstelligen können. Das wären dann die ursprgl bevorzugten FmlLösungen. Die wdn (b.entsprd Einstellung) auch immer automatisch aktualisiert. Fmln und Fktt sind die Basis jeder KalkSoftware, keine Ereignisprozz u.sonstigen Subroutinen!
Gruß u.FrOst, Luc :-?
AW: Luc hat Recht
06.04.2012 08:04:56
hary
Hallo
hier mal ein UDF. Code in ein Modul. Aufrufen mit Formel: =zusammen

Function zusammen(Bereich As Range)
Dim c As Range
Dim neu As String
For Each c In Bereich
If c  "" Then
If neu = "" Then
neu = c
Else
neu = neu & "," & c
End If
End If
Next
zusammen = neu
End Function
hier noch die Mappe: https://www.herber.de/bbs/user/79690.xls
Noch etwas zitterig(schoene party), aber es geht.
frohe Ostern
gruss hary
Anzeige
Ja, dito spez f.dich! Diesmal wird wohl ...
06.04.2012 15:32:47
Luc:-?
…meine Abkürzung einen sehr direkten Realitätsbezug bekommen, Hary;
in diesem Sinne, FrOst allerseits!
Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige