Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
824to828
824to828
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

tatsaechlichen Wert uebernehmen

tatsaechlichen Wert uebernehmen
27.11.2006 21:00:46
Christian
Hallo zusammen,
ich uebernehme mittels Makro Daten von einem Sheet in den anderen. Auf dem Quell Sheet haben die Daten tatsaechlich ca. 10 Nachkommastellen, werden aber aufgrund einer Formatierung nur mit 2 Nachkommastellen angezeigt.
Wenn ich mein Makro nun laufen lasse, werden die nicht die eigentlichen sondern die auf 2 Nachkommastellen gerundeten Daten genommen.
Ich verwende fuer die Abfrage einen ganz einfachen Code:
a2c_final = Worksheets(target_sheet).Cells(j, a2c_number)
desc_final = Worksheets(target_sheet).Cells(j, part_desc)
cost_final = Worksheets(target_sheet).Cells(j, cost)
qty_final = Worksheets(target_sheet).Cells(j, qty)
total_final = Worksheets(target_sheet).Cells(j, total)
category_final = Worksheets(target_sheet).Cells(j, category)
discount_final = Worksheets(target_sheet).Cells(j, discount)
cust_final = Worksheets(target_sheet).Cells(j, cust)
Das ist dann noch in ein paar Schleifen, etc verpackt. Aber die reine Abfrage und Zuweisung in die Variablen geschieht hier.
Warum wird hier denn nicht der eigentliche Wert uebernommen?
Vielen Dank
Chris

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: tatsaechlichen Wert uebernehmen
27.11.2006 22:00:13
Matthias
Hallo Chris,
Wenn ich mein Makro nun laufen lasse, werden die nicht die eigentlichen sondern die auf 2 Nachkommastellen gerundeten Daten genommen.
Wie hast du das herausgefunden?
Und wie hast du die ..._final-Variablen denn deklariert? Als Double?
Gruß Matthias
AW: tatsaechlichen Wert uebernehmen
27.11.2006 23:30:58
Christian
Hallo Matthias,
In meinem Ziel Sheet werden die Werte mit nur 2 Nachkommastellen angezeigt und es wird auch nur noch mit 2 gerechnet! Hab ich ausprobiert!
Diese final Variablen sind gar nicht deklariert. Wenn ich sie als Double deklariere bekomme ich einen Type Mismatch Fehler.
Die Daten in diese Variablen werden ja direkt von Zellen auf einem anderen Sheet gelesen, deshalb dachte ich dass das kein Problem ist.
Gruss
Christian
Anzeige
AW: tatsaechlichen Wert uebernehmen
27.11.2006 22:04:18
Peter
Hallo Christian,
weil du die Daten mit ihrem Format (zwei Nachkommastellen) übernimmst.
versuch es mit Neuformatierung
a2c_final = format(Worksheets(target_sheet).Cells(j, a2c_number), "#,##0.0000000000")
oder mit a2c_final = CDbl(Worksheets(target_sheet).Cells(j, a2c_number)), vielleicht genügt das auch.
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Allein mir fehlt der Glaube...
27.11.2006 22:42:39
Erich
Hallo Christian und Peter,
diese beiden Aussagen glaube ich einfach nicht:
- werden die nicht die eigentlichen, sondern die auf 2 Nachkommastellen gerundeten Daten genommen.
- weil du die Daten mit ihrem Format (zwei Nachkommastellen) übernimmst
Und das würde ich jedenfalls nicht tun:
- versuch es mit Neuformatierung
a2c_final = format(Worksheets(target_sheet).Cells(j, a2c_number), "#,##0.0000000000")
- oder mit a2c_final = CDbl(Worksheets(target_sheet).Cells(j, a2c_number)), vielleicht genügt das auch.
Es ist (wegen der sichtbaren 2 Nachkommastellen) davon auszugehen, dass die Variablen vom Typ Double sind.
Eine Zuweisung dblX = cells(x,y) kümmert sich nicht um das Zahlenformat, sondern überträgt den Wert.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Allein mir fehlt der Glaube...
27.11.2006 23:36:43
Christian
Hallo,
ich gerade nochmal ueber das komplette Makro geschaut. Bevor ich die Daten auf den Zielsheet hole werden sie auf dem Quellsheet noch wie folgt formatiert:
With Worksheets(target_sheet)
.Range("G:H").NumberFormat = """$""#,##0.00"
.Range("J:J").NumberFormat = "0%"
.Range("K:K").NumberFormat = """$""#,##0.00"
End With
Sobald ich diese Formatierung rausnehme funktioniert alles korrekt. Und wie gesagt die _final Variablen habe ich explizit nicht deklariert!
Danke
Christian
Danke für Rückmeldung - jetzt glaub ichs (oT)
28.11.2006 00:05:59
Erich
AW: Kommando zurück ...
28.11.2006 00:28:08
Erich
Hallo Christian,
nein, ich glaubs doch immer noch nicht!
Die Formatierung hat keinen Einfluss auf den Wert. Schau dir mal (auf einem leeren Blatt) das Beispiel an:
Sub tst()
Dim dblW As Double, varW, strW As String, dblT As Double
Cells(1, 1) = 1 / 7
Cells(1, 1).NumberFormat = "0.00"
dblW = Cells(1, 1)
varW = Cells(1, 1)
strW = Cells(1, 1)
dblT = Cells(1, 1).Text
MsgBox Cells(1, 1) & "  Cells(1,1)" & vbLf _
& dblW & "  dblW" & vbLf _
& varW & "  varW" & vbLf _
& strW & "  strW" & vbLf _
& dblT & "                            dblT" & vbLf _
& Cells(1, 1).Text & "                            Cells(1,1).Text"
End Sub
An irgendeiner Stelle in deinem Code sollte noch etwas stehen,
das die Werte in den Zellen (nicht die Formate) ändert...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: tatsaechlichen Wert uebernehmen
28.11.2006 00:10:44
Christian
Hallo Peter,
a2c_final = format(Worksheets(target_sheet).Cells(j, a2c_number), "#,##0.0000000000")
funktioniert leider nicht! da bekomme ich immer einen Type Mismatch!
oder mit a2c_final = CDbl(Worksheets(target_sheet).Cells(j, a2c_number)), vielleicht genügt das auch.
klappt, allerdings wird hierbei auf 4 Nachkommastellen gerundet und ich wuerde gerne alle haben.
Noch eine Idee?
Danke
Christian
AW: tatsaechlichen Wert uebernehmen
28.11.2006 00:27:19
Christian
Hall zusammen,
ich habe das Problem jetzt einfach umgegangen indem ich die Formatierung auf dem Quell Sheet erst nach der Datenuebernahme durchfuehre. Aber es liegt definitiv an der Formatierung, sobald ich die wegnehme haut alles hin.
Nochmals danke,
Christian
Anzeige
AW: tatsaechlichen Wert uebernehmen
28.11.2006 00:38:08
Erich
Hallo Christian,
eine mögliche Ursache:
Ist bei
Extras - Optionen auf der Registerkarte "Berechnung" ein Haken bei "Genauigkeit wie angezeigt"?
Wenn ja, würde ich diesen Haken ganz schnell rausnehmen...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: tatsaechlichen Wert uebernehmen
28.11.2006 17:39:25
Christian
Hallo Erich,
dieser Haken ist bei mir nicht gesetzt. Ich kann es mir auch nicht erklaeren woran es liegt. Ich bin genau deiner Meinung, normalerweise hat die Formatierung nichts mit dem Wert zu tun, aber ich hab keine Ahnung was hier schief laeuft!
Aber nachdem ich die Formatierung jetzt erst am Ende durchfuehre hat das keinen Einfluss mehr!
Vielen Dank,
Christian
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige