Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
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

Werte aus mehreren Zellen in eine zusammenführen

Werte aus mehreren Zellen in eine zusammenführen
05.04.2019 23:58:01
Kisska
Hallo zusammen,
in der folgenden Beispielsdatei möchte ich Inhalte aus mehreren Quell-Zellen in eine Zielzelle zusammenführen:
https://www.herber.de/bbs/user/128964.xlsx

Die Quell-Zellen stehen entweder direkt untereinander (Fall 1) oder nicht direkt untereinander (Fall 2).
Ziel ist es, eine Liste mit eindeutigen Werten zu erstellen - für Fall 1 in der Zelle B6 und für Fall 2 in der Zelle B20.
Eine Analogie habe ich hier gefunden:
https://www.tabellenexperte.de/liste-nur-mit-eindeutigen-werten-erstellen/
Hier wird aber eine Liste in einer Spalte erstellt. Ich brauche jedoch eine Liste in einer Zelle, wobei die gefundenen eindeutigen Elemente durch ein Zeilenumbruch getrennt werden sollten.
Kann mir jemand dabei helfen? (Formel-Lösung ohne Hilfsspalten/zeilen ggü. VBA bevorzugt)
VG, Kisska

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wie wär noch eine Fml-Lösung mit VBA (UDFs), ...
06.04.2019 04:04:40
Luc:-?
…Kisska,
dieses Mal sogar als normale Fmln:
Fall 1 - B6:=VJoin(B3:B5;ZEICHEN(10);-1)
Fall 2 - B20:=VJoin(VSplit(VJoin(DataSet((B12;B14;B16;B18);B12;2;-1;1);ZEICHEN(10));ZEICHEN(10));ZEICHEN(10);-1)
Alternativ ginge auch folgd Fml, wenn die ZwischenZellen leer sind (oder einen stets gleichen Wert enthalten):
Fall 2alt - B20:=VJoin(VSplit(VJoin(NoErrRange(B12:B18;;B12:B18"");ZEICHEN(10));ZEICHEN(10));ZEICHEN(10);-1)
Für den Fall2 ist die jeweilige UDF hier zu finden:
DataSet (Vs1.3) https://www.herber.de/forum/archiv/1504to1508/t1507939.htm#1508954
NoErrRange (Vs1.3) https://www.herber.de/forum/archiv/1508to1512/t1508209.htm#1508215
Morhn, Luc :-?
„Die Intelligenzmenge ist auf diesem Planeten eine Konstante, die Bevölkerung nimmt aber zu!“ Auch deshalb informieren mit …
Anzeige
Fall 1 klappt, Fall 2 nicht
08.04.2019 11:39:55
Kisska
Hallo Luc,
vielen Dank für deine Unterstützung!
Fall 1 klappt wunderbar! Schade, dass man das gleiche Ergebnis nicht ohne VBA erreichen kann.
Fall 2 führt bei mir zu einem Fehler. Ich habe in ein Modul dein UDF (1. Link) 1:1 in ein Modul gepackt und die 1. Formel für Fall 2 in B20 verwendet.
Kurze Anmerkung: Deine verlinkten UDFs werden von meinem System als verdächtige Makros eingestuft, warum auch immer. Weißt du wieso?
Ist es vielleicht möglich dein UDF von Fall 1 irgendwie zu erweitern und dann diese Formel anwenden:
=VJoin(B12;B14;B16;B18;ZEICHEN(10);-1)?
Es wäre super, wenn ich den Zeilenumbruch nur 1 Mal in der Formel habe. Ich möchte nämlich die Formel beliebig kopieren und dann nur den Bereich entsprechend anpassen.
Anzeige
Fall 2 klappt auch, ...
08.04.2019 19:11:59
Luc:-?
…Kisska:
 ABCD
12
 A       B       A
B
       C
D
  Fall 2a)b) Wunschlösung:A
B
C
D
A
B
C
D
 B20:=VJoin(VSplit(VJoin(DataSet((B12;B14;B16;B18);B12;2;-1;1);ZEICHEN(10));ZEICHEN(10));ZEICHEN(10);-1)C20:=VJoin(VSplit(VJoin(NoErrRange(B12:B18;;B12:B18<>"");ZEICHEN(10));ZEICHEN(10));ZEICHEN(10);-1)
13
14
15
16
17
18
19
20
21
22
Möglicherweise fktioniert das bei dir deshalb nicht, weil du die von der UDF verwendeten Enumerationen nicht mitübernommen hast. Diese stehen bei beiden UDFs vor dem eigentlichen Pgm und gehören an den Anfang nur eines normalen Moduls pro VBA-Projekt. Es handelt sich dabei um die Enumerationen, die im besser ebenfalls zu übernehmenden Anmerkungstext (grün) vor dem Pgm unter Achtung! aufgelistet sind:
DataSet: cxSetType, cxTriState, xlTriState
NoErrRange: cxTriState
Außerdem könnte bei DataSet noch die interne Verwendung von WorksheetFunction.Transpose (Xl-Fkt MTRANS) eine Rolle spielen, falls zu viele Daten zusammenkommen, da die ElementeAnzahl für diese Xl-Fkt durch den verfügbaren Arbeitsspeicher begrenzt wird und so auf mehrere 10Tsd beschränkt ist (mal auf www.xlam.de nachlesen oder selber testen!).
Luc :-?
Anzeige
Nachtrag:
08.04.2019 19:25:09
Luc:-?
Eine derartige Erweiterung von VJoin habe ich (zZ) nicht vorgesehen, Kisska,
dann müsstest du die neue Xl-Fkt TEXTVERKETTEN verwenden, die so etwas macht. Allerdings müsste das Ergebnis anschließend wieder gesplittet und neu mit VJoin zusammengesetzt wdn, damit DoppelNennungen entfallen. TEXTVERKETTEN wird das wohl eher nicht leisten.
Mein System stuft eigene UDFs und SubProzeduren nicht als verdächtig ein, auch nicht unter Win10. Deshalb kann ich nur vermuten, dass das an deinen Einstellungen liegt, denn normalerweise wdn jegliche Makros angezweifelt, wenn sie nicht aktuell zertifiziert sind oder auf einem davon ausgenommenen Laufwerk/Ordner liegen.
Luc :-?
Anzeige
hmm
08.04.2019 20:59:13
Kisska
Luc, ich weiß nicht was ich falsch mache. Ich habe alles kopiert, inkl. Enumerationen.
Diesmal habe ich den 2. Code genommen und in Modul 2 gepackt (im Module 1 steht dein Code für Fall 1):
Public Enum cxTriState: cxAsUsed = -2: cxTrue: cxFalse: cxCTrue: End Enum
Rem Erzeugt ggf 1 unzusammenhängd Bereich (MehrfachAuswahl) aus Bezug lt Arg1
'   ohne darin uU enthaltene FehlerWerte; hilfreich b.Fktt, d.nur Bereiche o.
'   FWerte, aber auch unzusammhängende verarbeiten können, bspw TEILERGEBNIS;
'   Datenfeld-verarbeitde Fktt kommen so idR ohne MxFmlForm aus (außer b.Arg3
'   als DFeld); nur 1 Zelle als Arg1 kn ggf F-Wert liefern, b.VektorForm wird
'   auch b.solitärer FktsVerwendg in (Mx-)Fmln ggf vollständ Ergebnis gelieft
'   (außer uU b.entstandm unzusammhgd Bereich), b.MatrixForm könn d.Werte idR
'   m.INDEX/Var2 aus d.unzusammhgd ErgebnBereich gelesen wdn; m.Arg2=WAHR/0
'   wird d.Ergebn auf sichtbare Zellen beschränkt, wobei dies b.Ausblenden d.
'   Zelle m.der d.Fkt enthaltenden Fml dort Anzeige d.StandardFWerts bewirkt;
'   in Arg3 kn auf 1 Bereich m.WahrhWerten gleicher Größe wie Arg1 vwiesen or
'   1 glchgroß Datenfeld (MxKonst oder Ausdruck) angegeben wdn, wird 0/FALSCH
'   angegeben, macht Arg2=1/WAHR d.Fkt nur volatil!
'   Achtung! Fkt benött b.ggf verlangter AutoAktualisierg d.NichtBerücksichtg
'   ausgeblendeter Zellen d.Auslösg d.Neuberechng ([F9] bzw Edit 1er beliebig
'   Zelle - v.Arg2 abhängig: WAHR/0 ->partielle Volatilität zur Erzielg dss
'   speziellen Verhaltens; Fkt verwendet Enumeration cxTriState (anlegen)!
'   Vs1.3 -LSr.CyWorXxl -cd:20150710 -1pub:20150721herber(1.2) -lupd:20151114t
Function NoErrRange(Bereich As Range, Optional ByVal nurVisZ As Boolean, _
Optional ByVal ZusKrit) As Range
Dim cct As Long, cif As Long, cix As Long, rct As Long, rix As Long, rif As Long, _
tix As Integer, hasCrits As cxTriState, tmpR(2) As Range, xZ As Range, zK As Range
Application.Volatile nurVisZ: On Error GoTo ex
If IsMissing(ZusKrit) Then ZusKrit = True
With Bereich
If .Cells.Count = 1 Then
If IsError(Bereich) Then Exit Function
If nurVisZ Then
If Not (.EntireRow.Hidden Or .EntireColumn.Hidden) Then _
Set tmpR(0) = Bereich
Else: Set tmpR(0) = Bereich
End If
If Not IsArray(ZusKrit) Then
If CBool(ZusKrit) Then Set NoErrRange = tmpR(0)
Else: Set NoErrRange = tmpR(0)
End If
Set tmpR(0) = Nothing: Exit Function
End If
End With
hasCrits = 2 * CInt(nurVisZ) Xor CInt(IsArray(ZusKrit))
If CBool(hasCrits Mod 2) Then
If TypeName(ZusKrit) = "Range" Then
Set zK = ZusKrit: cct = zK.Columns.Count: rct = zK.Rows.Count: cif = 1: rif = 1
Else: On Error Resume Next
If IsError(LBound(ZusKrit, 2)) Then
If Bereich.Columns.Count = 1 Then _
ZusKrit = WorksheetFunction.Transpose(ZusKrit)
ElseIf Bereich.Rows.Count = 1 Then
ZusKrit = WorksheetFunction.Transpose(ZusKrit)
End If
If IsError(LBound(ZusKrit, 2)) Then
On Error GoTo ex: cif = LBound(ZusKrit)
cct = UBound(ZusKrit) + 1 - cif: rct = 1
Else: On Error GoTo ex
rif = LBound(ZusKrit, 1): rct = UBound(ZusKrit, 1) + 1 - rif
cif = LBound(ZusKrit, 2): cct = UBound(ZusKrit, 2) + 1 - cif
End If
End If
On Abs(Bereich.Columns.Count  cct Or Bereich.Rows.Count  rct) GoTo ex
Else: If Not CBool(ZusKrit) Then hasCrits = cxFalse
End If
For Each xZ In Bereich
If Not IsError(xZ) Then
Select Case hasCrits
Case cxCTrue
GoSub rt: GoSub vz
If Not (tmpR(1) Is Nothing Or tmpR(2) Is Nothing) Then Set tmpR(0) = tmpR(1)
Case cxFalse: Set tmpR(0) = xZ
Case cxTrue
rt:             If Not zK Is Nothing Then
If CBool(zK.Cells(rix + rif, cix + cif)) Then Set tmpR(1) = xZ
ElseIf rct = 1 Then
If CBool(ZusKrit(cix + cif)) Then Set tmpR(1) = xZ
ElseIf CBool(ZusKrit(rix + rif, cix + cif)) Then
Set tmpR(1) = xZ
End If
If hasCrits = cxCTrue Then Return Else Set tmpR(0) = tmpR(1)
Case cxAsUsed
vz:             If Not (xZ.EntireRow.Hidden Or _
xZ.EntireColumn.Hidden) Then Set tmpR(2) = xZ
If hasCrits = cxCTrue Then Return Else Set tmpR(0) = tmpR(2)
End Select
If Not tmpR(0) Is Nothing Then
If Not NoErrRange Is Nothing Then
Set NoErrRange = Union(NoErrRange, tmpR(0))
Else: Set NoErrRange = tmpR(0)
End If
End If
End If
If CBool(hasCrits Mod 2) Then _
cix = (cix + 1) Mod cct: rix = rix - CInt(cix = 0)
For tix = LBound(tmpR) To UBound(tmpR): Set tmpR(tix) = Nothing: Next tix
Next xZ
ex: Set zK = Nothing
End Function
Als Fehler erscheint: "Fehler beim Kompilieren: Mehrdeutiger Name: cxTriState".
Ich kenne mich mit VBA kaum aus, komme daher selbst nicht drauf, was ich im Code anpassen müsste.
VG, Kisska
Anzeige
hat sich erledigt => klappt alles :)
08.04.2019 21:11:18
Kisska
Ich kam endlich drauf :) Wie der Fehler besagte, gab es bei mir mehrdeutige Namen im Code. Ich hatte 2 Codes, der eine im Modul 1 für Fall 1 und im Modul 2 für Fall 2.
Danke Luc für die Hilfe!
VG, Kisska
Bitte sehr! Gratuliere, ...
08.04.2019 22:44:29
Luc:-?
…Kisska! ;-)
Ja, gleiche Namen aller 5 ProzedurArten und auch die von Type- und Enum-Anweisungen (-Deklarationen) dürfen nur 1× pro VBA-Pro­jekt auftreten. Ich halte auch Letztere in einem AddIn. Sie stehen damit auch allen Prozeduren zV, die in einem separaten VBA-Projekt vorhanden sind, das aber einen Verweis auf das AddIn trägt (VBE-Menü Extras - Verweise). Und cxTriState wird auch von VJoin und VSplit benutzt.
Übrigens kann man mit allen 4 UDFs auch noch mehr anfangen, wobei NoErrRange keinen ggf erzeugten diskontinuierlichen Bereich direkt auf einen ZellBereich ausgeben kann. Der muss in diesem Fall immer erst mit einer dafür geeigneten Xl-Fkt bzw UDF normalisiert wdn, da seine Ergebnisse stets wie bei INDIREKT und ggf auch bei INDEX ObjektBezüge sind. DataSet kann zwar nur mit 2 Vektoren operieren, die können aber ebenso auch diskontinuierliche Bereiche sein. Außerdem sind mit denen (auch bei ungleicher Elemente­An­zahl) dann nahezu alle MengenOperationen möglich → ein- und zweiseitige DifferenzMengen, Vereinigungs- und SchnittMengen ihrer Elemente, im Ergebnis allerdings nur als Werte, nicht als ObjektBezüge.
Luc :-?
Anzeige
danke!
09.04.2019 00:13:47
Kisska
Danke Luc für die weiterführende Erklärung!
Die UDFs waren mir bislang verborgen geblieben. Interessant, was man damit so alles erreichen kann.
Es ist schon erstaunlich, was ihr Helfer könnt, Hut ab!
VG, Kisska
AW: Werte aus mehreren Zellen in eine zusammenführen
06.04.2019 07:32:53
Hajo_Zi
Die Datei konnte nicht gefunden werden.
VBA bevorzugt?
das geht nicht, da eine XLSX Datei kein Makro enthalten kann.
Ich sehe keinen Grund eine Datei 2x zu speichern. Ich führe keine Liste unter welchem Dateinamen ich die Datei gespeichert habe.

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
Leg dir 'ne Brille zu, Hajo! :-] owT
06.04.2019 09:49:34
Luc:-?
:-?
Dafür hat er keinen Textbaustein vorbereitet! owT
06.04.2019 16:29:16
SF
...und die vorhandenen wdn zum Selbstzweck! owT
06.04.2019 16:44:20
Luc:-?
:-?
eine weitere VBA-Lösung für Fall 1
08.04.2019 22:35:12
Kisska
Hallo zusammen,
auch wenn ich die Lösung mit UDFs von Luc bereits hab, wollte ich mit euch eine alternative Lösung teilen, die ich hier gefunden habe:
http://www.office-loesung.de/ftopic277294_0_0_asc.php

Diese Lösung funktioniert wunderbar für Fall 1, leider aber nicht für Fall 2 - wenn man den Bereich so definiert: B12;B14;B16;B18.
VG, Kisska
Tja, das geht schon auch für Fall2, ...
09.04.2019 00:57:14
Luc:-?
…Kisska,
nur wird in dieser UDF die eigentliche Gleichheitsprüfung quasi in die Fml verlagert und auch nicht die EinzelArgumente in die Bestand­Teile ihrer Elemente zerlegt. Folglich wdn Kombinationen von EinzelSymbolen als GesamtText behandelt, wodurch der dann nicht aus­sortiert wird. Das wäre mit VJoin zwar möglich, aber hier nur, wenn die Kombinationen vor den EinzelSymbolen stehen:
Fall 2c - D20:=TEIL(VJoin(DataSet((B16;B18;B12;B14);B12;;-1;1);ZEICHEN(10);1);2;99)
Eine fktionierende Fml auf der Basis der UDF VERKETTENTEXT, die so wohl auch durch die neue Xl-Fkt TEXTVERKETTEN ersetzt wdn könnte, dürfte unter Zuhilfenahme von VSplit wohl so aussehen (singulare MatrixFml):
{=VERKETTENTEXT(ZEICHEN(10);WENN(VERGLEICH(VSplit(VERKETTENTEXT(ZEICHEN(10);B12;B14;B16;B18); ZEICHEN(10));VSplit(VERKETTENTEXT(ZEICHEN(10);B12;B14;B16;B18);ZEICHEN(10));0)=SPALTE(A:F); VSplit(VERKETTENTEXT(ZEICHEN(10);B12;B14;B16;B18);ZEICHEN(10));"")) }
Da es sich hier ebenfalls um eine UDF handelt, würde ich vorschlagen, bei meiner Lösung zu bleiben oder ganz auf die neuen Xl-Fktt umzu­steigen, wobei die Fml ggf länger würde.
Morhn, Luc :-?
Anzeige
ist einfacher ... noch eine Frage/Bitte
09.04.2019 01:41:05
Kisska
Hi Luc,
ich hab gerade festgestellt, dass die Lösung von ransi auch für den Fall funktioniert und der Code ist recht kurz:
Option Explicit
Public Function Verketten3(ParamArray Bereiche()) As String
Dim MyDic As Object
Dim Zelle As Range
Dim Bereich As Range
Dim Arr
Dim L As Long
Dim I As Integer
Set MyDic = CreateObject("Scripting.Dictionary")
For I = LBound(Bereiche) To UBound(Bereiche)
For Each Zelle In Bereiche(I)
Arr = Split(Zelle.Value, ", ")
For L = LBound(Arr) To UBound(Arr)
MyDic(Arr(L)) = 0
Next
Next
Next
Verketten3 = Join(MyDic.keys, ", ")
End Function
", " muss man noch druch chr(10) ersetzen und
in B6: =Verketten3(B3:B5) für Fall 1
in B20: =Verketten3(B12;B14;B16;B18) für Fall 2
Ziemlich perfekt wie ich finde :-)
Ich frage mich ob man für Fall 1 noch ein Schnick-Schnack einbauen könnte, und zwar dass der zu verkettende Bereich automatisch durch VBA definiert wird und nicht durch manuelle Festlegung...
...Ich habe immer gleichen Aufbau meiner Tabellen:
1. Tabellen-Zeile enthält Überschrift, letzte Tabellen-Zeile enthält das Ergebnis, nämlich Verkettung der Zellen zwischen 1. und letzte Zeile (ich nenne es Bereich).
Aktuell würde ich die Formel aus B6 kopieren und dann in die letzte Zeile der nächsten Tabelle einkopieren, dann manuell den Bereich anpassen bspw. würde die Formel statt 3 Zeilen, nur noch 2 Zeilen oder gar eine Zeile umfassenn.
Ich vermute, dass es möglich wäre, nach Einkopieren und Enter-Drücken, dass durch VBA eine Berechnung des Bereichs erfolgt. Ausgehend von der letzten Zeilen, müsste man die Zeilen nach oben zählen und zwar bis zur nächsten leeren Zelle oberhalb Überschrift und dann - 2, damit die leere Zelle oberhalb der Überschrift und die Überschrift selbst nicht zum Bereich mit gezählt werden.
In meiner Datei ist die erste Zelle oberhalb jeder Tabellen-Spalte leer.
Zudem habe ich eine Haupttabelle, wo alle Ergebisse zusammengetragen bzw. verketten werden. Bei dieser Tabelle gibt es nur Überschriften und den Bereich ohne "die letzte Zeile", also es sind nur 2 Zeilen. Hier greift bei mir Fall 2. D.h. hier darf keine Berechnung wie oben erfolgen. Die Berechnung darf erst bei mind. 3 Zeilen greifen (eine Überschrift-Zeile, eine Ergebnis-Zeile und ein Bereich bestehend aus nur einer Zeile.
Luc, meinst du so eine automatische Bereichs-Ermittlung und - Anpassung ist möglich? Falls ja und es nicht kompliziert bzw. zeitaufwendig ist, könntest du mir bei der Erweiterung des Codes oben helfen?
VG, Kisska
Anzeige
Na, jetzt hast du wohl 'Blut geleckt', ...
09.04.2019 03:36:12
Luc:-?
…Kisska;
prinzipiell lehne ich es ab, fremde UDFs an irgendwelche speziellen Bedingungen anzupassen. Da hätte ja auch schon der Autor dran denken können. Die Mühe gebe ich mir ja letztlich auch! Und ein Binde- oder TrennZeichen in einem ExtraArgument frei wählbar zu machen, ist ja wohl die einfachste Übung und auch bei zugrunde liegenden vbFktt der Fall. Aber da das nun wirklich ein Klacks ist, hier doch mal gemacht, mit modifiziertem Namen, um das wenigstens etwas vom Original abzugrenzen:
Function Verketten4(ByVal BindeZ, ParamArray Bereiche()) As String
Dim MyDic As Object
Dim Zelle As Range
Dim Bereich As Range
Dim Arr
Dim L As Long
Dim I As Integer
Set MyDic = CreateObject("Scripting.Dictionary")
For I = LBound(Bereiche) To UBound(Bereiche)
For Each Zelle In Bereiche(I)
Arr = Split(Zelle.Value, BindeZ)
For L = LBound(Arr) To UBound(Arr)
MyDic(Arr(L)) = 0
Next
Next
Next
Verketten4 = Join(MyDic.keys, BindeZ)
End Function
Die UDF ist deshalb sehr schnell, weil sie ein Dictionary-Objekt verwendet, das jeden Schlüsselwert (key) nur einmal speichern kann. Da hier nur die Keys interessieren, darf der sonst zugehörige Wert 0 sein.
Was deine zusätzlichen Ideen betrifft …
1. Ja, das ist möglich, …
2. aber nicht Aufgabe einer UDF, die im Rahmen ihrer Aufgabe möglichst universell sein sollte, um unterschiedliche, aber ähnliche Situationen abzudecken; …
3. das wäre eher Aufgabe einer normalen Subprozedur, die auch diese UDF aufrufen könnte, um die jeweilige TeilAufgabe zu behandeln. Das wäre auch sicherer in Bezug auf vorab (per Konstante oder benanntem Xl-Bereich) oder per ZellAuswahl festgelegte Bereiche.
Allerdings muss ich dich enttäuschen, solche Arbeiten übernehme ich nur ausnahmsweise alle paar Jahre mal (abhängig vom Umfang), denn das fällt unter ProjektAutomatisierung. Mein Interesse gilt eher UDFs und unbekannten Xl-Berechnungseffekten.
In diesem Sinne viel Erfolg, falls du es selbst versuchen willst (es kann sich lohnen → Zeitersparnis! ← aber mach dich nicht überflüssig, ist schon manchen passiert)!
Morhn, Luc :-?
AW: Na, jetzt hast du wohl 'Blut geleckt', ...
09.04.2019 14:15:14
Kisska
Hallo Luc,
deine Anpassung führt bei mir zu: "#NAME?"
Ich kann ja im Code direkt das gewünschte Zeichen eingeben, daher kein Problem.
Danke für die Hilfestellung bzgl. automatische Bereichs-Ermittlung!
VG, Kisska
Bei mir nicht! Hast du die Namensänderung ...
09.04.2019 15:12:58
Luc:-?
…beachtet, Kisska?
Alles was veränderbar ist, sollte einer UDF als Argument übergebbar sein. Das beachten Pgmmier-Profis wie bspw ransi meist nicht, denn für die sind Fktt in 1.Linie PgmmierHilfsmittel. Das muss bei Fktt für den ZellFml-Einsatz natürlich anders sein. Außerdem ist gerade ransi für Augenblickslösungen bekannt, die keinen Anspruch auf universellere Dauergültigkeit erheben, sondern einfach nur schnell, quasi aus Zeitvertreib geschrieben wdn. Er ist da allerdings nicht der Einzige…
Ansonsten kannst du es halten wie du willst, da es sich bei dem Ganzen doch eher um eine Komplett-Projekt-Lösung handelt. Viel mehr als das wirst du mit deiner Variante dann aber auch nicht erreichen. Stell dir vor, du müsstest bei jeder Xl-Fkt in den QuellCode eingreifen, wenn du etwas geringfügig Anderes machen wolltest als ursprünglich fest vorgegeben wurde! Das ist nicht mal bei der zwischendurch benutzten vbFkt Split und der zum Schluss, Join, so. Denen kann man nämlich einen beliebigen Delimiter als 2.Argument übergeben (fehlendes entspricht Leerzeichen).
Auf einen speziellen Einsatz sind idR ZellFmln zugeschnitten, obwohl hier manche auch weiter denken, was nicht unbedingt verkehrt sein muss…
Luc :-?

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige