Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1508to1512
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
Inhaltsverzeichnis

Laufzeitfehler 13 - Typen unverträglich

Laufzeitfehler 13 - Typen unverträglich
11.08.2016 13:58:38
Lu
Hallo, folgendes Programm liest Daten aus SAP und speichert diese in einer Exceltabelle. Bei folgender for-Schleife kommt bei dem 420 Datensatz (insgesammt sind es 527) ein Laufzeitfehler 13 - Typen unverträglich. Komisch daran ist, dass dieser Fehler nur sporadisch kommt.Wenn ich das Programm automatisch durchlaufen lasse bzw. im Debugmodus F8 die ganze Zeit gedrückt halte kommt er imemr. Wenn ich ab Datensatz 400 die For-Schleife langsam durchsteppe läuft es teilweise ohne Fehlermeldung korrekt zu Ende
Hier der Fehlerhafte ausschnitt aus dem Code... Fehler kommt in der For-Schleife
[code]
'Deaktivierung der automatischen Zellberechnung
Application.Calculation = xlCalculationManual
'Löschen der alten Inhalte
DATA.Range(DATA.Cells(2, 5), DATA.Cells(50000, 6)).ClearContents
'Laufen über jede Zeile der GridView und schreiben der Werte in Tabelle DATA
With DATA
Dim k As Integer
For k = 0 To olGridView.RowCount - 1
.Cells(k + 2, 5).Value = olGridView.GetCellValue(k, "MATNR")
.Cells(k + 2, 6).Value = Int(Replace(olGridView.GetCellValue(k, "MVGR4"), ".", ""))
'Neusetzen der aktuellen Zelle in jeder 30. Zeile, dass keine Leerstrings geliefert werden
If (k Mod 30 = 0) Then olGridView.SetCurrentCell k, "MATNR"
'Ladebalken berechnen
qp.Report.setPercent (k + 1) / olGridView.RowCount
Next k
'Automatische Zellberechnung wieder aktivieren
Application.Calculation = xlCalculationAutomatic
[/code]
Wie gesagt bei Datensatz 420 kommt dieser Fehler.
Ich habe das Programm nicht geshrieben, sondern soll jetzt nur dafür sorgen, dass es wieder funktioniert.
Allerdings sitzte ich jetzt schon einen halben Tag davor und weiss nicht woran das liegen könnte.
In der Tabelle sind auch keine außergewöhnlichen Datensätze - es sind sich immer wiederholende Matnr.
Hat jemand eine Idee was hier falsch läuft
Ach ja, der Fehler tritt immer in folgender Zeile auf:
.Cells(k + 2, 6).Value = Int(Replace(olGridView.GetCellValue(k, "MVGR4"), ".", ""))
Vielen Dank

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 13 - Typen unverträglich
11.08.2016 14:12:47
Michael
Hi Lu Cie,
kommentiere die fehlerhafte Zeile mal aus und ersetze sie durch die Zeile:
.Cells(k + 2, 6).Value = olGridView.GetCellValue(k, "MVGR4")
dann kannst Du Dir die Werte mal händisch ansehen.
Die Zeile ist sowieso seltsam: int liefert den Ganzzahl-Anteil einer Dezimalzahl zurück, wobei diese in VBA sowieso in der englischen Notation verwendet werden, mit DezimalPUNKT statt -komma.
D.h., es können folgende Fälle auftreten:
a) es handelt sich um eine "englische" Zahl mit ".", also etwa 123.45: mit Replace wird der . entfernt, so daß das Ergebnis 12345 sein sollte.
Dabei verlierst Du aber die Info, wo nun eigentlich der . saß!
b) ich vermute also eher, daß Tausenderpunkte entfernt werden sollen, also z.B. aus 123.456.789,123, dafür müßte aber das Dezimalkomma nach Entfernung des 1000er-Punktes wiederum durch einen . ersetzt werden, da VBA eben einen Dezimalpunkt erwartet.
Ohne Kenntnis Deiner Daten ist eine nähere Beurteilung also kaum möglich.
Schöne Grüße,
Michael
Anzeige
AW: Laufzeitfehler 13 - Typen unverträglich
11.08.2016 14:13:15
Lu
Habe es selber hinbekommen. Ich habe die problematische Zeile wie folgt abgeändert:
.Cells(k + 2, 6).Value = olGridView.GetCellValue(k, "MVGR4")
Also einfach den Int-Cast und das Replace weggelassen
ok, danke für die Rückmeldung
11.08.2016 14:33:06
Michael
Dann hast Du den Fehler ja entdeckt: daß nämlich möglicherweise Werte importiert werden, die mit int nicht verarbeitet werden können - aus welchen Gründen auch immer.
Gruß,
Michael

146 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige