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

String einfügen per VBA

Forumthread: String einfügen per VBA

String einfügen per VBA
26.09.2003 21:02:49
Henning D
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
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: String einfügen per VBA
26.09.2003 21:11:04
PeterW
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
AW: String einfügen per VBA
26.09.2003 21:37:13
Henning D
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
Anzeige
AW: String einfügen per VBA
26.09.2003 21:53:03
PeterW
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
Anzeige
AW: String einfügen per VBA
26.09.2003 22:13:21
Henning D
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

String einfügen per VBA


Schritt-für-Schritt-Anleitung

  1. String auslesen: Du liest einen String aus einer Excel-Tabelle aus, der beispielsweise so aussieht: Fördersumme: 983.000 €.

  2. Teile des Strings extrahieren: Verwende die Mid-Methode, um nur den Zahlenwert zu extrahieren:

    Dim str As String
    str = Mid(Cells(1, 1).Value, 14, Len(Cells(1, 1).Value) - 13)
  3. Wert umwandeln: Wenn Du den extrahierten Wert als Zahl verwenden möchtest, nutze die CCur-Funktion:

    Dim zahl As Currency
    zahl = CCur(str)
  4. In die Tabelle einfügen: Um den Wert in die Tabelle einzufügen, kannst Du dies tun:

    Cells(1, 2).Value = zahl
  5. Text einfügen: Wenn Du den Wert als Text einfügen möchtest, setze den Wert direkt:

    Cells(1, 3).Value = str

Häufige Fehler und Lösungen

  • Fehler beim Einfügen: Wenn Du den string vba in eine Zelle einfügst, und nur die Zahl angezeigt wird, überprüfe die Formatierung der Zelle. Stelle sicher, dass die Zelle als Text formatiert ist.

  • Dezimaltrennzeichen: VBA verwendet den Punkt als Dezimaltrennzeichen. Wenn Du beim Einfügen des Strings den Punkt nicht umwandelst, könnte das zu Verwirrung führen. Verwende Format und CCur, um so sicherzustellen, dass der String korrekt interpretiert wird:

    Cells(1, 4).Value = Format(CCur(str), "#,##0.000 €")

Alternative Methoden

  • String in VBA umwandeln: Eine Alternative zum direkten Einfügen des Strings ist die Verwendung einer Funktion, die den String automatisch in das gewünschte Format umwandelt.

  • Verwendung von Val: Um nur den Zahlenwert zu extrahieren, kannst Du auch Val verwenden:

    Dim wert As Double
    wert = Val(str)

Praktische Beispiele

Hier ist ein praktisches Beispiel, wie Du mit einem String in VBA umgehen kannst:

Sub Beispiel()
    Dim inputString As String
    Dim extractedString As String

    inputString = Cells(1, 1).Value ' Beispiel: "Fördersumme: 983.000 €"
    extractedString = Mid(inputString, 14, Len(inputString) - 13)

    ' Wert als Text einfügen
    Cells(1, 2).Value = extractedString

    ' Wert als Zahl einfügen
    Cells(1, 3).Value = CCur(extractedString) ' Hier wird der Punkt als Dezimaltrennzeichen interpretiert
End Sub

Tipps für Profis

  • Verwende Option Explicit: Immer am Anfang Deines Moduls. Das hilft, Fehler mit Variablen zu vermeiden und sorgt für besseren Code.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Eingaben abzufangen.
  • Code modularisieren: Schreibe separate Funktionen für spezifische Aufgaben, um Deinen Code übersichtlicher und wartungsfreundlicher zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der String immer korrekt umgewandelt wird?
Verwende die CCur-Funktion und achte darauf, dass der Punkt als Dezimaltrennzeichen interpretiert wird. Wenn Du mit unterschiedlichen Formaten arbeitest, solltest Du die Eingabewerte vor dem Umwandeln überprüfen.

2. Was ist der Unterschied zwischen Text und Zahl in VBA?
Text (string vba) wird als Zeichenkette betrachtet, während Zahlen in VBA als numerische Werte interpretiert werden. Dies ist wichtig, wenn Du Berechnungen durchführen oder Formatierungen anwenden möchtest.

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