Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1656to1660
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
07.11.2018 17:07:41
Bastian
Hallo zusammen,
ich habe ein Problem mit meinem Code.
Ich möchte mit diesem Code anhand von Kriterien die in der Datei stehen, in der der Code ist (die Auswertungstabelle), Zeilen aus einer anderen Datei Zeile für Zeile überprüfen.
Anschließend, wenn alle Bedingungen zutreffend sind, möchte ich die komplette Zeile in das Blatt "AE_Selection" in der Auswertungstabelle kopieren.
Wenn ich das Makro laufen lasse, gibt Excel mir bei der ersten IF Bedingung die Fehlermeldung "Laufzeitfehler '13': Typen unverträglich" aus.
Vielleicht kann mir jemand bei dem Problem helfen. Würde mich sehr freuen!
Vielen Dank im Voraus!
Grüße Basti
Sub AESelection()
Dim x As Long
Dim y As Long
Dim i As Long
Dim AE As Workbook
Dim AÜ As Workbook
Dim AWK As Workbook
Dim Lastrow As Long
'Variablendeklaration
y = 2
i = 3
Set AE = Workbooks.Open(ThisWorkbook.Path & "\Ausschuss Export.xls")
Set AWK = ThisWorkbook
With AE.Sheets("sheet1")
Lastrow = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
For x = 4 To Lastrow
'Arbeitsgang oder Warteschlange
If AE.Sheets("sheet1").Cells(x, 26) = (AWK.Sheets("Auswertung").Cells(4, 4) Or AE. _
Sheets("sheet1").Cells(x, 7) = AWK.Sheets("Auswertung").Cells(4, 6)) Then
'Artikelnummer
If AE.Sheets("sheet1").Cells(x, 1) = AWK.Sheets("Auswertung").Cells(8, 4) Or AE. _
Sheets("sheet1").Cells(x, 1) = "0" Then
'Losnummer
If AE.Sheets("sheet1").Cells(x, 24) >= AWK.Sheets("Auswertung").Cells(8, 6) Or  _
AE.Sheets("sheet1").Cells(x, 1) = "0" Then
'Fehlercode
If AE.Sheets("sheet1").Cells(x, 8) = AWK.Sheets("Auswertung").Cells(6, 4)  _
Or AE.Sheets("sheet1").Cells(x, 8) = "0" Then
'Datecode
If AE.Sheets("sheet1").Cells(x, 11) = AWK.Sheets("Auswertung").Cells(10, _
4) Or AE.Sheets("sheet1").Cells(x, 11) = "0" Then
'Technologie
If AE.Sheets("sheet1").Cells(x, 16) = AWK.Sheets("Auswertung"). _
Cells(6, 6) Or AE.Sheets("sheet1").Cells(x, 16) = "0" Then
'Zeitraum
If AE.Sheets("sheet1").Cells(x, 10) >= AWK.Sheets("Auswertung"). _
Cells(12, 4) And (AE.Sheets("sheet1").Cells(x, 10) 


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 13 Typen unverträglich
07.11.2018 17:18:39
Daniel
Hi
was steht denn in den Referenzierten Zellen drin, wenn der Fehler auftritt.
in den Zellen selbst sollte kein Fehlerwert wie #NV oder #DIV/0 stehen.
wenn doch müsstest du dies bereinigen.
Wenn die Fehlerwerte in den Zellen vorkommen dürfen, müsstest du deinen Code anpassen, da diese Fehlerwerte nicht "normal" von VBA verarbeitet werden können.
der einfachste Workaround wäre dann, dass du alle deine Zellbfragen auf die Eigenschaft .Text machst, dann werden die Zellwerte als Text so wie sie in der Zelle angezeigt werden verwendet:
If AE.Sheets("sheet1").Cells(x, 26).Text = (AWK.Sheets("Auswertung").Cells(4, 4).Text Or AE. _
Sheets("sheet1").Cells(x, 7).Text = AWK.Sheets("Auswertung").Cells(4, 6)).Text Then
Gruß Daniel
Anzeige
AW: Laufzeitfehler 13 Typen unverträglich
07.11.2018 17:23:05
Daniel
Hi
was steht denn in den Referenzierten Zellen drin, wenn der Fehler auftritt.
in den Zellen selbst sollte kein Fehlerwert wie #NV oder #DIV/0 stehen.
wenn doch müsstest du dies bereinigen.
Wenn die Fehlerwerte in den Zellen vorkommen dürfen, müsstest du deinen Code anpassen, da diese Fehlerwerte nicht "normal" von VBA verarbeitet werden können.
der einfachste Workaround wäre dann, dass du alle deine Zellbfragen auf die Eigenschaft .Text machst, dann werden die Zellwerte als Text so wie sie in der Zelle angezeigt werden verwendet:
If AE.Sheets("sheet1").Cells(x, 26).Text = (AWK.Sheets("Auswertung").Cells(4, 4).Text Or AE. _
Sheets("sheet1").Cells(x, 7).Text = AWK.Sheets("Auswertung").Cells(4, 6)).Text Then
Gruß Daniel
Anzeige
AW: Laufzeitfehler 13 Typen unverträglich
08.11.2018 14:29:23
Bastian
Hallo Daniel,
habe die Eigenschaft .text bei einigen Werte, bei denen es Sinn macht eingefügt aber der Fehler lag an der Position der hier fett markierten Klammern: Diese Überprüfung macht keine Sinn.

If AE.Sheets("sheet1").Cells(x, 26) = (AWK.Sheets("Auswertung").Cells(4, 4) Or AE. _
Sheets("sheet1").Cells(x, 7) = AWK.Sheets("Auswertung").Cells(4, 6)) Then
Allerdings hätte ich noch eine weitere Frage:
Ich öffne mit diesem Code die Datei "Ausschuss Export"
Set AE = Workbooks.Open(ThisWorkbook.Path & "\Ausschuss Export.xls")
und verweise anschließend mit jedem AE. auf diese Funktion. Wird hier dann jedes mal wenn AE. ausgeführt wird das Workbook neu geöffnet? Wenn ja gibt es eine effizientere Variante auf das Workbook zuzugreifen? Also so, dass weniger Rechenleistung benötigt wird?
Denn wenn das Makro fertig ist soll es 2 mal Datensätze mit je ca 100 000 Zeile durchsuchen. Da wäre eine Ersparnis der Rechenleistung schon sehr angenehm.
Vielen Dank im Voraus!
Anzeige
AW: Laufzeitfehler 13 Typen unverträglich
08.11.2018 14:34:46
Daniel
hi
das workbook bleibt solange geöffnet, bis du es schließt
wenn du AE verwendest wird immer nur auf die geöffnete Datei zugegriffen.
solltest du die Datei schließen und danach AE nochmal verwenden, sollte das einen Fehler ergeben.
Gruß Daniel
AW: Laufzeitfehler 13 Typen unverträglich
08.11.2018 15:14:32
Bastian
Hi,
ah sehr gut!
Eine effizientere Methode fällt dir auf Anhieb nicht ein oder ?
Gruß Basti
AW: Laufzeitfehler 13 Typen unverträglich
08.11.2018 15:14:34
Bastian
Hi,
ah sehr gut!
Eine effizientere Methode fällt dir auf Anhieb nicht ein oder ?
Gruß Basti

146 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige