Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Löschen Zelleninhalt außer letzte Zeichenkette
#1
Hi,


ich suche eine Lösung (Makro), um aus einer unbestimmten Anzahl von markierten Zellen den gesamten Inhalt abgesehen von der letzten Zeichenkette zu löschen.

Bsp.: Inhalt der Zelle ist "fla fsf fdasfe safd letzte,zeichenkette.2020". Nach z.B. Aktivierung des Makros bleibt in der Zelle "letzte,zeichenkette.2020" .

Gibt es da eine effiziente Lösung bzw. ein einfaches Makro etc. ?



Beste Grüße
Antwortento top
#2
Hi

mit Formel.
Code:
____|______________________A_____________________|____________B___________|C|D|E|F|G|H|
   1|fla fsf fdasfe safd letzte,zeichenkette.2020|letzte,zeichenkette.2020| | | | | | |
B1    =TEIL(A1;1+VERWEIS(6^6;FINDEN(" ";A1;SPALTE(1:1)));1000)

Gruß Elex
[-] Folgende(r) 1 Benutzer sagt Danke an Elex für diesen Beitrag:
  • TerraG
Antwortento top
#3
Sub Splitten()
Dim Trennung
Trennung = Split("fla fsf fdasfe safd letzte,zeichenkette.2020", " ")
Debug.Print Trennung(UBound(Trennung))
End Sub


Ergibt
letzte,zeichenkette.2020

Gruß Ralf

Ach so:
Wenn Du etwas konkreteres lesen möchtest, solltest Du eine Beispieldatei hochladen, in der Format und mögliche Inhalte ersichtlich sind.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Benutzer sagt Danke an RPP63 für diesen Beitrag:
  • TerraG
Antwortento top
#4
Hi,

Danke für die Anworten.

@Elex:
1. Was ist denn ein guter Weg das in ein Makro zu übertragen, sodass ich den Befehl direkt in mehreren Zellen anwenden kann und die Ergebnisse in die entsprechenden Zellen übertrage?
2. Ich muss das die Tage testen und gebe dann Rückmeldung

@RPP63:
Dein Code sieht mir jetzt danach aus als würde er genau nur den einen Beispieltext von mir trennen. Mir geht es aber um folgendes:
Nimm mal an Du hast 2000 Zellen mit beliebigem unterschiedlichem Text gefüllt und möchtest in jeder Zelle immer nur die letzte Zeichenkette beibehalten (wobei ich mit Zeichenketten jeden Textabschnitt getrennt durch ein Leerzeichen meine).

Bsp.: Zelle 1 "flerkj eralkjer Dashier", Zelle 2 " fenen öaljjk Jeneshier" -> Nach Markierung der Zellen und Anwendung des Makros soll übrig bleiben Zelle 1 "Dashier", Zelle 2 "Jeneshier".

LG
Antwortento top
#5
Hi,

ich würde das Problem so lösen:
Arbeitsblatt mit dem Namen 'Tabelle1'
AB
1flerkj eralkjer DashierDashier
2fenen öaljjk JeneshierJeneshier
3funktioniert auch mit noch mehr Leerzeichen - !!!!

ZelleFormel
B1=TEIL(A1;FINDEN("_";WECHSELN(A1;" ";"_";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))))+1;99)
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Jetzt nur die neue Spalte kopieren und an gleiche Stelle als Werte wieder einfügen. Danach Originalspalte entfernen (Spalte markieren==> STRG & - (minus). Das Ga ze kannst du auch mit dem Makrorekorder aufzeichnen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Benutzer sagt Danke an WillWissen für diesen Beitrag:
  • TerraG
Antwortento top
#6
Hallo,

eine Lösung die voraussetzt, dass Excel dynamische Arrays kennt ...

Code:
=RECHTS(A1;VERGLEICH(" ";LINKS(RECHTS(A1;SEQUENZ(LÄNGE(A1)));1);0)-1)

Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 01/2011 - 06/2019 :: 04/2020 - 06/2021
https://de.excel-translator.de/translator :: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner (neu)
[-] Folgende(r) 2 Benutzer sagt Danke an maninweb für diesen Beitrag:
  • WillWissen, TerraG
Antwortento top
#7
Guten Abend,

nochmal Danke für die Antworten. Ich habe die Lösung von WillWissen jetzt mal unter LibreOffice Calc getestet (Nutze privat öfter mal Ubuntu) und das funktioniert auch soweit gut. Wenn ich jedoch die Anzahl der Wörter/Zeichenketten auf eine bestimmte Menge erhöhe (Bei meinem Versuch auf 139) gibt die Funktion/Methode kein Ergebnis mehr aus.

Ne Ahnung woran das liegt? Und wie behebe ich das?

NACHTRAG: Es funktioniert wohl nur nicht, wenn ich in der Zelle die Kopierfunktion nutze, ansonsten funktioniert es immer. Könnte also auch ein LibreOffice Calc interner Bug sein. Ich teste es demnächst unter Excel und gebe dann Rückmeldung.

Danke für die Lösung.

Schönen AbendSmile
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste