17.02.2023, 16:24
Hallo zusammen,
ich hätte mal wieder eine Frage und hoffe ihr könnt mir helfen.
Ich habe eine einzelne Zelle (A1), die wie nachfolgend befüllt sein kann:
Name: Fischer, Max
Alter: 38
Geschlecht: Männlich
Die Attribute "Name", "Alter" und "Geschlecht" sind fix und durch Zeilenumbrüche getrennt, können jedoch beliebig untereinander angeordnet bzw. vertauscht sein. Die zugehörigen Daten sind variabel.
Ich möchte nun bei Bedarf bestimmte Daten in der Zelle löschen. Beispielsweise die Zeile "Name: Fischer, Max".
Mein erster Gedanke war hierfür die "Replace" Funktion zu verwenden. Allerdings ist der Name (hier "Fischer, Max") variabel, somit kann ich der Funktion nicht zuordnen bis zu welchem Punkt sie es ersetzen bzw. löschen soll. Ich habe es dann dank nachfolgendem Zeilenumbruch wie folgt gelöst:
Dies funktioniert aber eben nur, wenn die Zeile mit "Name: ..." nicht in der letzten Zeile steht, bzw. nachfolgend noch ein Zeilenumbruch kommt, was nicht immer der Fall sein muss.
Mein nächster Gedanke war deshalb über die Anzahl der Zeichen die Start- und Endposition zu ermitteln und diese dann gezielt mit "Replace" zu entfernen. Mit "InStr" könnte ich ja die Startposition der jeweiligen Zeile in der Zelle ermitteln, aber wie ermittle ich die zugehörige Endposition? Gibt es hierfür auch eine Funktion?
Oder gibt es allgemein eine viel einfachere Lösung wie ich das angehen kann?
Über Tipps würde ich mich sehr freuen.
Danke und Gruß
Sebbo
ich hätte mal wieder eine Frage und hoffe ihr könnt mir helfen.
Ich habe eine einzelne Zelle (A1), die wie nachfolgend befüllt sein kann:
Name: Fischer, Max
Alter: 38
Geschlecht: Männlich
Die Attribute "Name", "Alter" und "Geschlecht" sind fix und durch Zeilenumbrüche getrennt, können jedoch beliebig untereinander angeordnet bzw. vertauscht sein. Die zugehörigen Daten sind variabel.
Ich möchte nun bei Bedarf bestimmte Daten in der Zelle löschen. Beispielsweise die Zeile "Name: Fischer, Max".
Mein erster Gedanke war hierfür die "Replace" Funktion zu verwenden. Allerdings ist der Name (hier "Fischer, Max") variabel, somit kann ich der Funktion nicht zuordnen bis zu welchem Punkt sie es ersetzen bzw. löschen soll. Ich habe es dann dank nachfolgendem Zeilenumbruch wie folgt gelöst:
Code:
Worksheets("Tabelle1").Cells(1, 1).Replace what:="Name:" & "*" & vbLf, replacement:=""
Dies funktioniert aber eben nur, wenn die Zeile mit "Name: ..." nicht in der letzten Zeile steht, bzw. nachfolgend noch ein Zeilenumbruch kommt, was nicht immer der Fall sein muss.
Mein nächster Gedanke war deshalb über die Anzahl der Zeichen die Start- und Endposition zu ermitteln und diese dann gezielt mit "Replace" zu entfernen. Mit "InStr" könnte ich ja die Startposition der jeweiligen Zeile in der Zelle ermitteln, aber wie ermittle ich die zugehörige Endposition? Gibt es hierfür auch eine Funktion?
Oder gibt es allgemein eine viel einfachere Lösung wie ich das angehen kann?
Über Tipps würde ich mich sehr freuen.
Danke und Gruß
Sebbo