Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Text in Zelle kürzen

Text in Zelle kürzen
27.10.2019 11:25:36
Peter
Hallo,
ich habe folgenden Text in der Zelle:
LINK Excel.SheetMacroEnabled.12 C:\\Users\\Peter\\Desktop\\Test2\\Mappe2.xlsm Tabelle1!Z2S1 \a \t \* MERGEFORMAT
Test2a
Könnt ihr mir bitte helfen, diese Zeile so zu kürzen, dass nur noch
C:\\Users\\Peter\\Desktop\\Test2\\Mappe2.xlsm
in der Zelle übrig bleibt.
Bitte per VBA und auch als Formel.
Besten Dank
Gruss
Peter
Anzeige

33
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Per UDF
27.10.2019 11:32:43
RPP63
Moin!
UDF:
Function Split_Part$(Zelle$, Number&)
Split_Part = Split(Zelle, " ")(Number - 1)
End Function

Ergibt für das vierte "Wort":
 A
1 LINK Excel.SheetMacroEnabled.12 C:\\Users\\Peter\\Desktop\\Test2\\Mappe2.xlsm Tabelle1!Z2S1 \a \t \* MERGEFORMAT
2C:\\Users\\Peter\\Desktop\\Test2\\Mappe2.xlsm

ZelleFormel
A2=Split_Part(A1;4)

Gruß Ralf
Anzeige
Auch wenn das hier ein Excel-Forum ist …
27.10.2019 11:36:54
RPP63
… mit Google Tabellen ist es eine simple Formel:
=INDEX(SPLIT(A1;" ");4)
Und mit deiner oder der universelleren und schon …
27.10.2019 14:03:59
Luc:-?
…lange im hiesigen Archiv befindlichen Splint ist die Fml noch simpler, Ralf: ;-)
=Splint(A1; ;4;4)
Ansonsten halte ich mich mal aus der Peter-Verwirrnis raus, denn die Peter, denen ich in der Vergangenheit geraten hatte, sollten das kennen oder selbständig finden können, zumindest sich nicht so leicht verwirren lassen…
Gruß, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige
Was Leerzeichen im relevanten Textteil betrifft, …
27.10.2019 19:35:17
Luc:-?
…kann man das auch so handhaben:
=Splint("C:\"&Splint(A1;"C:\";2;2);".xlsm";1;1)&".xlsm"
Das sollte eindeutig genug sein. Aber in Analogie zu ERSETZEN ginge auch Folgendes (mit seit 14 Jahren im Archiv enthaltener UDF):
=MaskOn(A1; "mrkCm")
Falls das nicht flexibel genug ist, dann so:
=MaskOn("`"&WECHSELN(WECHSELN(A1;"C:\";"´C:\";1);".xlsm";".xlsm`";1);"mrk`´";1)
Luc :-?
Anzeige
wenn dich "Peter" geistig überfordert Luc
27.10.2019 21:37:38
Daniel
dann ist es trotzdem nicht besonderes gut, wenn wenn schon ein einfaches "Tabelle 2.xlsm" als Dateiname die vorgeschlagene Lösung ins Straucheln bringt.
Hattest du nicht genug Zeit, ...
28.10.2019 14:59:46
Luc:-?
…Daniel,
auch meinen Nachtrag zu lesen‽ Insofern ist dein jetziger „Beitrag“ nur ein Versuch, unnötigerweise eine Palme zu pflanzen. Außerdem ist ja wohl sonnenklar, wessen Verwirrnis gemeint war, denn immerhin hatte das Peter selbst bekundet — unter einem Beitrag von dir… :->
Luc :-?
Anzeige
AW: Hattest du nicht genug Zeit, ...
28.10.2019 23:18:35
Daniel
Nach deinem Beitrag bin ich davon ausgegangen, dass du nichts weiteres schreiben wolltest.
Wollte ich auch nicht, aber das Gegenteil ...
29.10.2019 04:05:35
Luc:-?
…konntest du ja nur dann nicht bemerken, wenn du entweder deinen Browser stundenlang nicht aktualisiert hattest oder den Nachtrag nicht sehen wolltest. :->
Luc :-?
AW: funktioniert
27.10.2019 11:42:21
Peter
Hallo Ralf,
das funktioniert einwandfrei.
Gibt es hierfür auch noch eine VBA-Lösung?
Anzeige
Eine UDF IST eine VBA Lösung …
27.10.2019 11:49:14
RPP63
Du kannst natürlich auch gleich per Makro trennen:
Sub Trenne()
Range("A1") = Split(Range("A1"), " ")(3)
End Sub

AW: klappt
27.10.2019 11:54:03
Peter
Hallo Ralf,
ich habe nicht so viel Ahnung daher meine umständliche Fragestellung.
Die Function ist VBA. Aber das Makro von Dir ist jetzt die perfekte Lösung.
Besten Dank und einen schönen Sonntag.
Gruss
Peter
Anzeige
Gefährlich. Wenn Leerzeichen in Pfad und Dateiname
27.10.2019 12:10:46
Daniel
vorkommen, gehts so nicht.
Gruß Daniel
AW: Gefährlich. Wenn Leerzeichen in Pfad und Dateiname
27.10.2019 12:15:55
RPP63
Ja, ich finde Deine Lösung (am Ende des Threads) besser als meine, Daniel.
Allerdings kennt Peter jetzt gleich mehrere Methoden.
Ist ja für jemanden mit Basiskenntnissen auch nicht ganz verkehrt.
;)
AW: Gefährlich. Wenn Leerzeichen in Pfad und Dateiname
27.10.2019 12:38:11
Daniel
Zumal das ERSETZEN so nicht in Formeln verwendet werden kann.
Gruß Daniel
Anzeige
AW: Text in Zelle kürzen
27.10.2019 11:33:40
Hajo_Zi
Halo Peter,
warum neuen Beitrag?

Tabelle1
 A
28LINK Excel.SheetMacroEnabled.12 C:\\Users\\Peter\\Desktop\\Test2\\Mappe2.xlsm Tabelle1!Z2S1 \a \t \* MERGEFORMAT
29C:\\Users\\Peter\\Desktop\\Test2\\Mappe2.xlsm

verwendete Formeln
Zelle Formel Bereich N/A
A29=TEIL(A28;SUCHEN("C:\";A28);SUCHEN(".xlsm";A28)-SUCHEN("C:\";A28)+5)  



Anzeige
AW: Text in Zelle kürzen
27.10.2019 11:43:21
Peter
Hallo Hajo,
besten Dank für Deine Hilfe.
Funktioniert einwandfrei. Gibt es hierfür auch eine VBA-Lösung?
Gruss
Peter
AW: Text in Zelle kürzen
27.10.2019 12:44:14
Daniel
Hi
Du kannst die selbe Methode auch in VBA anwenden.
"Teil" ist in VBA die Funktion "Mid" und "Suchen" ist "InStr", wobei bei InStr die Reihenfolge der Parameter getauscht ist.
Gruß Daniel
Anzeige
AW: Text in Zelle kürzen
27.10.2019 12:07:58
Daniel
Hi
wenn viele Zellen betroffen sind, ersetzte mit der Menüfunktion Ersetzen
- "* C:" durch "C:"
- ".xlsm *" durch ".xlsm"
Das lässt sich auch einfach in VBA durchführen
cells.replace "* C:", " C:", xlpart
Cells.replace ".xlsm *", " .xlsm", xlpart
Gruß Daniel
Anzeige
AW: Text in Zelle kürzen
27.10.2019 13:38:53
Peter
Hallo Daniel,
jetzt bin ich völlig durcheinander.
Kannst Du mir bitte den Code schreiben, welcher über VBA korrekt die Zelle entsprechend umschreibt.
Besten Dank
Gruss
Peter
AW: Text in Zelle kürzen
27.10.2019 14:01:15
Hajo_Zi
Hallo Peter,
ersetze Cells durch Range("Az325")
Gruß Hajo
Anzeige
AW: Text in Zelle kürzen
27.10.2019 14:31:58
Daniel
Welche Zelle?
Excel hat mehr Zellen, als es mit seiner normalen Zählfunktion Zählen kann.
Gruß Daniel
AW: Text in Zelle kürzen
27.10.2019 16:20:07
Peter
Hallo Daniel,
konkret geht es hier um die Zelle E4 die getrennt wird und eingefügt in E16.
Gruss
Peter
AW: Text in Zelle kürzen
27.10.2019 17:00:51
Peter
Hallo Daniel,
hast Du es so gemeint?!
<pre>Sub Text_kuerzen()
Dim str As String
str = Worksheets("Tabelle1").Range("E5")
str = Right(str, Len(str) - InStr(1, str, " C:"))
str = Left(str, InStr(1, str, " Tabelle") - 1)
Worksheets("Tabelle1").Range("E17") = str
End Sub</pre>
Bei Left habe ich noch "Bauchweh" bezüglich Tabelle.
Gruss
Peter
Anzeige
AW: Text in Zelle kürzen
27.10.2019 17:14:10
Daniel
Hi
Ja in etwa so.
Statt Right mit Len kannst du auch einfach Mid nehmen und den 3.Parameter weglassen. VBA gibt dir dann den ganzen Restszring ab der angegebenen Position zurück.
Wieso hast du Bauchschmerzen mit Tabelle und Left?
Wenn der Suchtext links von der Trennstelle steht, muss man halt noch die Länge des Suchtextes hinzuadieren.
Gruß Daniel
Anzeige
AW: Text in Zelle kürzen
27.10.2019 17:20:18
Peter
Hallo Daniel,
besten Dank.
Kannst Du mir das mit Mid bitte aufschreiben.
Gruss
Peter
AW: Text in Zelle kürzen
27.10.2019 17:55:21
Peter
Hallo Daniel,
habe jetzt dieses Makro:
<pre>Sub Text_kuerzen2()
Dim str As String
str = Worksheets("Tabelle1").Range("E5")
str = Mid(str, InStr(str, " C:") + 1)
str = Left(str, InStr(1, str, " Tabelle") - 1)
Worksheets("Tabelle1").Range("E17") = str
End Sub</pre>
Entspricht dies jetzt dem was Du gemeint hast?
Gruss
Peter
Anzeige
warum fragst Du Daniel? passt es oder nicht...
27.10.2019 18:24:15
robert
..das ist die Frage...
sonst wieder einmal-Ende nie...
AW: warum fragst Du Daniel? passt es oder nicht...
27.10.2019 18:58:31
Peter
Hallo Robert,
etwas anderes habe ich von Dir nicht erwartet.
Anstatt so dumm herumzuschreiben, wäre es in diesem Forum angebracht, klare eindeutige Angaben zu machen.
Wenn Du nichts anderes kannst, dann lass es einfach bleiben.
Gruss
Peter
Anzeige
Wenn dein Pgm fktioniert, ...
27.10.2019 19:27:32
Luc:-?
…Peter,
erübrigt sich doch deine Frage! Etwas Anderes hat Robert ja auch nicht gemeint. Kein Grund also für deinen unterirdischen Kommentar.
Luc :-?
Als Tabellenformel, die auch <leer> berücksichtigt
28.10.2019 07:12:49
lupo1
=GLÄTTEN(TEIL(A1;FINDEN("C:\\";A1);FINDEN(".xls";A1)-FINDEN("C:\\";A1)+5))
Das GLÄTTEN gibt so auch
.xls
.xlsx
.xlsm
.xlsb
usw. zurück.
Anzeige
AW: Als Tabellenformel, die auch <leer> berücksichtigt
29.10.2019 08:06:16
Peter
Hallo Lupo,
geht das auch mit VBA?
Ich habe das Problem mit der bisherigen Version, dass nur ein Auslesewert funktioniert mit Left.
Da aber ggf. viele Felder ausgelesen werden und ich nur den 1. Wert benötige wie es bei Deiner Formel funktioniert, wäre es toll, wenn Du mir sagen könntest, wie dies per VBA funktioniert.
Ich lese die Daten aus Worddokument aus Übertrage den Wert in eine Zelle spalte den Wert entsprechend dem bisherigen Code aus und übertrage diesen Wert in die nächste Zelle. Die vorherige Zelle wird Inhalt gelöscht.
Besten Dank für Deine Hilfe.
Gruss
Peter
Anzeige
AW: Als Tabellenformel, die auch <leer> berücksichtigt
01.11.2019 10:43:24
Werner
Hallo Peter,
sorry, aber mir stellt sich jetzt auch die Frage weshalb der Beitrag noch offen ist. Du hast doch jetzt schon zig funktionierende Lösungsvorschläge, sowohl Formellösungen als auch per Makro?
Trotzdem nochmal:
Sub Makro1()
'Lösung von Daniel mit Replace
Range("E16") = Range("E4")
Range("E16").Replace "* C:", " C:", xlPart
Range("E16").Replace " Tabelle*", "", xlPart
End Sub
Sub Makro2()
'Formellösung in VBA umgesetzt
Range("E16") = _
Trim(Mid(Range("E4"), InStr(Range("E4"), "C:\"), InStr(Range("E4"), ".xls") _
- InStr(Range("E4"), "C:\") + 5))
End Sub
Gruß Werner
Anzeige
in einem anderen Beitrag....
02.11.2019 11:18:24
Werner
Hallo Peter,
...konntest du antworten... hier scheint es nicht zu klappen.
Gruß Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Text in Zelle kürzen: Praktische Anleitungen und Lösungen


Schritt-für-Schritt-Anleitung

Um den Text in einer Excel-Zelle zu kürzen und nur einen bestimmten Teil des Inhalts zu behalten, kannst Du sowohl eine Formel als auch VBA verwenden. Hier sind die Schritte für beide Methoden:

1. Formel-Methode:

  • Verwende die Funktion TEIL in Kombination mit SUCHEN, um den gewünschten Text auszulesen.
  • Beispiel: Angenommen, der Text steht in Zelle A1:
     =TEIL(A1;SUCHEN("C:\";A1);SUCHEN(".xlsm";A1)-SUCHEN("C:\";A1)+5)

2. VBA-Methode:

  • Öffne den VBA-Editor (ALT + F11) und füge ein neues Modul hinzu.
  • Verwende den folgenden VBA-Code:
     Sub Text_kuerzen()
         Dim str As String
         str = Worksheets("Tabelle1").Range("E4") ' Zelle, die gekürzt werden soll
         str = Mid(str, InStr(str, "C:\"))
         str = Left(str, InStr(1, str, " Tabelle") - 1)
         Worksheets("Tabelle1").Range("E16") = str
     End Sub

Häufige Fehler und Lösungen

  • Fehler: Die Formel gibt einen Fehler aus oder zeigt unerwartete Ergebnisse.

    • Lösung: Stelle sicher, dass die zu suchenden Texte wie "C:\" oder ".xlsm" im Zelleninhalt vorhanden sind. Andernfalls wird die Formel fehlschlagen.
  • Fehler: VBA-Code funktioniert nicht.

    • Lösung: Überprüfe, ob die Zelle korrekt referenziert wird und ob der Arbeitsblattname richtig ist.

Alternative Methoden

  • Ersetzen-Funktion: Wenn Du mehrere Zellen hast, kannst Du die Ersetzen-Funktion nutzen, um Teile des Textes zu kürzen. Beispiel:

    Cells.Replace "* C:", " C:", xlPart
    Cells.Replace ".xlsm *", ".xlsm", xlPart
  • Google Tabellen: In Google Tabellen kannst Du einfach die Formel =INDEX(SPLIT(A1, " "); 4) verwenden, um den Text zu kürzen.


Praktische Beispiele

  1. Formelbeispiel: Angenommen, Du hast in Zelle A1 den Text:

    LINK Excel.SheetMacroEnabled.12 C:\Users\Peter\Desktop\Test2\Mappe2.xlsm Tabelle1!Z2S1

    Verwende die Formel:

    =TEIL(A1;SUCHEN("C:\";A1);SUCHEN(".xlsm";A1)-SUCHEN("C:\";A1)+5)

    Das Ergebnis in einer anderen Zelle zeigt nur den Pfad.

  2. VBA-Beispiel: Das folgende Makro kürzt den Text in Zelle E4 und speichert das Ergebnis in E16:

    Sub Text_kuerzen()
       Dim str As String
       str = Worksheets("Tabelle1").Range("E4")
       str = Mid(str, InStr(str, "C:\"))
       str = Left(str, InStr(1, str, " Tabelle") - 1)
       Worksheets("Tabelle1").Range("E16") = str
    End Sub

Tipps für Profis

  • Wenn Du regelmäßig Texte in Zellen kürzen musst, erstelle eine benutzerdefinierte Funktion (UDF) in VBA, um die Handhabung zu erleichtern.
  • Achte darauf, dass Du die richtige Excel-Version verwendest, da einige Funktionen in älteren Versionen möglicherweise nicht verfügbar sind.
  • Nutze Fehlerbehandlungsroutinen in Deinem VBA-Code, um unerwartete Fehler elegant abzufangen.

FAQ: Häufige Fragen

1. Wie kann ich den Inhalt einer Zelle in Excel kürzen? Um den Inhalt in Excel zu kürzen, kannst Du die Funktion TEIL oder VBA verwenden, um nur den gewünschten Textabschnitt anzuzeigen.

2. Gibt es eine Möglichkeit, Links in Excel zu kürzen? Ja, Du kannst die Funktion LINK verwenden, um Links zu kürzen, oder einfach den Text in den Zellen entsprechend anpassen.

3. Was ist der Unterschied zwischen Mid und Left in VBA? Mid gibt den Text ab einer bestimmten Position zurück, während Left eine bestimmte Anzahl von Zeichen von links aus dem Text zurückgibt.

4. Wie kann ich mehrere Zellen gleichzeitig kürzen? Du kannst die Ersetzen-Funktion in Excel nutzen oder eine Schleife in VBA erstellen, um alle relevanten Zellen zu bearbeiten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige