Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1088to1092
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

Fehler 13 "Typen unverträglich"

Fehler 13 "Typen unverträglich"
André
Moin zusammen,
ich stehe mal wieder mit VBA auf Kriegsfuß. Ich möchte aus einer Liste mit Zahlen die fehlenden _ Zahlen filtern und untereinander in eine andere Tabelle schreiben. Hierzu habe ich folgendes kleines Script geschrieben:

01    Dim DSNummern As Range
02    Set DSNummern = Range("DSNummer")
03    Dim I As Integer
04
05    Kleinster = Application.WorksheetFunction.min(Range("DSNummer"))
06
07    For Each Zelle In DSNummern
08        If Zelle.Value > Kleinster Then
09            If Zelle.Value > Zelle.Offset(-1, 0).Value + 1 Then
10                For I = 1 To Zelle.Value - Zelle.Offset(-1, 0).Value - 1
11                        ActiveCell.Value = Zelle.Offset(I * -1, 0).Value + 1
12                        ActiveCell.Offset(1, 0).Range("A1").Select
13                Next
14            End If
15        End If
16    Next

Lasse ich das laufen, bricht VBA mit Fehler 13 "Typen unverträglich" in Zeile 11 ab. Was mache ich falsch?
Zusatzfrage: kann ich den Ausdruck in Zeile 05 vereinfachen? Kann ich direkt die kleinste Nummer aus DSNummern abfragen, ohne über die Worksheet-Funktion min zu gehen?
Zusatzfrage 2: wie kann ich DSNummern numerisch sortieren? Für den Fall, daß die Liste mal nicht aufsteigend sortiert ist.
Gruß, André

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

Betreff
Benutzer
Anzeige
AW: Fehler 13 "Typen unverträglich"
23.07.2009 15:19:46
Helmut
Hallo André,
Frage 1: wahrscheinlich steht in der Zelle.Offset(I * -1,0) keine Zahl
Frage 2: nein, welches Problem besteht mit WorksheetFunction?
Frage 3: Zeichne den Sortiervorgang mit dem Macro Recorder auf und passe das Ergebnis an oder google nach Sortieralgorithmen, i.e. Bubble Sort
Gruß
Helmut
AW: Fehler 13 "Typen unverträglich"
23.07.2009 15:33:27
André
Hallo Helmut
zu 1. doch, in der Zelle steht eine Zahl, denn wenn ich zum Test Zelle.Offset(-1,0) benutze, kommt kein Fehler
zu 2. kein Problem, ich dachte nur, es ginge vllt. auch andres
zu 3. ich möchte nicht die Ausgabe sortieren, sondern das Array in dem die Eingabewerte stehen. Ggf. Ist nämlich die Usprungsliste unsortiert, diese darf ich aber nicht sortieren.
Gruß, André
Anzeige
AW: Fehler 13 "Typen unverträglich"
23.07.2009 16:05:47
Helmut
zu 1: Der Fehler entsteht, weil Zelle.Offset(I * -1,0) aus dem Range DSNummer herauswandern kann.
zu 3: Ein Array kommt in Deinem Code nicht vor. Mein Vorschlag: lies die Eingabewerte in ein VBA Array ein, sortiere dies, z.B. Bubble Sort, und Gründe Deine Verarbeitung auf diesem Array.
AW: Fehler 13 "Typen unverträglich"
24.07.2009 10:10:31
André
Moin Helmut,
zu 1: Bingo, tatsächlich ist der Offset aus dem Range herausgewandert. Ich habe die Logik korrigiert, nun klappt es.
zu 3: Das übersteigt leider noch meine VBA-Kenntnisse. Wie lese ich den Bereich in ein VBA-Array ein, und wie sortiere ich das dann?
Gruß, André
AW: Fehler 13 "Typen unverträglich"
26.07.2009 02:23:42
so
Das Forum hat ein Archiv!
Anzeige
AW: Fehler 13 "Typen unverträglich"
23.07.2009 16:27:20
Luschi
Hallo André,
ich würde das Problem so lösen, Voraussetzung ist natürlich, das die Liste 'DSNummer' sortiert
ist:

Dim DSNummern As Range, rg1 As Range
Set DSNummern = Range("DSNummer")
Dim I As Integer, j As Integer
kleinster = Application.WorksheetFunction.Min(Range("DSNummer"))
Set rg = ActiveCell
j = 0
For Each zelle In DSNummern
If zelle.Value > kleinster Then
If zelle.Value > zelle.Offset(-1, 0).Value + 1 Then
For I = kleinster + 1 To zelle.Value - 1
rg.Offset(j, 0).Value = I
j = j + 1
Next
End If
End If
kleinster = zelle.Value
Next
Gruß von Luschi
aus klein-Paris
PS: Sortieralgorithmen für Array's gibt es im I-net wie Sand am mehr:
http://www.kurt-aus-kienitz.de/knowhow/access/Beispiele/Module/ArraySortieren.html
http://www.spotlight.de/zforen/mse/m/mse-1209598885-15225.html
http://www.spotlight-wissen.de/archiv/message/1768296.html
http://www.spotlight-wissen.de/archiv/message/1774612.html
Anzeige

10 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige