Thema Datum  Von Nutzer Rating
Antwort
23.12.2007 15:57:51 roman
NotSolved
24.12.2007 09:05:35 Holger
NotSolved
24.12.2007 12:40:33 roman
NotSolved
Blau Aw:Aw:Aw:removeitem funktioniert nicht
24.12.2007 13:43:54 Holger
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
24.12.2007 13:43:54
Views:
935
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:removeitem funktioniert nicht
Hallo roman,
du hast in deiner Box sicherlich am Ende mindestens eine Zeile, in der nichts steht, oder deine Liste in Box ist so klein, dass Excel automatisch einige Leerzeilen hinzudenkt (meistens kleiner als 10, hängt von der Einstellung ab). Dann liest du in Material den Wert "Null" ein. Dieser ist aber einem String nicht zuordenbar.
Versuche es einmal mit
For i = 0 To Box.ListCount - 1
AlteMaterialienListe(b) = Box.List(i)
Next i
Viel Erfolg
Holger


roman schrieb am 24.12.2007 12:40:33:

Hallo Holger,
danke für deine Antwort, ich habe gemerkt dass ich ständig mit einer leeren ComboBox gearbeitet habe! Schön blööd! jetzt hab ich aber plötzlich ein neues problem und zwar reklamiert er mir jetzt an der Stelle "AlteMaterialienListe(b) = Material" mit dem Fehler: "Laufzeitfehler '94':Unzulässige Verwendung von Null. " Ich hab gesehen dass er mir erst beim letzten Element in dieser For Each-Schleife irgendwie probleme macht, allerdings verstehe ich nicht weshalb denn die länge des Arrays AlteMaterialienListe ist korrekt. Was mache ich falsch? Wenn es zu schwierig ist nur mit diesem Code Schnipsel könnte ich auch die ganze Anwendung mailen.
gruss roman

Holger schrieb am 24.12.2007 09:05:35:

Hallo roman,
du versuchst, einen Eintrag zu löschen, der gar nicht mehr da ist. Das kann verschiedene Ursachen haben. Vielleicht hast du bereits in einem früheren Durchlauf einige Einträge gelöscht, so dass das Ende der gekürzten Liste jetzt neue Item-Nummern hat. Oder du hast dich mit dem Hochzählen des e geirrt und es müsste e-1 dort stehen, was am Ende der Liste ebenfalls zu einem Fehlen führen kann. Ich empfehle, vor dem RemoveItem einen Haltepunkt zu setzen und den Wert vor jedem Löschen zu überprüfen und mit der Länge der Liste zu vergleichen. Vielleicht entfernst du ab dem zweiten Durchlauf sogar den falschen Wert.
Ich habe heute keine Zeit, deine Listen und Schleifen im Detail nachzuvollziehen, doch denke ich, dass du den Fehler auch so selber finden wirst. Sonst melde dich noch einmal.
Frohes fest
Holger



roman schrieb am 23.12.2007 15:57:51:

hallo,
ich hab ein problem und zwar funktioniert mir in folgendem beispiel "Box.RemoveItem e" nicht, ich erhalte dann die fehlermeldung "Laufzeitfehler '-2147024809 (80070057)': ungültiges Argument -2." . Was mache ich falsch?

Hier der Code:

Private Sub FillBoxes(Box As ComboBox, Nr As Integer)

Dim NeueMaterialienListe() As String
Dim AlteMaterialienListe() As String
Dim NeueMaterialien() As String
Dim i, b, laengeNML As Integer
Dim e As Variant
ReDim AlteMaterialienListe(Box.ListCount) As String

i = 4
help = 0
While Worksheets("Tabelle2").Cells(i, 2).Value <> ""
If Worksheets("Tabelle2").Cells(i, 3).Value = "" And Worksheets("Tabelle2").Cells(i, 2).Value <> "nichts" And Nr = 1 Then
If MsgBox("Achtung, keine Wärmekennzahl! Wollen Sie weiterfahren?", vbOKCancel + vbInformation + vbDefaultButton2, "Hinweis") = vbCancel Then
End
End If
End If
laengeNML = 1 + laengeNML
i = i + 1
Wend

ReDim NeueMaterialienListe(laengeNML - 1) As String
For N = 4 To i - 1
NeueMaterialienListe(N - 4) = Worksheets("Tabelle2").Cells(N, 2).Value
Next

ReDim NeueMaterialien(Box.ListCount + laengeNML - 1)

b = 0
For Each Material In Box.List
AlteMaterialienListe(b) = Material
b = b + 1
Next

e = 0
d = 0
For Each Materialalt In AlteMaterialienListe
c = 0
For Each Materialneu In NeueMaterialienListe
c = c + 1
If Materialalt = Materialneu Then
e = e + 1
Exit For
ElseIf c = laengeNML Then
NeueMaterialien(d) = Materialneu
Box.RemoveItem e -> Hier reklamiert er
d = d + 1
End If
Next
Next

For N = 0 To d - 1
Box.AddItem NeueMaterialien(N)
Next

Box.ListIndex = "0"
Call Cleartest

End Sub

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.12.2007 15:57:51 roman
NotSolved
24.12.2007 09:05:35 Holger
NotSolved
24.12.2007 12:40:33 roman
NotSolved
Blau Aw:Aw:Aw:removeitem funktioniert nicht
24.12.2007 13:43:54 Holger
NotSolved