Makro Excel 2003; Laufzeitfehler 13

PC-Nutzer

Cadet 4th Year
Registriert
Aug. 2008
Beiträge
82
Hallo,

ich nutze ein Makro (in Excel 2003), dass Inhalte verschiedener Tabellenblätter mit Inhalten immer des selben Tabellenblattes vergleicht und bei Übereinstimmung den Dateninhalt einer Parallelzelle einfügt.

Bislang klappte dies auch ohne Probleme. Nun jedoch kommt "Laufzeitfehler 13" "Typen unverträglich". Eine Änderung der betreffenden Tabellenblätter ist mir nicht bewusst, so dass mir nicht ganz klar ist, weshalb diese Fehlermeldung kommt.

Allerdings scheint das Makro die Arbeit richtig auszuführen und übernimmt alle Daten wie es soll. Jedoch nach Vergleich der entsprechenden Tabellenblätter bricht dann das Makro ab.

Bei der Arbeitsmappe ist so aufgebaut:

Tabellenblatt Übersicht, Tabellenblätter nummert mit 1, 2, 3, etc., Tabelle1, sowie noch weitere verschieden lautende Tabellnblätter.

Hie mal das Makro. Die markierte Zeile wird mir angezeigt.


Bitte auch um Mitteilung, was grundsätzlich die Bedeutung von Laufzeitfehler 13 Typen unverträglich bedeutet.

Merci


Sub DatenÜbernehmen()
Dim aktuellesBlatt As Worksheet, vergleichsBlatt As Worksheet
Dim aktuelleReihe As Integer, vergleichsReihe As Integer


Set vergleichsBlatt = Worksheets("Tabelle1")

For Each aktuellesBlatt In Worksheets
If aktuellesBlatt.Name <> "Übersicht" And aktuellesBlatt.Name <> "Tabelle1" Then
aktuelleReihe = 1
For aktuelleReihe = 5 To 31
vergleichsReihe = 1
Do Until IsEmpty(vergleichsBlatt.Range("B" & vergleichsReihe))
If aktuellesBlatt.Range("D" & aktuelleReihe).Value = vergleichsBlatt.Range("B" & vergleichsReihe).Value Then
aktuellesBlatt.Range("F" & aktuelleReihe).Value = vergleichsBlatt.Range("C" & vergleichsReihe).Value
End If
vergleichsReihe = vergleichsReihe + 1
Loop
Next aktuelleReihe
End If
Next aktuellesBlatt

Application.Cursor = xlDefault
Application.StatusBar = False

MsgBox "Übernahme Daten beendet"
End Select
End Sub
 
Typen unverträglich bedeutet immer, dass beispielsweise Variablen unterschiedlicher Typen (z. B. Text mit Zahlen) verglichen werden und Excel somit Äpfel mit Birnen vergleichen soll. Auch ungültige Zuweisung von Werten (des falschen Typs) erzeugt diese Fehlermeldung.

Zunächst dachte ich, es liegt daran dass ("D" & aktuelleReihe) nicht funktioniert, da das & Strings verknüpft und die Variable aktuelleReihe ein Zahlenwert ist. Genauer müsste es eigentlich heißen ("D" & cStr(aktuelleReihe))... doch das "&" schluckt diesen Fehler und führt das cStr implizit aus.

Es könnte auch an dem .Value liegen. Wenn das Ergebnis des .Value bei einem eine Zahl, beim anderen ein Text ist, kann es auch nicht verglichen werden.
 
Hallo PC-Nutzer,

ich tippe mal darauf, dass der Datentyp INTEGER "muckt". Sollte in der Schleife einmal eine Zeile > 32.767 an die Reihe kommen, dann hast du den Salat. Integer hat (nur) einen
Bereich von -32.768 bis 32.767 . Versuche einmal LONG als Datentyp, vielleicht hilft es ja ...

(Ich bin im Moment einfach zu kaputt, um den Code zu analysieren , sorry.)
 
Leider bin ich mit VB nicht so fit. Also ich kann zwar erkennen, was das Makro macht, aber selbst erstellen kann ich das leider nicht.

Bezüglich der Zeile >32.767:

Also ich weiß ja nicht, ob durch das Makro automatisch bis zu dieser Zeile verglichen wird. In der Vergleichstabelle "Tabelle1" würde ein Abgleich bis Zeile 3000 ausreichen.


Wie ich "LONG" verwenden soll, keine Ahnung. Sorry, bin da nicht wirklich fit drin.

Merci
 
OK, sorry ...
Code:
Sub DatenÜbernehmen()
Dim aktuellesBlatt As Worksheet, vergleichsBlatt As Worksheet
Dim aktuelleReihe As [B]Long[/B], vergleichsReihe As [B]Long[/B]


Set vergleichsBlatt = Worksheets("Tabelle1")
[..]
Die beiden fett markierten Worte sind es, die du ändern musst, dann noch einmal probieren!
 
Leider hat die Änderung in "Long" keine Besserung erbracht. Das Makro bricht erneut mit dem gleichen Fehlerhinweis ab.

Da die Daten jedoch -nach Strichprobe- richtig übernommen worden zu sein scheinen, muss es an den Tabellenblättern liegen, deren Inhalte nicht verglichen werden sollen.


Also verglichen werden sollen ja nur die nummerierten Tabellenblätter mit Tabelle1.


Die Mappe ist so nach Tabellenblättern aufgebaut:

Übersicht, 1, 2, 3, etc., Tabelle1, sowie noch weitere verschieden lautende Tabellenblätter.


Weiß jetzt nicht, ob in dem Makro das so berücksichtigt ist.


Merci
 
Zurück
Oben