Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Fehler in ComboBox
#1
Hallo liebe Experten.
Der Code hier funktioniert einwandfrei.
Code:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    StrKunde = UserForm1.ListBox1.List(ListBox1.ListIndex, 1)
    Set SP = Worksheets("Kundendistanz").Columns(2).Find(StrKunde, lookat:=xlWhole, LookIn:=xlValues)
    With Sheets("Kundendistanz")
         .Range("A3") = .Range("A" & SP.Row).Value 'KNR
         .Range("B3") = .Range("B" & SP.Row).Value 'Kunde
         .Range("C3") = .Range("C" & SP.Row).Value 'Adresse
         .Range("D3") = .Range("D" & SP.Row).Value 'PLZ
         .Range("E3") = .Range("E" & SP.Row).Value 'Ort
    End With
End Sub

Wenn ich aber anstatt der Listbox eine ComboBox nehme, bekomme ich den Fehler 1004 in der zeile SP = StrKunde......
Aber die Variable StrKunde zeigt in der Überwachung den Wert an.
Er existiert also. Was muss ich ändern?

Code:
Private Sub ComboBox1_Click()
    StrKunde = ComboBox1.Value
    Set SP = Worksheets("Kundendistanz").Columns(2).Find(StrKunde, lookat:=xlWhole, LookIn:=xlValues)
    With Sheets("Kundendistanz")
         .Range("A3") = .Range("A" & SP.Row).Value 'KNR
         .Range("B3") = .Range("B" & SP.Row).Value 'Kunde
         .Range("C3") = .Range("C" & SP.Row).Value 'Adresse
         .Range("D3") = .Range("D" & SP.Row).Value 'PLZ
         .Range("E3") = .Range("E" & SP.Row).Value 'Ort
    End With
End Sub
Antworten Top
#2
Hallo,

in deinem Code gibt es keine Zeile die mit "SP = StrKunde" anfängt.

Da du die Möglichkeit einer ergebnislosen Suche nicht abfängst, wird das Ding beim ersten Aufruf von SP.Row einen 1004 melden, wenn nix gefunden wurde.

vg, MM
Antworten Top
#3
Ich verstehe das nicht.
Im funktionierendem Code mit der Listbox gibt es diese Zeile auch nicht.
Die Variable Strkunde bekommt von der Combo den gleichen Wert wie oben in der Variante Listbox...
Antworten Top
#4
Hallo,

du hast geschrieben:
"Wenn ich aber anstatt der Listbox eine ComboBox nehme, bekomme ich den Fehler 1004 in der zeile SP = StrKunde......"

Diese Zeile gibt's 'net.

Der Fehler ist bei mir nicht reproduzierbar. Es spielt im Grunde keine Rolle, was in StrKunde drinsteht.

Da ich die sonstigen Rahmenbedungungen nicht kenne kann ich nur spekulieren, wo ein Fehler auftreten könnte. Und das ist wenn die Suche erfolglos war.


vg, MM
Antworten Top
#5
Hallo

auf jeden Fall ist es ein grundsaetzlicher Fehler im Code die Möglichkeit das die Find Suche "Ergebnislos" war nicht abzufangen!!  Bitte so machen:
If Not Sp is Nothing Then
With Sheets("Kundendistanz")
   'hier der Code
End With
End if

Mir faellt ein Unterschied zwischen ListBox und ComboBox auf, wobei ich aber nicht weiss ob der wirklich relevant ist???
Das Listenfeld besitzt offenbar mehrere Spalten, hieran erkennbar:  StrKunde = UserForm1.ListBox1.List(ListBox1.ListIndex, 1)

Werden da die gleichen Werte geladen??  Wir sehen die Datei ja nicht, wissen nicht was in die ComboBox geladen wurde??  Ob sie mehrere Spalten hat??

mfg  Gast 123
Antworten Top
#6
Hallo Gast 123,

das könnte natürlich sein, dass hier der Hund begraben liegt, denn die Mehrspaltigkeit muß nicht unbedingt auch auf die Kombo-Box zutreffen. Allerdings schreibt der OP: "Aber die Variable StrKunde zeigt in der Überwachung den Wert an." Also hab ich das erstmal ignoriert.

vg, MM
Antworten Top
#7
Hallo

was ist denn wenn man in den Code die Schutzzeile - "If Not is Nothing" einbaut.  Werden dann alle Daten gefunden, oder fehlen ab und zu welche?
Sonst sollte man die Daten von ListBox und ComboBox mal in eine Zelle schreiben und jeden Buchstaben vergleichen. Manchmal steht ja vorne oder hinten noch ein " " Space, Leerzeichen. Damit hatte ich auch schon Probleme.

mfg  Gast 123
Antworten Top
#8
Code:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
   on error resume next

  With Sheets("Kundendistanz")
     if Listbox1.listindex>-1 then  .Parent.Range("A3:E3")=.Columns(2).Find(Listbox1.columns(1), ,,1).offset(,-1).resize(,5).Value
  End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#9
Es nützt nichts die zeile
Code:
If Not SP is Nothing Then
einzubauen, wenn der Fehler 1004 bereits eine Zeile
bei
Code:
Set SP = Worksheets("Kundendistanz").Columns(2).Find(StrKunde, lookat:=xlWhole, LookIn:=xlValues)
stehen bleibt.

Nochmal zum Grundverständnis. In der Variante mit der Listbox bekommt die
Variable StrKunde aus dem Worksheet Spalte B den Namen des Kunden
und führt den nachfolgenden Code korrekt aus.

In der Variante mit der ComboBox bekommt die Variable StrKunde exakt den gleichen Wert für die Suche zugewiesen.
Doch hier sagt der Code ERROR 1004.
Die ComboBox hat als ListRow lediglich die Spalte B als Quelle. Mehr braucht die ja auch nicht.
In der Variante mit der ListBox wird ja auch nur die Spalte B als Wert ausgelesen und zugewiesen.

Es bleibt also die Frage warum der Wert der Variablen StrKunde in der ListBox geht und in der Combo nicht....
Antworten Top
#10
#8 übersehen ?


Code:
Private Sub ComboBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
 on error resume next

 With Sheets("Kundendistanz")
    if ComboBox1.listindex>-1 then  .Range("A3:E3")=.Columns(2).Find(ComboBox1.column(1), ,,1).offset(,-1).resize(,5).Value
 End With
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste