Thema Datum  Von Nutzer Rating
Antwort
06.04.2017 10:14:28 Jenny
NotSolved
06.04.2017 15:12:21 BigBen
NotSolved
Rot VBA wandelt Komma in Punkt um
12.04.2017 16:17:02 Jenny
NotSolved
12.04.2017 16:50:59 BigBen
Solved
13.04.2017 10:21:58 Jenny
NotSolved
13.04.2017 10:52:23 Gast94457
NotSolved

Ansicht des Beitrags:
Von:
Jenny
Datum:
12.04.2017 16:17:02
Views:
681
Rating: Antwort:
  Ja
Thema:
VBA wandelt Komma in Punkt um

Hallo,

ich habe seit der Antwort viel rumprobiert und nun habe ich nahezu eine Lösung gefunden. Das Problem liegt vermutlich wirklich an diesen Ländereinstellunge.

Bei mir wird werden die Zahlen mit der Mid-Funktion aus Texten herausgefiltert, teilweise sind dort dann neben den Zahlen noch Leerzeichen enthalten, deswegen gibt es diese Probleme mit der Umstellung. Excel möchte halt leider helfen und wandelt sie dann von alleine um.

Mir ist später aufgefallen, dass der Punkt den ich gesehen habe gar keiner war, sondern nur ein Trennzeichen, da Excel die Zahl ja einfach umgewandelt hat. Deswegen ging der Replace nicht.

Nun ja nun zur meiner bisherigen Lösung:

Damit Excel mir nicht wieder von alleine die Zahlen umwandelt habe ich nun vorab die Zellen als Text formatiert.

Worksheets(blatt2).Range("G:G").NumberFormat = "@"

Nun werden mir die Werte wie auf dem Ausgangsblatt(blatt1) ausgegeben. Das Minuszeichen kann ich auch schon mit dem anschließenden Right/Left-Befehlt auf die linke Seite ziehen.

In Excel sind an den Zellen nun die Fehlermeldungen ("Als Text gespeicherte Zahl"). Wenn ich die anklicke und in eine Zahl umwandel dann wird es genau so wie ich es möchte. Leider ist der Makro-Rekorder leer, wenn ich die Umwandlung über den Fehlerdialog mache.

Nun gut, auch dafür habe ich dank Google eine Lösung gefunden.

spalten = Array(7)
For s = 0 To UBound(spalten) - 1
    For x = 2 To 100 'testweise erstmal nur für die ersten 100 zeichen
        If Not IsEmpty(Cells(x, spalten(s))) Then
        Cells(x, spalten(s)) = CDbl(Cells(x, spalten(s)))
        Cells(x, spalten(s)).NumberFormat = "General"
        End If
    Next x
Next s

Ich prüfe vorher, ob die Zelle leer ist, da ich sonst die Fehlermeldung Typen unverträglich bekomme. Bei den Zellen ganz ohne Wert klappt das wunderbar.

Nun habe ich aber auch Zellen einfach mit Leerzeichen (weil in dem Ausgangstext dann keine Werte enthalten waren). Mit dem If Nos IsEmpty kann ich diese nicht herausfiltern. Gibt es dafür eine Lösung, sodass ich es nur auf die Zellen anwende, wo eine Zahl enthalten ist?

 

Ganz schön umständlich in Excel, diese ganzen Text-/Zahlenforamte hin-, her- und umzuwandeln.

Danke bisher für den Denkanstoß :) 

Jenny


 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
06.04.2017 10:14:28 Jenny
NotSolved
06.04.2017 15:12:21 BigBen
NotSolved
Rot VBA wandelt Komma in Punkt um
12.04.2017 16:17:02 Jenny
NotSolved
12.04.2017 16:50:59 BigBen
Solved
13.04.2017 10:21:58 Jenny
NotSolved
13.04.2017 10:52:23 Gast94457
NotSolved