Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1452to1456
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
VBA: Text entfernen ab x.ten Leerzeichen
18.10.2015 17:07:24
Dieter(Drummer)
Hi Spezialisten
ich suche eine VBA Lösung, die folgendes ermöglicht.
In einer markierten Zelle ist Text, z.B. fdgdtr hdhd h&hrz 3456
Mein VBA Wunsch ist, dass der Text von links vor dem ersten Leerzeichen im Text,
oder vor dem zweiten, oder vor dem dritten usw Leerzeichen komplett gelöscht wird.
Ergebnis Beispiel 1 hdhd h&hrz 3456
Ergebnis Beispiel 2 h&hrz 3456
Ergebnis Beispiel 3 3456 usw.
Der Text kann auch länger mit mehr Leerzeichen drin sein.
Evtl kann eien Abfrage durch das Makro kommen, ab dem wievielten
Leerzeichen im Text alles (links) entfernt werden soll.
Mir ist bewusst, dass ich mir da viel wünsche. Leider habe ich keine
passende Lösung im Netz gefunden, oder ich habe da den falschen Suchbegriff gewählt.
Freue mich, wenn es da eine Möglichkeit gibt.
Gruß und Danke für evtl. Lösung, Dieter(Drummer)

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Text entfernen ab x.ten Leerzeichen
18.10.2015 17:37:51
Peter
Hallo Dieter,
ich würde den Text am Leerzeichen splitten und dann je nach Anforderung nur noch die verbleibenden Teile aus dem Split-Ergebnis zurück kopieren.
Gruß Peter

AW: VBA: Text entfernen ab x.ten Leerzeichen
18.10.2015 17:53:41
Dieter(Drummer)
Danke Peter,
diese Lösung habe ich schon händisch gemacht, aber es ist sehr aufwendig, da ich mehr als 1000 Zellen habe,in denen ich das händisch machen muss. Eine VBA Lösung würde mir viel arbeit ersparen.
Wäre toll, wenn es doch eine VBA Lösung gäbe.
Gruß, Dieter(Drummer)

das geht auch ohne VBA
18.10.2015 17:58:44
Matthias
Hallo
 B
1fdgdtr hdhd h&hrz 3456
2hdhd h&hrz 3456
3h&hrz 3456
43456

Formeln der Tabelle
ZelleFormel
B2=GLÄTTEN(TEIL(B1;FINDEN(" ";B1);LÄNGE(B1)))
B3=GLÄTTEN(TEIL(B2;FINDEN(" ";B2);LÄNGE(B2)))
B4=GLÄTTEN(TEIL(B3;FINDEN(" ";B3);LÄNGE(B3)))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias

Anzeige
AW: Das wäre auch möglich, aber
18.10.2015 18:15:41
Dieter(Drummer)
Hi Matthias,
Danke erstmal für den Hinweis. So müsste ich aber je Zelle 3 Formeln hintereinander nutzen und wenn es noch mehr Leerzeichen mit Text gibt, wird das einfach zu aufwendig.
Wäre immer moch an einer VBA Lösung interessiert.
Gruß, Dieter(Drummer)

Ja, das gefällt mir gut :-) kwT
18.10.2015 18:27:13
Matthias

AW: Das ist schon eine tolle Lösung, aber
18.10.2015 18:30:23
Dieter(Drummer)
Hi Peter,
das ist schon eine Prima Lösung. Danke. Kannst du noch das Makro so abändern, dass im Formalar , bei bei Ausgangstext eine zu aktivierende Zelle zur möglich ist, und der Inhalt dafür benutzt wird?
Falls es nicht möglich ist, nehme ich gerne deine jetzige Variante.
Gruß, Dieter(Drummer)

Anzeige
AW: Habe gerade gemerkt, ...
18.10.2015 18:37:24
Dieter(Drummer)
... dass, wenn ich die aktivierte Zelle aktiviere und dann kopieren aktiviere, kann den Inhalt in das Formular übernehmen. Das ist schin prima. Geht noch eine Möglichkeit, das Ergebnis dann in die NEU aktivierte Zelle einzufügne?
Ich hoffe ich bin nicht zu unverschämt mir meinen Wünschen. Das bisgerige Ergebnis ist schon toll.
Bisher einfach mal Danke.
Gruß, Dieter(Drummer)

AW: Sorry, für Schreibfehler :-)
18.10.2015 18:49:30
Dieter(Drummer)

AW: Das Ergebnis in neue Zelle einfügen
18.10.2015 19:18:59
Dieter(Drummer)
Hi Peter,
was muss ich am Formular oder im Formular-Makro ändern, damit ich das Ergebnsi in eine neu zu aktivierende Zelle einfügen kann?
Dennoch Dank für die tolle bisherige Lösung.
Gruß, Dieter(Drummer)

Anzeige
bevor noch mehr Beiträge kommen...
18.10.2015 19:36:53
robert
..probier mal das.
https://www.herber.de/bbs/user/100859.xlsm
Ansonsten kann ich immer wieder nur sagen:RECHERCHE zB. Textbox in Tabelle, oder so ähnlich
Gruß vom 72er an den 71er :-)

AW: Danke Robert,das ist prima!
18.10.2015 20:07:37
Dieter(Drummer)
Hi Robert,
herzlichen Dank für die erweiterte Lösung von Peter. Nun ist es vollbracht und es ist die perfekte Lösung. Ich bewundere die Spezialisten, die so etwas schaffen.
Gruß und einen erholsamen Abend an den 72er, vom 71er :-), Dieter(Drummer)

Dito ! owT
18.10.2015 20:09:29
robert

AW: VBA: Text entfernen ab x.ten Leerzeichen
18.10.2015 19:36:23
Daniel
Hi
als Formel so:
in A1 steht der vollständige Text
in B1 steht die Nummer es Leerzeichens, bis zu dem der Text gelöscht werden soll:
statt dem "|" kannst du auch ein anderes Zeichen nehmen, es darf nur ansonsten im Text nicht vorkommen.
=TEIL(A1;FINDEN("|";WECHSELN(A1;" ";"|";B1))+1;99999) Gruss Daniel

Anzeige
AW: Das ist auch eine gute Lösung, aber
18.10.2015 20:01:28
Dieter(Drummer)
Danke Daniel.
Das ist eine gute Lösung, mit der ich auch arbeiten kann. Die VBA Lösung mit dem Ergebnis einfügen in eine neue Zelle, wäre natürlich auch gut.
Danke dir nochmal und käme mit deiner Formellösung schon weiter.
Gruß und einen erholsamen Abend, Dieter(Drummer)

AW: An alle Beteiligten, herzlichen Dank. owt
18.10.2015 20:20:33
Dieter(Drummer)

Auf ein Neues, nur andersrum! ;-)
19.10.2015 14:06:31
Luc:-?
Hallo, Dieter & Co;
Daniel hatte schon den 'Klassiker' abgeliefert, während Mattis Lösung sukzessiv ist und deshalb nicht in das im Folgenden dargestellte Schema passt:
 ABCDEFG
1Textab TrZ'klassisch'mit UDF(FINDEN,INDEX,TEIL,WECHSELN,WENN,WENNFEHLER,ZEILE; UDF: Pick,Splint,VJoin,VPairs,VSplit)
2fdgdtr hdhd h&hrz 34560fdgdtr hdhd h&hrz 3456fdgdtr hdhd h&hrz 3456fdgdtr hdhd h&hrz 3456fdgdtr hdhd h&hrz 3456fdgdtr hdhd h&hrz 3456
3fdgdtr hdhd h&hrz 34561hdhd h&hrz 3456hdhd h&hrz 3456hdhd h&hrz 3456hdhd h&hrz 3456hdhd h&hrz 3456
4fdgdtr hdhd h&hrz 34562h&hrz 3456h&hrz 3456h&hrz 3456h&hrz 3456h&hrz 3456
5fdgdtr hdhd h&hrz 3456334563456345634563456
6ZellFormeln:B2[:B5]:=REST(ZEILE(A1)-1;LÄNGE(A2)-LÄNGE(WECHSELN(A2;" ";""))+1)
7C2[:C5]:=WENNFEHLER(--TEIL(A2;FINDEN("|";WECHSELN(A2;" ";"|";B2))+1;99);TEIL(A2;WENN(B2<1;0;FINDEN("|";WECHSELN(A2;" ";"|";B2)))+1;99))
8D2:D5: {=VSplit(TEIL(A2;FINDEN("#"&B2:B5;VJoin(VPairs("#"&B2:B5;VSplit(A2);-9);""))-B2:B5;99);"~";1)}F2[:F5]:=VSplit(VJoin(Splint(A2;;B2+1));"~";1)
9E2[:E5]:=VSplit(TEIL(A2;FINDEN(INDEX(VSplit(A2);B2+1);A2);99);"~";1)G2[:G5]:=VSplit(Pick(B2+1&":";A2;" ");"~";1)

Hier ist der 'Klassiker' so gestaltet, dass er auch mit 0, d.h. ohne TextKürzung, umgehen kann und außerdem numerische RestTexte in echte Zahlen umwandelt. Ohne das letzte Feature würde nur die Notation des 2.Arguments von WENNFEHLER als selbständige Fml aus­reichen (ohne 0-Berücksichtigung käme quasi Daniels Fml heraus). Das TrZ (Trennzeichen, hier Leerzeichen) könnte man b.Bed auch noch vari­abel in einer Zelle vorgeben und auf diese in den Fmln verweisen.
Die UDF-Lösungen (einige UDFs sind im Archiv auffindbar) bilden einen Ausschnitt der Möglichkeiten ab, die ich mir im Laufe von ca 13 Jahren geschaffen habe. Dabei war die „InitialZündung“ die UDF Pick, die es in QlikView gibt (nicht völlig mit XlFkt TEIL identisch!) und die ich in Xl auch zV haben wollte, dabei aber noch erweitert hatte.
Die äußere Anwendung von VSplit mit Arg2="~" dient hier nur der Umwandlung numerischer Werte in echte Zahlen, wobei nicht gesplit­tet wird, weil ~ nicht im Text vorkommt.
Auf die ZahlUmwandlungsidee hat mich die Darstellung des von Matti verwendeten AbbildungsTools gebracht, obwohl seine Fmln nicht wirklich echte Zahlen erzeugen (eine Macke dieses Tools, die mein altes leider auch hat → liegt an zu formaler Umsetzung der Xl-Dar­stel­lungs­standards für Text und Zahl).
(Übrigens, der Text in E1:G1 wurde ursprünglich auch mit einer Fml erzeugt.)
Gruß, Luc :-?
Besser informiert mit …
Anzeige

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige