Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1540to1544
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 mit zusätzlichen Zeichen VBA

Verketten mit zusätzlichen Zeichen VBA
13.02.2017 14:24:38
Martin
Hi Zusammen,
wir verwenden in einem ActionScript mehrere Arrays. Da eine Änderung für uns aber sehr umständlich ist, möchte ich die Daten in Excel erstellen und mir das Array am Ende Ausgeben lassen.
Prinzipiell ist das ja nichts anderes als verketten. Allerdings ist das mit Formel in dem Fall recht mühsam.
In der Spalte B steht der Name des Arrays, zb.: var arr1:Array = new Array(
In den Folgespalten stehen dann die einzelnen Werte.
In der Spalte A steht ein Zusatzzeichen oder nichts. (z.B. ein Anführungszeichen)
Wenn nun nichts in der Spalte A steht, soll die Zelle in B mit den Folgezellen verkettet werden.
Wenn ein Sonderzeichen in Spalte A steht, sollen die Werte in den Zellen mit dem Sonderzeichen umschlossen werden. z.B. "Wert in der Zelle"
Zwischen den Werten muss immer ein Beistrich stehen.
Wenn die letzte Spalte erreicht wurde, soll das Array mit einem ); abgeschlossen werden.
Beispiel ohne "":
var arr1:Array = new Array(0, 1, 2, 3, 4, 5);
Beispiel mit "":
var arr2:Array = new Array("btn0", "btn1", "btn2", "btn3", "btn4", "btn5");
Die Anzahl der Spalten wird sich immer wieder ändern, die Zeilen werden aber meißt gleich bleiben.
Hier eine Beispieldatei wie der Aufbau vom Prinzip her ist.
https://www.herber.de/bbs/user/111447.xlsx
Ich hoffe ihr könnt mir auch diesmal wieder weiterhelfen!
Danke schonmal im voraus und lg
Martin

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verketten mit zusätzlichen Zeichen VBA
13.02.2017 15:30:39
Matthias
Hallo,
was genau ist deine Frage? Meiner Meinung nach brauchst du zwei Do-Loop-Schleifen. Eine über die Zeilen und innerhalb dieser dann über alle Spalten. Vor bzw. nach den einzelnen Zell-Werten kannst du immer den Wert aus Spalte A setzen, da dieser im Zweifel nix ist. Von daher erübrigst sich da meiner Meinung nach eine If-Abfrage.
AW: Verketten mit zusätzlichen Zeichen VBA
13.02.2017 15:30:56
Matthias
Hallo,
was genau ist deine Frage? Meiner Meinung nach brauchst du zwei Do-Loop-Schleifen. Eine über die Zeilen und innerhalb dieser dann über alle Spalten. Vor bzw. nach den einzelnen Zell-Werten kannst du immer den Wert aus Spalte A setzen, da dieser im Zweifel nix ist. Von daher erübrigst sich da meiner Meinung nach eine If-Abfrage.
Gruß,
Matthias
Anzeige
AW: Verketten mit zusätzlichen Zeichen VBA
13.02.2017 15:44:48
Martin
Hi Matthias!
Danke für deine Antwort.
Da ich leider ein ziemlicher Noob mit VBA bin, hatte ich gehofft es gibt da eine für euch einfache Lösung bei der ihr mir helfen könnt.
(Das ActionScript ist übrigends auch nicht von mir)
Ich hab versucht mit dem VBA Rekorder verschiedene Sachen aufzunehmen, doch leider hat nichts funktioniert... :(
Hab auch schon das Inet durchsucht, wurde aber leider nicht fündig.
Hast du vielleicht einen Lösungsansatz für mein Problem?
Danke und lg
Martin
AW: Verketten mit zusätzlichen Zeichen VBA
13.02.2017 15:52:28
Matthias
Hallo Martin,
klar gibt es hierzu einfache Lösungen. Nur dient ein Forum meiner Meinung nach als Hilfe zur Selbsthilfe (http://www.excel-ist-sexy.de/hilfe-zur-selbsthilfe/).
Einen Lösungansatz habe ich dir schon beschrieben - Zum Thema Schleifen findest du https://upload.wikimedia.org/wikibooks/de/a/a4/Excel_VBA.pdf was unter Kapitel 9
Anzeige
AW: Verketten mit zusätzlichen Zeichen VBA
13.02.2017 17:06:42
Martin
Hi Matthias,
danke nochmal für deine Antwort!
Du hast sicher recht aber es ist nicht so, dass ich es nicht versucht hätte aber kein code den ich im Netz gefunden habe kann ich so anpassen das er für mich funktioniert.
Am ehesten hat der geklappt (Hab ich im Netz gefunden):
Sub verketten()
Dim str As String
Dim i As Long
Dim z As Long
With Worksheets("Eingabe")
For z = 2 To .Cells(Rows.Count, 2).End(xlUp).Row
For i = 2 To .Cells(Rows.Count, 2).End(xlUp).Row
str = str & .Cells(z, i).Value & ", "
Next i
.Cells(z, 10).Value = str
Next z
End With
End Sub
allerdings komm ich nicht mit den Anführungszeichen nicht weiter und der Code macht prinzipiell nicht wirklich das was ich will. Hab mich schon ein paar Stunden damit abgequält bis ich hier die Frage gestellt habe.
Ich brauche also wirklich eure hilfe da ich selbst keine Chance mehr habe.
Ich hoffe du verstehst.
LG
Martin
Anzeige
Bei Texten fehlen mitunter "", firmus! owT
13.02.2017 19:04:12
Luc:-?
:-?
AW: Bei Texten fehlen mitunter "", wieso?
13.02.2017 19:34:26
firmus
Hi Luc,
die Massgabe war,
-Wenn ein Sonderzeichen in Spalte A steht, sollen die Werte in den Zellen mit dem Sonderzeichen umschlossen werden. z.B. "Wert in der Zelle"-
Gemäß dieser Instruktion werden nicht grundsätzlich bei Texten "" ergänzt.
Es wird das Zeichen aus Ax genommen und eingefügt.
Meine Interpretation falsch?
Gruß
Firmus
Ich fürchte, JA, denn das soll ein Script wdn, ...
13.02.2017 20:25:23
Luc:-?
…firmus,
also ein PgmTeil, da müssen alle Texte (pro Zelle) einzeln als solche gekennzeichnet wdn. Leider wurde das Ziel-Bsp in der Bsp-Datei nicht bis zum Ende ausgeführt, aber die TextBehandlung erkennt man trotzdem, nur nicht die der Wahrheitswerte.
Gruß, Luc :-?
Anzeige
Normalerweise könnte hierfür die neue ...
13.02.2017 19:01:25
Luc:-?
…Xl-Fkt TEXTVERKETTEN verwendet wdn (ab deiner Version im Abonnement), Martin,
aber bei der müsstest du noch einiges am Ergebnis nachbessern. Ähnlich sieht's mit der letzt­publi­zierten Version 1.4 meiner UDF VJoin aus. Die bisher unpubli­zierte Version 1.5 enthält zusätzlich eine weitere Möglichkeit, die allerdings auf Bildung von Matrix­Konstanten in TextForm abstellt und zB so etwas erzeugen kann:
{0,1,2,3,4,5;"btn0","btn1","btn2","btn3","btn4","btn5";"Comp","Comp","Comp","Comp","Comp","Comp";
"Aufgabe 1","Aufgabe 2","Aufgabe 3","Aufgabe 4","Aufgabe 5","Aufgabe 6";
"Frage","Frage","Frage","Antwort","Antwort","Antwort";
"Erklärung","Erklärung","Erklärung","Erklärung","Erklärung","Erklärung";
"Detailtext","Detailtext","Detailtext","Detailtext","Detailtext","Detailtext";
"out","in","out","out","out","out";0,1,2,3,4,4;0,-1,-1,-1,-1,0;2,1,1,1,4,0;0,1,1,1,1,1;
"false","false","false","false","false","false";"","","","Zusatztext","","";"false","true","true","true","true","false"}
Mit einigen ZusatzOperationen wäre dann auch das möglich:
var arr1:Array = new Array(0,1,2,3,4,5)
var arr2:Array = new Array("btn0","btn1","btn2","btn3","btn4","btn5")
var arr3:Array = new Array("Comp","Comp","Comp","Comp","Comp","Comp")
var arr4:Array = new Array("Aufgabe 1","Aufgabe 2","Aufgabe 3","Aufgabe 4","Aufgabe 5","Aufgabe 6")
var arr5:Array = new Array("Frage","Frage","Frage","Antwort","Antwort","Antwort")
var arr6:Array = new Array("Erklärung","Erklärung","Erklärung","Erklärung","Erklärung","Erklärung")
var arr7:Array = new Array("Detailtext","Detailtext","Detailtext","Detailtext","Detailtext","Detailtext")
var arr8:Array = new Array("out","in","out","out","out","out")
var arr9:Array = new Array(0,1,2,3,4,4)
var arr10:Array = new Array(0,-1,-1,-1,-1,0)
var arr11:Array = new Array(2,1,1,1,4,0)
var arr12:Array = new Array(0,1,1,1,1,1)
var arr13:Array = new Array(false,false,false,false,false,false)
var arr14:Array = new Array("","","","Zusatztext","","")
var arr15:Array = new Array(false,true,true,true,true,false)
Fml: =B2&WECHSELN(WECHSELN(WECHSELN(TEIL(VJoin(C2:H2;",";2);2;99);"}";")");"""false""";"false");"""true""";"true")
Aber danke für die Anregung. Ich werde mal ihr Pgm auf Darstellung von Wahrheitswerten (nicht als Text) ergänzen und ihrem Argument3=2 eine spezielle Behandlung des Ganzen bei Argument2=", " zuordnen. Dann käme der Script-Text idR nach­behand­lungs­frei fertig aus der Fml. Aber das wird wahrscheinl noch etwas dauern…
Gruß, Luc :-?
Besser informiert mit …
Anzeige
Ah, ich sehe nun, dass die Zeilen mit Texten ...
13.02.2017 20:46:44
Luc:-?
…in A gekennzeichnet sind, Martin;
dann solltest du auch mit TEXTVERKETTEN oder der Version 1.4 von VJoin zurechtkommen. Die Fml wird dann sogar kürzer: =B2&A2&VJoin(C2:H2;A2&", "&A2)&A2&")"
Feedback nicht unerwünscht! Luc :-?
AW: Ah, ich sehe nun, dass die Zeilen mit Texten ...
14.02.2017 08:53:10
Martin
Hi Luc :-?
Ich hab zwar keinen Schimmer was deine Funktion genau macht, aber sie funktioniert perfekt und macht genau das was ich will :)
VIELEN DANK für deine Hilfe!
Auch firmus danke für deine Formel und die Bemühung!
AW: Ah, ich sehe nun, dass die Zeilen mit Texten ...
14.02.2017 08:53:16
Martin
Hi Luc :-?
Ich hab zwar keinen Schimmer was deine Funktion genau macht, aber sie funktioniert perfekt und macht genau das was ich will :)
VIELEN DANK für deine Hilfe!
Auch firmus danke für deine Formel und die Bemühung!
Anzeige
Bitte sehr, gern geschehen! ;-)
14.02.2017 17:41:48
Luc:-?
Mit fehlendem 3.Argument basiert die UDF allein auf der vbFkt Join und fktioniert ähnlich wie die neue Xl-Fkt TEXTVERKETTEN, bietet aber mehr Möglichkeiten (s.Anmerkungen vor dem PgmCode).
Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige