Hallo zusammen ;)
habs jetzt geschafft :):):) :15:
zur Erklärung sollte das jemand mal brauchen:
Die Anforderung:
Den angezeigten Wert von Tabelle1 in Tabelle 2 übertragen, nur die angezeigten Kommastellen (0,00 ; 0,000 ; 0,0000) ohne den gesamten Wert im Hintergrund mitzunehmen.
Lösung:
Das Problem lag daran das die Tabelle (bzw. der PC) DecimalSeparator = "," (KOMMA) hatte (laut Betriebssystem)
VBA aber mit "." (PUNKT) rechnet und deshalb
cell(X,Y).value = cell(Z,U).text nicht funktioniert hat. (siehe weiter unten)
Habe jetzt mit diesem Makro, welches ich vor dem Übertragen laufen lasse primär auf "." (PUNKT) gestellt.
Code:
Sub KommastellenPunkt()
With Application
.DecimalSeparator = "."
.ThousandsSeparator = ","
.UseSystemSeparators = False
End With
End Sub
Vor Beenden der Übertragung schalte ich nochmal zurück aufs Betriebssystem
Code:
Sub KommastellenSystem()
With Application
.UseSystemSeparators = True
End With
End Sub
Somit kann jeder User in seiner Einstellung vom Betriebssystem die Werte eintragen und beim Übertragen wird eben kurzzeitig auf "." umgeschaltet.
ACHTUNG!
Wenn das nicht gemacht wurde :
Hat es den Wert 12,345 von Tabelle 1 (als Text) in der Tabelle 2 so übertragen: 12.345,00 (sprich ein Tausendertrennzeichen gesetzt)
cell(X;Y).value = cell(Z,U).text
12,345 = 12.345,00
mit .Value wurde der gesamte Wert Übertragen und nicht nur der angezeigte: (war nicht gewünscht)
cell(X;Y).value = cell(Z,U).value
12,345 = 12,3456789
Liebe Grüße,