VBA: Zelle von hinten lesen, bis zur ersten Leerstelle?

... komplette Frage anzeigen

3 Antworten

DatumVariable = Mid(aktuelleZelle, InstrRev(aktuelleZelle, " ") + 1)
ZielZelle = Format(DatumVariable, "YYYYMMDD")

Statt DatumVariable, aktuelleZelle und ZielZelle musst du halt die echten Variablennamen aus deinem Programm eintragen.

Falls das Datum in der Zielzelle als Datumswert gespeichert werden soll, kannst du in der zweiten Zeile auch 'Zielzelle = DatumVariable' schreiben. Dann halt in den Zielzellen die Formatierung auf Benutzerdefiniert stellen und dort das Format YYYYMMDD hinterlegen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Herzbube27
03.06.2016, 10:52

Danke tut! Noch eine Frage, dasselbe erneut, nur steht nun in den Zellen das Datum OHNE Jahr, also nur "07.01.". Wie mach ich es hier, dass das Datum wieder "MMDD" in eine andere Zelle geschrieben wird? geht das überhaupt ohne Jahr?

0

Da brauchst du kein VBA!

In A1 steht zum Beispiel: Bla Blabla xyz 3.6.2016

In B1 schreibst  du 

=GLÄTTEN(WECHSELN(A1;LINKS(A1;FINDEN("#";WECHSELN(A1;" ";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))))-1);))

Klicke in den Spaltenkopf B mit der rechten Maustaste. Wähle Zellen formatieren aus.

Im öffneten Dialogfeld Zahlen-> Benutzerdefiniert-> Typ Statt Standard gib

JJJJMMTT ein. 

Damit kannst du ganz normal weiter rechnen, da im Hintergrund immer noch die vergangene Tage seit dem 1.1.1900 steht. Also für den 3.6.2016 42524

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
03.06.2016, 11:53

Ganz genau, hatte grade eine ganz ähnliche Lösung "konstruiert" (für Beliebiges nach dem letzten Leerzeichen):

=TEIL(A1;FINDEN("|";WECHSELN(A1;" ";"|";LÄNGE(A1)-LÄNGE(WECHSELN(A1;" ";""))))+1;9999)

Für Ergebnis als Zahl *1 oder +0, ggf Datumsformat einstellen

2

Wenn innerhalb des Textes keine Ziffern vorkommen, so kannst du folgende Formel verwenden


=TEIL(A1;VERGLEICH(WAHR;ISTZAHL(TEIL(A1;SPALTE(1:1);1)*1);0);LÄNGE(A1))*1

Diese Formel musst du mit Strg + Shift + Enter abschließen! Sie ist eine Array-Formel

Das Ergebnis musst du nach deinen Wünschen formatieren.

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?