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

Wert mit Kommazahl in Variable übernehmen

Forumthread: Wert mit Kommazahl in Variable übernehmen

Wert mit Kommazahl in Variable übernehmen
30.08.2007 18:17:20
Larissa
Hallo VBAler
ich habe ein Makro, in dem ein Wert als Variable übernommen werden soll:
Dim aktWert As Long
aktWert = ActiveCell.Offset(0, 3).Value
Wenn der Wert z.B. 120,69 ist, wird der gerundete Betrag 121,00 als Variable genommen.
Ich möchte aber den exakten Wert in die Variable übernehmen?
Wenn ich statt "As long" "As String" nehme, wird der Wert nicht als Zahl ausgegeben und müsste noch als Zahl umgewandelt werden.
Hat jemand eine Lösung für mich?
Vielen Dank für Eure Hilfe im Voraus.
Larissa

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Dim aktWert As Double
30.08.2007 18:19:22
Original
oT

AW: Dim aktWert As Double
30.08.2007 18:40:00
Larissa
Wau, schnelle Antwort. Danke.
Auch mit "Double" muss der Wert in eine Zahl umgewandelt werden, obwohl die Zelle auf Zahlenformat eingestellt ist. Das verstehe ich nicht. Der Tausenderpunkt fehlt auch ;-(
Ich habe mich jetzt mit diesem Teil beholfen:
With ActiveSheet
Selection.TextToColumns Destination:=Range(ActiveCell, ActiveCell.Offset(0, 0)), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
End With
Damit wird der Wert wieder in eine Zahl umgewandelt und es funktioniert ;-)
Vielen Dank und lieben Gruß,
LArissa

Anzeige
AW: Dim aktWert As Double
30.08.2007 19:10:49
Original
Hi,
da ich nicht weiß, wie du den Wert in eine Zelle übergibts, mal pauschal:
Range("A1") = CDbl(Textbox1)
mfg Kurt
;
Anzeige
Anzeige

Infobox / Tutorial

Wert mit Kommazahl in Variable übernehmen


Schritt-für-Schritt-Anleitung

Um einen Wert mit Kommazahl in eine Variable in VBA zu übernehmen, kannst du folgende Schritte befolgen:

  1. Variable deklarieren: Stelle sicher, dass du die richtige Datentypen verwendest. Für Werte mit Kommazahlen ist Double die geeignete Wahl.

    Dim aktWert As Double
  2. Wert übernehmen: Übernehme den Wert aus der Zelle. Achte darauf, dass du den Wert korrekt übernimmst, um Rundungsfehler zu vermeiden.

    aktWert = ActiveCell.Offset(0, 3).Value
  3. Wert formatieren (optional): Falls der Wert nicht korrekt als Zahl erkannt wird, kannst du die TextToColumns Methode verwenden, um sicherzustellen, dass er im richtigen Format vorliegt.

    With ActiveSheet
       Selection.TextToColumns Destination:=Range(ActiveCell, ActiveCell.Offset(0, 0)), DataType:=xlDelimited, _
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
       Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
       :=Array(1, 1), TrailingMinusNumbers:=True
    End With

Häufige Fehler und Lösungen

  • Rundungsfehler: Wenn du den Wert als Long speicherst, wird er gerundet. Verwende Double, um den exakten Wert zu erhalten.

  • Wert wird nicht als Zahl erkannt: Wenn der Wert als Text übernommen wird, nutze die TextToColumns Methode, um ihn in das richtige Format zu konvertieren.

  • Tausenderpunkt fehlt: Stelle sicher, dass die Zelle das richtige Zahlenformat hat, bevor du den Wert übernimmst.


Alternative Methoden

Eine alternative Methode zur Übernahme von Werten mit Kommazahlen könnte die Verwendung von CDbl sein, um sicherzustellen, dass der Wert in das richtige Format umgewandelt wird.

Range("A1") = CDbl(Textbox1)

Diese Methode stellt sicher, dass der Wert korrekt als Zahl behandelt wird.


Praktische Beispiele

Hier sind einige einfache Beispiele, wie du Werte mit Kommazahlen in Variablen übernehmen kannst:

  1. Beispiel mit einer Zelle:

    Dim aktWert As Double
    aktWert = Range("B1").Value
  2. Beispiel mit Offset:

    Dim aktWert As Double
    aktWert = ActiveCell.Offset(0, 1).Value
  3. Beispiel mit TextBox:

    Dim aktWert As Double
    aktWert = CDbl(TextBox1.Value)

Tipps für Profis

  • Verwende Double statt Long: Um sicherzustellen, dass du mit Kommazahlen arbeiten kannst, ist Double die beste Wahl.

  • Zahlenformat überprüfen: Bevor du einen Wert übernimmst, überprüfe das Zahlenformat der Zelle, um Fehler zu vermeiden.

  • Debugging: Nutze Debug.Print um den Wert der Variable zu überprüfen, wenn du Probleme hast, um sicherzustellen, dass er korrekt übernommen wurde.


FAQ: Häufige Fragen

1. Warum wird mein Wert gerundet?
Wenn du Long verwendest, wird der Wert gerundet. Verwende Double, um den exakten Wert zu erhalten.

2. Wie kann ich sicherstellen, dass der Wert als Zahl erkannt wird?
Du kannst die TextToColumns Methode verwenden, um sicherzustellen, dass der Wert korrekt als Zahl formatiert wird.

3. Was mache ich, wenn der Wert als Text übernommen wird?
Nutze die CDbl Funktion, um den Text in eine Zahl zu konvertieren.

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