Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Zahlen mit Nachkommastellen

VBA Zahlen mit Nachkommastellen
11.09.2017 10:50:40
Jens
Hallo zusammen,
ich habe folgendes Problem mit meinem Excel Makro.
Ich lese aus einem Tabellenblatt bestimmte Werte aus und möchte diese auf dem ersten Tabellenblatt gesammelt schreiben.
An sich funktioniert das ganze auch, jedoch werden Werte mit Nachkommastellen im ersten Blatt falsch (auf Engl.) geschrieben. D.h. mit Punkten.
VBA verarbeitet diese Werte jedoch korrekt. Die Ausgabe mit einer Msgbox z.b. ist korrekt. Erst beim Einfügen in eine Zelle wird es falsch. Wieso ist das so? Wie kann ich das verhindern?
In allen meinen anderen Makros hatte ich dieses Problem bisher nie. Obwohl alle ähnlich aufgebaut.
Kann jemand helfen?
Vielen Dank und grüße
Jens
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
doppelt o.w.T.
11.09.2017 12:21:02
Werner
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA Zahlen mit Nachkommastellen


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic for Applications (VBA) Editor.

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul.

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle „Einfügen“ > „Modul“.
  3. Füge den folgenden Code ein, um die Werte zu kopieren:

    Sub WerteKopieren()
       Dim wsQuell As Worksheet
       Dim wsZiel As Worksheet
       Dim i As Integer
    
       Set wsQuell = ThisWorkbook.Sheets("Quellblatt")
       Set wsZiel = ThisWorkbook.Sheets("Zielblatt")
    
       For i = 1 To 10 ' Beispiel: Werte von Zeile 1 bis 10
           wsZiel.Cells(i, 1).Value = wsQuell.Cells(i, 1).Value
       Next i
    End Sub
  4. Teste das Makro.

    • Führe das Makro aus und überprüfe, ob die Nachkommastellen korrekt angezeigt werden.
  5. Überprüfe die Regionseinstellungen.

    • Stelle sicher, dass die Regionseinstellungen Deines Excel-Programmes auf das gewünschte Format eingestellt sind (z.B. Komma für Dezimalstellen).

Häufige Fehler und Lösungen

  • Problem: Nachkommastellen werden mit Punkten angezeigt.

    • Lösung: Überprüfe die Regionseinstellungen von Excel. Du kannst die Einstellungen unter „Datei“ > „Optionen“ > „Erweitert“ ändern. Achte darauf, dass die Einstellungen zu Deinem gewünschten Zahlenformat passen.
  • Problem: Werte werden nicht korrekt kopiert.

    • Lösung: Stelle sicher, dass der Typ der Werte in der Quellzelle korrekt ist. Manchmal kann das Format in der Zelle (z.B. Text oder Zahl) das Kopieren beeinflussen.

Alternative Methoden

  • Verwende den Format-Befehl: Um sicherzustellen, dass die Nachkommastellen korrekt angezeigt werden, kannst Du den Format-Befehl in VBA verwenden:

    wsZiel.Cells(i, 1).NumberFormat = "0.00"
  • Direkte Zellenformatierung: Du kannst auch das Zellenformat direkt in Excel ändern, bevor Du die Werte kopierst. Markiere die Zielzellen, klicke mit der rechten Maustaste und wähle „Zellen formatieren“. Wähle das gewünschte Zahlenformat aus.


Praktische Beispiele

  • Beispiel 1: Angenommen, Du hast in Zelle A1 den Wert 12.34 (im Quellblatt) und möchtest diesen Wert ins Zielblatt kopieren. Nach dem Ausführen des Makros sollte in der Zelle A1 des Zielblatts 12,34 erscheinen (wenn die Regionseinstellungen korrekt sind).

  • Beispiel 2: Wenn Du mehrere Werte aus einer Spalte kopierst, kannst Du den Code anpassen, um die gesamte Spalte zu berücksichtigen. Dies kann nützlich sein, wenn Du mit großen Datenmengen arbeitest.


Tipps für Profis

  • Nutze Debug.Print: Wenn Du Probleme mit der Ausgabe hast, füge Debug.Print vor dem Einfügen in die Zelle ein, um zu sehen, welchen Wert VBA tatsächlich verarbeitet.

  • Fehlerbehandlung einfügen: Verwende On Error Resume Next, um mögliche Laufzeitfehler zu ignorieren und die Ausführung des Makros nicht zu unterbrechen.

  • Makro optimieren: Bei großen Datenmengen kann es hilfreich sein, Application.ScreenUpdating = False zu setzen, bevor Du das Makro ausführst, und am Ende wieder auf True zu setzen, um die Performance zu verbessern.


FAQ: Häufige Fragen

1. Warum werden Nachkommastellen in meiner MsgBox korrekt angezeigt, aber nicht in der Zelle? Die MsgBox zeigt den Wert in der korrekten Formatierung an, während Excel möglicherweise die Regionseinstellungen für die Zelle verwendet. Überprüfe die Zellenformatierung und Regionseinstellungen.

2. Wie kann ich sicherstellen, dass meine Werte immer im richtigen Format erscheinen? Verwende den NumberFormat Befehl in VBA, um die Zellenformatierung vor dem Einfügen des Wertes festzulegen. So kannst Du sicherstellen, dass die Nachkommastellen immer korrekt angezeigt werden.

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