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.

Combobox.listfillrange mit for
#11
Hallo Knocker,

beim ersten Durchlauf Deiner Schleife hat i den Wert 0,5.
Nehmen wir mal an jemand hat in CB3  "SteigungM1" gewählt, das sollte doch in CB3 stehen oder?


Dann ist 0,5 (i) eben nicht geich SteigungM1 (dem Wert in CB3) und somit springt er nicht in den Then-Teil Deiner If-Anweisung.
Schreib es mal so vielleicht wird es dann deutlicher, dann wirst Du vermutlich auch sehen, dass er zwar prüft ob i gleich CB3 ist,
da es das aber aus den gerade angeführten nicht ist, springt er direkt zum End If.


Code:
If i = ComboBox3.Text Then
   ComboBox5.ListFillRange = "Kurz" & i
End if


Gruß
Ich
Antworten Top
#12
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).Value
End Sub

NB. Ich sehe deine Datei nicht....
Antworten Top
#13
@RPP63
Du hattest recht, ich habs nur nicht geblickt.
Bin jetzt aber auch drauf gekommen.
Der Zellenname war kurz0.5 aber i zählte mit "," und die cb3 gab auch "," aus.
Somit konnte die cb5 nichts finden und blieb leer, da ja der Name nicht übereinstimmte.

Habs jetzt so gelöst:

Code:
Private Sub ComboBox3_Change()
combobox5.ListFillRange = ""
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 ComboBox3.Text = Replace(CStr(ComboBox3.Text), ",", ".")  
                                // hier wird das komm durch punkt ersetzt

combobox5.ListFillRange = "kurz" & ComboBox3.Text
If i = ComboBox3.Text Then Exit For
Next i
End If
End Sub

Vielen Dank für eure Hilfe!!!

Gruß Knocker

PS: Ich hoffe das ich den rest jetzt auch noch hinbekomme.
Ahh eine frage noch:
Kann ich mit den Comboboxen Rechnen oder soll ich mir die Werte in eine Zelle ausgeben lassen und dann damit rechnen?
Antworten Top
#14
Moin!
Zitat:Kann ich mit den Comboboxen Rechnen?

Prinzipiell ja!
Da in CBs Text steht, ist es immer ratsam, sich nicht auf VBA-Automatismen zu verlassen, sondern den "Zahltext" in eine "echte" Zahl umzuwandeln.
CDbl(), CInt(), CCur(), CLng(), …
Du solltest Deine Datei hochladen, wenn Du dies nicht umgesetzt bekommst.

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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Knocker
Antworten Top
#15
Ich werde die Datei noch etwas berreinigen, weil da doch viel  '... drinsteht wo probiert und noch nicht gelöscht habe.
Auch werde ich sie bis auf die Berechnungen soweit fertig machen und dann hochladen.
Weiss aber nicht ob ich es heute fertig bekomme.
Antworten Top
#16
Einen hab ich noch! 
Warum hast Du meinen obigen Tipp nicht umgesetzt?
Die For … Next ist definitiv überflüssig!

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)
Antworten Top
#17
@rpp63 
als ich deinen Vorschlag ausprobiert habe ging gar nix mehr und Excel ist ständig abgestürzt, keine Ahnung warum. 
Hab wohl was falsch gemacht.


 Ich habe die Datei jetzt mal hochgeladen, Ihr werdet sehen dass ich die Formeln fürs Berechnen bereits eingefügt habe.
Da ich aber von , auf . konvertieren musste, liefert er mir jetzt falsche Ergebnisse.

Ich denke ich sollte auch noch irgendwie einen NEU Button einfügen, wo dann alle werte bzw. CB's zurückgesetzt werden.
Nicht dass der Anwender etwas falsch macht. Das würde dann aber bedeuten dass die CB's nach der Auswahl gesperrt sein müssten.

Aber vielleicht habt ihr ja ne bessere Idee.

Gruß

Knocker


.xlsm   Gewindetiefe_Rechner.xlsm (Größe: 41,46 KB / Downloads: 5)
Antworten Top
#18
Hallöchen,

eventuell kannst Du auch die nachfolgenden Boxen leeren und nur die unmittelbar folgende mit den zugehörigen Auswahlwerten füllen, sobald jemand auf eine Auswahlbox klickt. Das hat allerdings zur Folge, dass die Boxen auch geleert werden, wenn keine Änderung erfolgt.

Im Prinzip beginnst Du so:

Code:
Private Sub ComboBox1_Change()
'If ComboBox1.Text = "Regelgewinde" Then ComboBox2.ListFillRange = "Gewinde_normal" Else ComboBox2.ListFillRange = "Gewinde_fein"
End Sub

Private Sub ComboBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Bereich zuruecksetzen
ComboBox2.ListFillRange = ""
'Leeren
ComboBox2.Clear
'ANgezeigten Inhalt entfernen
ComboBox2.ListIndex = -1
'folgende Box fuellen
If ComboBox1.Text = "Regelgewinde" Then ComboBox2.ListFillRange = "Gewinde_normal" Else ComboBox2.ListFillRange = "Gewinde_fein"
ComboBox3.ListFillRange = ""
ComboBox3.Clear
ComboBox3.ListIndex = -1
combobox5.ListFillRange = ""
combobox5.Clear
combobox5.ListIndex = -1
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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