Herbers Excel-Forum - das Archiv

String einfügen per VBA

Bild

Betrifft: String einfügen per VBA
von: Henning D
Geschrieben am: 26.09.2003 21:02:49
Hallo,
ich habe folgendes Problem:

Ich lese aus einer Excel-Tabelle einen String aus, um nur Teile davon zu verwenden. Der String sieht dann z.B. so aus: Fördersumme: 983.000 €

Ich brauche nur den Zahlenwert. Also schreibe ich zunächst den ganzen Zahlenwert in eine Variable. Mit der Mid-Methode lese ich dann den String ab Position 14 (da der String am Anfang immer gleich aussieht passt das) aus, und schreibe diesen in eine neue Variable. Dieser sieht dann wie folgt aus: 983.000 €.

Füge ich diesen nun wieder in eine Excel Tabelle ein (mit Range(...).Value=Variable), dann wird in der Tabelle nur die Zahl 983 angezeigt. Mit Zahlen welche größer als 1.000.000 sind habe ich keinerlei Probleme. Falls man den "." durch ein "," ersetzt, so erscheint in der Tabelle nur 983000 ohne €-Zeichen.

Hat jemand eine Idee woran das liegen kann?

Gruß,
Henning

Bild

Betrifft: AW: String einfügen per VBA
von: PeterW
Geschrieben am: 26.09.2003 21:11:04
Hallo Henning,

VBA spricht englisch und da ist der Punkt das Dezimaltrennzeichen. Baue den String so um, dass nur der Wert übernommen wird und schreibe in die Tabelle mit Range()=Format(CCur(StringNeu),"#.000 €").

Gruß
Peter
Bild

Betrifft: AW: String einfügen per VBA
von: Henning D
Geschrieben am: 26.09.2003 21:37:13
Hallo Peter,
der Punkte sollte VBA aber da nicht stören, da die Zelle in welche eingefügt wird auch als Textzelle formatiert ist. Also sollte beim Einfügen des Strings auch genau der String eingesetzt werden.

Leider ist der Umbau des Strings wie Du meinst auch nicht so einfach möglich, da es ja auch vorkommen kann das in den letzten 3 Stellen auch noch Werte stehen.

Gruß,
Henning
Bild

Betrifft: AW: String einfügen per VBA
von: PeterW
Geschrieben am: 26.09.2003 21:53:03
Hallo Henning,

willst du Werte oder Texte? Habe mal deinen Text in A1 geschrieben und lasse in D1 den Betrag ausgeben (D1 ist als Standard formatiert):



Sub WertAusString()
Dim str As String
str = Mid(Cells(1, 1), 13, Len(Cells(1, 1)) - 13)
Cells(1, 4) = CCur(str)
End Sub



Gruß
Peter
Bild

Betrifft: AW: String einfügen per VBA
von: Henning D
Geschrieben am: 26.09.2003 22:13:21
Hallo Peter,
ich brauch das ganze nur als String, also als Text. Damit muss nicht weiter gerechnet werden oder sonstiges.

Habe es aber nun so gemacht, das ich die Teile dann doch in ne Currency umwandle.

Vielen Dank für die Hilfe!

Gruß,
Henning
 Bild
Excel-Beispiele zum Thema " String einfügen per VBA"
Nach Textimport Strings in Zahlen wandeln Textstring in berechenbare Formel umwandeln
Zahlenstring mit Formel auslesen und Fehlermeldung verhindern Wertermittlung in Abhängigkeit eines Zeichens in einem String
Sortierung mit Formel-Leerstrings am Ende Stringeingaben von HHMM und HHMMSS in Zeit wandeln
Aufteilen eines Strings mit Zeilenumbrüchen Aufhebung der Suchstringbegrenzung von 255 Zeichen
Strings, die wie Zahlen aussehen, in Zahlen umwandeln Aus einem String mit Datumsangabe das Jahr auslesen