Combobox.listfillrange mit for
#1
Hallo, ich versuche gerade eine combobox übr listfillrange in einer Schleife zu füllen.
Mit ganzen Zahlen funktioniert es prima, nun benötige ich aber kommazahlen. 
Der Zähler "i" zählt nur mit Currency richtig hoch aber die Combobox wird nicht gefüllt.


Code:
Private Sub ComboBox2_Change()
Dim i As Integer
Dim j As Integer
ComboBox3.ListFillRange = ""

If ComboBox1.Text = "Regelgewinde" Then
For i = 1 To 100
If i = ComboBox2.Text Then ComboBox3.ListFillRange = "SteigungM" & i
Next i
End If

If ComboBox1.Text = "Feingewinde" Then
For j = 1 To 100
If j = ComboBox2.Text Then ComboBox3.ListFillRange = "Steigung_feinM" & j
Next j

End If


End Sub



Private Sub ComboBox3_Change()


End Sub

Private Sub ComboBox4_Change()
Dim i As Currency
Dim j As Integer

If ComboBox1.Text = "Regelgewinde" And ComboBox4.Text = "kurz" Then
For i = 0.5 To 100 Step 0.05
If i = ComboBox3.Text Then ComboBox5.ListFillRange = "Kurz" & i                    'DIE COMBOBOX5 FÜLLT ES NICHT
If i = ComboBox3.Text Then Exit For
Next i

End If


End Sub


Die Zellen in denen die Werte stehen heißen zb: Kurz0.5 ; Kurz0.7 ; Kurz1.25 usw...


Vielen Dank für eure Hilfe
Top
#2
Moin!
Code:
i = 0.55
Debug.Print "Kurz" & i
ergibt Kurz0,55
Also Komma statt Punkt!
Vielleicht solltest Du mal genauere Infos zur Datei geben.
Den .ListFillRange per try and error zu finden, ist eher kontraproduktiv.

Update:
Warum nicht einfach:
Code:
ComboBox5.ListFillRange = "Kurz" & ComboBox3.Text

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#3
Guter Tip von dir, danke.
Aber egal was ich probiere diese Combobox bleibt leer. Bei allen anderen hat es funktioniert.
Ich verstehs nicht  Dodgy

Kurze Beschreibung was ich versuch umzusetzen:


Ich möchte einen Gewinde und Sacklochtiefe rechner erstellen mit mehreren Gewindearten (Normal/Fein),
mehreren Gewindegrößen M4, M5, M6..., Mehreren Steigungen (evtl bis zu drei verschiedene Steigungen pro Gewindegröße) und einen Gewindeauslauf (kurz/normal/lang), der abhängig von der Gewindeart und von der Steigung ist. Aus diesen daten lässt sich dann die Tiefe berechnen. Und dies alles sollte per Auswahlbutton / Combobox auswählbar sein. Die Daten dafür sind auf einem 2. Blatt hinterlegt.
Top
#4
gelöscht

... doch nicht.
Was steht denn im CB3?

Gruß
Ich

... und welche Werte in CB4 stehen erschließt sich mir auch nicht.
Top
#5
Hallo Knocker,

Du verwechselst ListFillRange mit AddItem! Wink

Edit: Hatte das mit den Zellnamen überlesen.  Blush

Gruß Uwe
Top
#6
Meinst Du mich Uwe?

Nach nochmaligen studieren des Codes steht in CB3 entweder SteigungM oder Steigung_feinM gefolgt von einem Wert
von 1 bis 100.
Da i in der Schleife aber nur Werte zwischen 0,5 und 100 annehmen kann, wird meiner Meinung nach auch nie die Bedingung
für das Füllen gelten (i <> CB3.Text)
Gruß
Ich
Top
#7
@IchbinIch

In der Cb3 stehen die werte für die Steigung und diese funktionieren auch.
Beim Debuggen des Codes springt er mir auch in die Zeile der Cb5 führt sie komplett aus aber schreibt nix rein  :s
Top
#8
Guten Morgen,

springt er auch in den Then-Teil oder läuft er nur über die Schleife?
Test mal so
Schreib mal hinter das For i = ...
ein Debug.Print i
hinter die erste If-Anweisung schreib mal bitte
Debug.Print ComboBox3.Text

Gruß 
Ich
Top
#9
Vezichte auf 'Listfillrange'

Diese Code reicht:


Code:
Private Sub ComboBox2_Change()
   combobox3.List = Range("Steigung" & IIf(combobox1.Text = "Regelgewinde", "_fein") & "M" & combobox2.Text).Value
End Sub

Private Sub ComboBox4_Change()
  If combobox1.Text = "Regelgewinde" And ComboBox4.Text = "kurz" Then ComboBox5.List = Range("Kurz" & combobox3.Text)
End Sub
Top
#10
@snb,
wahrscheinlich liegts daran dass ich "Anfänger" bin, aber bei IIf kommt Argument ist nicht optional und bei CB4 komm Laufzeitfehler '1004' Anwendungs- oder objektdefinierter Fehler

@IchBinIch
er springt mir in die Zeile:
Code:
If i = ComboBox3.Text Then Combobox5.ListFillRange = "Kurz" & i
nur wenn ich mit der maus dann über CB5 fahre erscheint nur Combobox5.ListFillRange = ""
Top


Gehe zu:


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