VBA: Text entfernen ab x.ten Leerzeichen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
TextBox
Bild

Betrifft: VBA: Text entfernen ab x.ten Leerzeichen
von: Dieter(Drummer)
Geschrieben am: 18.10.2015 17:07:24

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)

Bild

Betrifft: AW: VBA: Text entfernen ab x.ten Leerzeichen
von: Peter Feustel
Geschrieben am: 18.10.2015 17:37:51
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

Bild

Betrifft: AW: VBA: Text entfernen ab x.ten Leerzeichen
von: Dieter(Drummer)
Geschrieben am: 18.10.2015 17:53:41
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)

Bild

Betrifft: das geht auch ohne VBA
von: Matthias L
Geschrieben am: 18.10.2015 17:58:44
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

Bild

Betrifft: AW: Das wäre auch möglich, aber
von: Dieter(Drummer)
Geschrieben am: 18.10.2015 18:15:41
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)

Bild

Betrifft: AW: VBA: Text entfernen ab x.ten Leerzeichen
von: Peter Feustel
Geschrieben am: 18.10.2015 18:20:00
Hallo Dieter,
eine kleine Anwendung zum Spielen.
Gruß Peter
https://www.herber.de/bbs/user/100857.xlsm

Bild

Betrifft: Ja, das gefällt mir gut :-) kwT
von: Matthias L
Geschrieben am: 18.10.2015 18:27:13


Bild

Betrifft: AW: Das ist schon eine tolle Lösung, aber
von: Dieter(Drummer)
Geschrieben am: 18.10.2015 18:30:23
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)

Bild

Betrifft: AW: Habe gerade gemerkt, ...
von: Dieter(Drummer)
Geschrieben am: 18.10.2015 18:37:24
... 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)

Bild

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


Bild

Betrifft: AW: Das Ergebnis in neue Zelle einfügen
von: Dieter(Drummer)
Geschrieben am: 18.10.2015 19:18:59
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)

Bild

Betrifft: bevor noch mehr Beiträge kommen...
von: robert
Geschrieben am: 18.10.2015 19:36:53
..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 :-)

Bild

Betrifft: AW: Danke Robert,das ist prima!
von: Dieter(Drummer)
Geschrieben am: 18.10.2015 20:07:37
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)

Bild

Betrifft: Dito ! owT
von: robert
Geschrieben am: 18.10.2015 20:09:29


Bild

Betrifft: AW: VBA: Text entfernen ab x.ten Leerzeichen
von: Daniel
Geschrieben am: 18.10.2015 19:36:23
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

Bild

Betrifft: AW: Das ist auch eine gute Lösung, aber
von: Dieter(Drummer)
Geschrieben am: 18.10.2015 20:01:28
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)

Bild

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


Bild

Betrifft: Auf ein Neues, nur andersrum! ;-)
von: Luc:-?
Geschrieben am: 19.10.2015 14:06:31
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 …

 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA: Text entfernen ab x.ten Leerzeichen"