Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1120to1124
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
Jochen
Hallo Freunde,
habe folgendes Makro aufgezeichnet:
Sheets("Auftrag 1").Select
Range("O1").Select
Selection.EntireColumn.Hidden = False
Range("O11:O310").Select
Selection.Copy
Range("P11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("O13").Select
Selection.EntireColumn.Hidden = True
Sheets("Gesamt A1").Select
Columns("A:A").Select
Selection.ClearContents
Sheets("Auswertung A1").Select
Range("D1:D310").Select
Selection.Copy
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Sheets("Auswertung A1").Select
Range("A2").Select
Dim quelle As Worksheet, ziel As Worksheet
Dim i As Integer, j As Integer
Dim vorhanden As Boolean
Set quelle = Application.Worksheets("Auswertung A1")
Set ziel = Application.Worksheets("Gesamt A1")
ReDim artnr(quelle.Cells(Rows.Count, 1).End(xlUp).Row) As String
j = -1
For i = 1 To Sheets("Auswertung A1").Cells(Rows.Count, 1).End(xlUp).Row
vorhanden = False
For k = 0 To j
*** If quelle.Cells(i, 1) = "" Or quelle.Cells(i, 1) = artnr(k) Then vorhanden = True ***
End If
Next k
If vorhanden = False Then
j = j + 1
artnr(j) = quelle.Cells(i, 1)
End If
Next i
For i = 0 To j
ziel.Cells(i + 1, 1) = artnr(i)
Next i
Sheets("Gesamt A1").Select
Range("A1").Select
End Sub
Mein Problem:
In der Ursprungsdatei hatte ich 200 Zeilen die mir dieses MAKRO ausgewertet hat und es war alles in Ordnung.
Dann habe ich noch 100 Zeilen hinzu gefügt und auch geklappt.
Jetzt versuche ich wieder Zeilen zu löschen und das MAKRO hängt sich an dieser Zeile auf:
*** If quelle.Cells(i, 1) = "" Or quelle.Cells(i, 1) = artnr(k) Then vorhanden = True ***
Sternchen nur die Kennzeichnung, an welcher Stelle das MAKRO stehen bleibt.
Hat einer in der großen EXCEL - Weld eine Lösung für mich parat?
Danke im voraus,
Jochen
AW: Laufzeitfehler "13": Typen unverträglich
01.12.2009 09:55:30
Peter
Hallöchen Jochen,
lasse die Frage zwar mal offen, aber:
Hast Du die Datei nach dem Löschen der Zeilen gespeichert?
Lässt Du das Makro mehrmals hintereinander durchlaufen? (Wenn ja, solltest Du rein vorsichtshalber die Variable i auf 0 zurücksetzen.
Gruß
Peter
AW: Laufzeitfehler "13": Typen unverträglich
01.12.2009 10:29:13
Jochen
Hallo Peter,
habe die Änderung vorgenommen:
If quelle.Cells(o, 1) = "" Or quelle.Cells(o, 1) = artnr(k) Then vorhanden = True
Erst nach dem ich in dieser Zeile "artnr(j) = quelle.Cells(i, 1)" auch die Änderung vorgenommen habe läuft das MAKRO etwas weiter.
Nun bleibt es an diese Stelle stehen:
artnr(j) = quelle.Cells(o, 1)
Gruß
Jochen
Anzeige
AW: Laufzeitfehler "13": Typen unverträglich
02.12.2009 08:40:35
Peter
Hallo Jochen,
hab mir gerade nochmal Dein Progrämmchen vorgenommen.
Wenn Du es folgendermaßen veränderst, funktioniert es bei mir ohne Probleme auch ohne zwischenspeichern.
Set quelle = Application.Worksheets("Auswertung A1")
Set ziel = Application.Worksheets("Gesamt A1")
ReDim artnr(quelle.Cells(Rows.Count, 1).End(xlUp).Row) As String
j = 1
For i = 1 To Sheets("Auswertung A1").Cells(Rows.Count, 1).End(xlUp).Row
vorhanden = False
If quelle.Cells(i, 1) = "" Or quelle.Cells(i, 1) = artnr(i) Then vorhanden = True
If vorhanden = False Then
artnr(i) = quelle.Cells(i, 1)
End If
Next i
i = i - 1
For j = 1 To i
ziel.Cells(j, 1) = artnr(j)
Next j
Gruß Peter
Anzeige
AW: Laufzeitfehler "13": Typen unverträglich
02.12.2009 09:50:37
Jochen
Hallo Peter,
habe Deine Änderung in mein MAKRO 1 : 1 kopiert und es bleibt an der Gleichen Stelle:
[ If quelle.Cells(i, 1) = "" Or quelle.Cells(i, 1) = artnr(i) Then vorhanden = True ] stehen.
Kann die Datei leider nicht hochladen, da sie zu groß ist ( 3 MB ).
Gruß
Jochen
AW: Laufzeitfehler "13": Typen unverträglich
02.12.2009 10:27:17
Peter
Hallo Jochen,
hab gerade eben nochmal das komplette Makro ausprobiert und es läuft bei mir einwandfrei.
Mit welcher Fehlermeldung bleibt er denn stehen. Wäre vielleicht noch ein Hinweis, auf dem man aufbauen kann.
Gruß
Peter
AW: Laufzeitfehler "13": Typen unverträglich
02.12.2009 10:38:50
Jochen
Hallo Peter,
Habe jetzt die Zeile 296 bis zur letzen Zeile ( 311 ) aus meiner Datei gelöscht.
Die Fehlermeldung lautet:
Laufzeitfehler '13':
Typen unverträglich
diese Zeile wird Gelb hinterlegt:
If quelle.Cells(i, 1) = "" Or quelle.Cells(i, 1) = artnr(k) Then
Gruß
Jochen
Anzeige
AW: Laufzeitfehler "13": Typen unverträglich
02.12.2009 11:03:00
Peter
Hallo Jochen,
nochmal ne Frage:
Aus welchem Blatt löscht Du die Zeilen?
Hast Du auf einem der ersten Blätter evtl. in den entsprechenden Zeilen Zellbezüge auf die fehlenden Zeilen? Dann kommt nämlich ne Fehlermeldung beim löschen raus.
Gruß
Peter
AW: Laufzeitfehler "13": Typen unverträglich
02.12.2009 11:18:09
David
Hallo Jochen,
da ich wohl in dem Thread ignoriert werde - zumindest habe ich kein Feedback auf meinen Beitrag bekommen - wollte ich mich eigentlich raushalten.
Aber noch als kleiner Tip:
Wenn man für die Variablen eine Überwachung einfügt, kann man kontrollieren, bei welchem Wert der Fehler auftriff. Somit lässt er sich auch besser eingrenzen.
Ich vermute, entweder ist i oder k negativ, oder das ="" verursacht den Fehler, denn wenn ein numerischer Wert leer ist, ergibt das nicht "" sondern 0.
Gruß
David
Anzeige
AW: Laufzeitfehler "13": Typen unverträglich
02.12.2009 12:33:29
Jochen
Hallo David,
das sollte kein Ignorieren sein, bloß mit Deinem Tipp konnte ich nicht sorecht etwas anfangen. Im VBA bin ich nicht sogut das ich solche Tipps umsetzen kann.
Deinen Tipp mit dem Kürzen der Formeln werde ich einbauen.
Danke für Deine Bemühungen;-)
Gruß
Jochen
AW: Laufzeitfehler "13": Typen unverträglich
02.12.2009 12:28:51
Jochen
Hallo Peter,
Deine Frage nach dem Tabellenblatt hat geholfen.
Habe die Zeilen nur in dem Tabellenblatt "Auftrag 1" gelöscht aber nicht im Tabellenbaltt "Auswertung A1", so mit blieb das MAKRO stehen.
Danke für Deine bemühungen;-)
Gruß
Jochen
AW: Laufzeitfehler "13": Typen unverträglich
01.12.2009 10:25:08
David
Hallo Jochen,
bei Code, der ganze Zeilen und/oder Spalten löscht, sollte man immer von hinten/unten nach vorn/oben abarbeiten, also nach dem Muster
For i=100 to 1 step -1
Ansonsten werden nach jedem Löschvorgang eine oder mehrere Zeilen übersprungen, da der Zähler ja schon eine Nummer weiter ist, die nachfolgenden aber hochrutschen.
Ich habe aber nicht getestet, ob das deinen Fehler löst.
Außerdem solltest du dich dringen mit dem Nicht-Notwendigsein von Select auseinandersetzen. Die Aufzeichnungen des Recorders sind in der Hinsicht seeeehr unübersichtlich.
Nur ein Beispiel:
statt
Range("O11:O310").Select
Selection.Copy
kann man schreiben:
Range("O11:O310").Copy
Leider findet man das in der Hilfe so nicht, so dass man dies nur per Learning-by-doing rausbekommt. Wenn du öfters im Forum unterwegs bist, wird dir dies immer wieder über die Füße laufen.
Gruß
David
Anzeige
AW: Laufzeitfehler "13": Typen unverträglich
01.12.2009 10:27:33
Yusuf
Moin,
versuche mal bitte bei
For k = 0 to j Step - 1
da j = -1 ist. Ich weiß nicht ob die Schleife sonst ins negative laufen kann.
Gruß
Yusuf

146 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige