Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
316to320
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
316to320
316to320
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Fehler bei Umwandlung

Fehler bei Umwandlung
28.09.2003 16:06:29
Udo
Hallo Zusammen,

ich habe folgendes Problem:

Ich erhalte Zahlen mit Punkt-Werten wie 107.0 mit diesen Zahlen kann man keine Grafikdarstellen.

Kurz um hat mir mein Kollege ein Macro Erstellt, bis Werte unter 100 funktioniert die Sache gut über 100 bekomme ich falsche Werte wie 107.0 wird 16,40 und das ist falsch heraus kommen soll 107,00.

Dieses Macro verwende ich:

Public

Sub tabelle_reparieren()
Dim LastPlace, Z As Variant, X As Variant
Dim Hilf, Hilf2, HilfLänge, HilfKomma, Counter As Integer
Dim dZahl As Double
Dim lZahl1 As Long
Const AnfangsSpalte As Integer = 8
Const AnfangsZeile As Integer = 2
Const MaxWert As Integer = 80
Const markieren As Integer = 1  ' 0 für kein FETT-Schrift bei geänderten Feldern
Counter = 0 'fehlerzähler auf 0 initalisieren
LastPlace = ActiveCell.SpecialCells(xlLastCell).Address
ActiveSheet.Range(Cells(AnfangsZeile, AnfangsSpalte), LastPlace).Select
Z = Selection.Address                        'Get the address
For Each X In ActiveSheet.Range(Z)       'Do while
If Len(X) > 0 Then                   'Find cells with something
HilfKomma = InStr(X, ".")
If (IsNumeric(X) And (HilfKomma > 0)) Then
' ########## FEHLER 1) zahl mit "." gefunden
HilfLänge = Len(X)
Hilf = Mid(X, 1, HilfKomma - 1)
Hilf2 = Mid(X, HilfKomma + 1, HilfLänge - HilfKomma)
If Left(Hilf, 1) = "-" Then ' wenn Zahl vor Komma negativ, dann müssen die beiden Werte subtrahiert werden
dZahl = CDbl(Hilf) - (CDbl(Hilf2) / 10)
Else    ' ansonsten müssen sie addiert werden
dZahl = CDbl(Hilf) + (CDbl(Hilf2) / 10)
End If
'ist zahl negativ? wenn ja, ausdruck negieren
'If Left(Hilf, 1) = "-" Then
'    dZahl = -dZahl
'End If
X.NumberFormat = "##0.00"
X.Value = dZahl
Counter = Counter + 1
If markieren Then
X.Font.Bold = True  ' geändertes markieren
End If
End If
If (CDbl(X) > MaxWert) Then
' ########## FEHLER 2) ungewolltes datumsfeld gefunden
Hilf = CStr(Day(X))
Hilf2 = CStr(Month(X))
dZahl = CDbl(Hilf) + (CDbl(Hilf2) / 10)
X.NumberFormat = "##0.00"
X.Value = dZahl
Counter = Counter + 1
If markieren Then
X.Font.Bold = True  ' geändertes markieren
End If
End If
Else
' else -> Feld ist leer! also nix machen
End If
Next
MsgBox ("Anzahl der Fehler in dieser Tabelle: " + CStr(Counter))
End Sub


Weiß Jemand Rat oder Tat wo der Fehler im Detail steckt. Bin über jeden Rat Dankbar .

Udo

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei Umwandlung
28.09.2003 16:41:03
Beni
Hallo Udo,
erhöhe den MaxWert,
z.B. Const MaxWert As Integer = 10000
Gruss Beni
AW: Fehler bei Umwandlung
28.09.2003 19:12:32
Udo
Hallo Beni,

Danke schnelle Hilfe Super Weiter SO !!!

Udo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige