PDA

Vollständige Version anzeigen : Combobox als Quelle für LookUp (Sverweis)


kurze Frage
10.04.2012, 21:11
Hallo zusammen,

ich habe eine Userform mit einer Combobox, die ich so fülle:

Private Sub UserForm_Initialize()
With Sheets("Tabelle1")
ComboBox1.List = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Value2
End With
End Sub
Das klappt, das Dropdown ist gefüllt.

Im Textfeld daneben sollen die Werte stehen, die in Tabelle 1 B2:B... stehen - also der klassische SVerweis.

Ich habe zwei Wege probiert:


Private Sub ComboBox1_Change()
TextBox1.Value = Application.VLookup(Me.ComboBox1.Value, Sheets("Tabelle1").Range("A2:B10"), 2, 0)
End Sub

--> Eigenschaft Value konnte nicht gesetzt werden, Typkonflikt


2.
Private Sub UserForm_Initialize1()
Me.TextBox1 = WorksheetFunction.VLookup(ComboBox1.Value, Sheets("Tabelle1").Range("A2:B10"), 2, 0)
End Sub

--> hier passiert einfach nur "nix" ...

Was mache ich verkehrt?

Danke!

josef e
10.04.2012, 21:34
<div style="width:98%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo Claudia,

statt dem _Initialize würde ich das _Activate-Ereignis verwenden.

Probiere ComboBox1.Text statt .Value bzw. CDbl(ComboBox1.Text) wenn es sich um numerische Werte handelt.

Und eine Ereignis das _Initilaize1 heißt, gibt es wohl nur in deiner Welt;-))


</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

kurze Frage
10.04.2012, 22:14
Hallo Sepp,

CDbl(ComboBox1.Text) hat geholfen - nur bei activate ist doof, weil es ja dann die aktive auswahl in der combobox nicht berücksichtigt - also doch wieder combobox_change

is ´klappt.

Danke.

kurze Frage
11.04.2012, 09:56
Hallo Sepp,

kannst du mir sagen wie welche Typen genutzt werden können?

Du hattest mir [quote]Probiere ComboBox1.Text statt .Value bzw. CDbl(ComboBox1.Text) wenn es sich um numerische Werte handelt. [\quote] geschrieben - aber so richtig klappt es nicht...

wenn ich nur numerische Wert habe, klappt CDbl etc., aber wenn ich "Mischwerte" habe, geht weder das eine noch das andere - auch wenn ich nur "nicht numerisch" mache, klappt ComboBox1.Text nicht. --> es kommt immer "Typkonflikt, Valueeigenschaft kann nicht gesetzt werden"

Die Werte wären im Format 60x80, 70x150 etc.

Danke!

josef e
11.04.2012, 19:20
<div style="width:98%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo Claudia,

ohne Beispiedatei wird das ein Ratespiel!


</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

kurze Frage
12.04.2012, 10:41
Hallo Sepp,

ich dachte, es gibt ne generelle Regel, welchen Typ man nimmt für "nur Zahlen", Text etc.

Ich habe ein recht nacktes Beispiel angehangen. öffnen der UF geht, beim schließen oder speichern werden die Werte in D+E geschrieben, beim öffnen wieder reingelesen, Auswahl in Combobox aus Spalte A geht auch - nur das Textfeld daneben sagt "Typenunverträglich".

Was müsste ich eigentlich machen, wenn der Kunde Breite und Höhe in 2 Feldern angeben kann?
Meine Idee: beide Felder auslesen, in einer anderen Zelle mit &x& verbinden und das dann wieder in der MOQ-Spalte suchen lassen? Ich hatte versucht, die Maß-Spalte ohn x, nur als Zahlen zu machen, also zB 6080 - aber da kommen mehrdeutige Kombinationen vor - gäbe es dafür auch einen schlaue Lösung?

Danke!
Claudia

kurze Frage
12.04.2012, 10:55
ich habs grad umgangen....

ich lasse die beiden Maße multiplizieren und in eine Zelle schreiben, daneben per Sverweis die MOQ und dieses Feld nehm ich einfach für die Textbox....

wenn du mir trotzdem sagen würdest, wie ich hätte den Typ mit 60x80 auslesen können, würde mich mich trotzdem freuen :-)

Danke!
Claudia

kurze Frage
12.04.2012, 12:29
Mist - sobald ich die Userform einmal schließe oder auf Save klicke, ist die Formel mit dem Sverweis weg und es bleibt nur die Zahl erhalten - woran liegt das?

Die Spalte mit der Formel wird doch vom "Save-Code" garnicht überschrieben?

Danke schonmal!!

edit: es geht nichtmal, wenn der Sverweis in einem anderen Tabellenblatt liegt :-(
edit2: mit dem Versuch hier geht es auch nicht, obwohl jetzt alles nur Zahlen sind:


Private Sub breite_Change()
With Sheets("Quelle")
MOQ.Value = Application.VLookup(CDbl(Cells(10, 19)), Sheets("Quelle").Range("p3:q41"), 2, 0)
End With
End Sub


wieder: Value, typenunverträglich

auch im Code der Tabelle mit
Private Sub Worksheet_calculate()
With Inquiry
If .Visible Then
.MOQ = Tabelle10.Cells(11, 19)
.Repaint
End If
End With
End Sub
kommt die gleiche Fehlermeldung - Eigenschaft kann nicht gesetzt werden