Registriert seit: 21.07.2016
Version(en): 2007
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
Registriert seit: 29.09.2015
Version(en): 2030,5
31.10.2016, 17:28
(Dieser Beitrag wurde zuletzt bearbeitet: 31.10.2016, 17:29 von snb.)
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....
Registriert seit: 30.10.2016
Version(en): 07
@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?
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• Knocker
Registriert seit: 30.10.2016
Version(en): 07
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.
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
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)
Registriert seit: 30.10.2016
Version(en): 07
@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
Gewindetiefe_Rechner.xlsm (Größe: 41,46 KB / Downloads: 5)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)