Registriert seit: 30.10.2016
Version(en): 07
30.10.2016, 19:06
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2016, 19:06 von Knocker.)
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 30.10.2016
Version(en): 07
30.10.2016, 19:53
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2016, 19:53 von Knocker.)
Guter Tip von dir, danke.
Aber egal was ich probiere diese Combobox bleibt leer. Bei allen anderen hat es funktioniert.
Ich verstehs nicht
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.
Registriert seit: 21.07.2016
Version(en): 2007
30.10.2016, 22:11
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2016, 22:11 von IchBinIch.)
gelöscht
... doch nicht.
Was steht denn im CB3?
Gruß
Ich
... und welche Werte in CB4 stehen erschließt sich mir auch nicht.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
30.10.2016, 22:34
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2016, 23:03 von Kuwer.)
Hallo Knocker,
Du verwechselst ListFillRange mit AddItem! Edit: Hatte das mit den Zellnamen überlesen.
Gruß Uwe
Registriert seit: 21.07.2016
Version(en): 2007
30.10.2016, 22:54
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2016, 22:54 von IchBinIch.)
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
Registriert seit: 30.10.2016
Version(en): 07
@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
Registriert seit: 21.07.2016
Version(en): 2007
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
Registriert seit: 29.09.2015
Version(en): 2030,5
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
Registriert seit: 30.10.2016
Version(en): 07
@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 = ""