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 sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf 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.

Die Updates sind abgeschlossen. Bitte meldet eventuelle Bugs und Auffälligkeiten im entsprechenden Forum.
Sollte das Loginfenster nicht sichtbar sein, ist es unten links. Entweder Ihr loggt Euch dort ein oder löscht den Browsercache und versucht es noch einmal.


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
Antwortento 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)
Antwortento 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.
Antwortento 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.
Antwortento top
#5
Hallo Knocker,

Du verwechselst ListFillRange mit AddItem! ;-)

Edit: Hatte das mit den Zellnamen überlesen.  Blush

Gruß Uwe
Antwortento 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
Antwortento 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  Confused
Antwortento 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
Antwortento 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
Antwortento 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 = ""
Antwortento top


Gehe zu:


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