Herbers Excel-Forum - das Archiv

Fehler bei Umwandlung

Bild

Betrifft: Fehler bei Umwandlung
von: Udo
Geschrieben am: 28.09.2003 16:06:29
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
Bild

Betrifft: AW: Fehler bei Umwandlung
von: Beni
Geschrieben am: 28.09.2003 16:41:03
Hallo Udo,
erhöhe den MaxWert,
z.B. Const MaxWert As Integer = 10000
Gruss Beni
Bild

Betrifft: AW: Fehler bei Umwandlung
von: Udo
Geschrieben am: 28.09.2003 19:12:32
Hallo Beni,

Danke schnelle Hilfe Super Weiter SO !!!

Udo
 Bild
Excel-Beispiele zum Thema " Fehler bei Umwandlung"
Fehlermeldung #NV ausblenden Fehlermeldung abfangen
Fehler in Workbook_Open-Prozedur abfangen Fehlermeldung #DIV/0! verhindern
Fehler entfernen Fehlermeldung abfangen und in sequentielle Datei schreiben
Fortlaufende Suche unter Vermeidung eines Laufzeitfehlers VBA-Fehlermeldungen auflisten
Alle Zellen mit der #BEZUG!-Fehlermeldung auswählen Zahlenstring mit Formel auslesen und Fehlermeldung verhindern