• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Combobox1 werkt wel combobox2 niet

Status
Niet open voor verdere reacties.

Atwist

Terugkerende gebruiker
Lid geworden
24 jan 2006
Berichten
1.069
Besturingssysteem
Wndows 11
Office versie
2016
Hallo formleden,

Ik heb een userform gemaakt met twee comboboxen.
Heb combobox1 via dit forum aan de praat gekregen, nu wil ik graag een 2e combobox erbij hebben.
De opbouw in VBA snap ik maar (zie hier onder)
Code:
Private Sub ComboBox1_Change()
If ComboBox1.Value = "" Then
        TextBox84.Value = ""
    End If
If ComboBox1.Value <> "" Then
        With Worksheets(1).Range("B1:B20")
            Set drukken = .Find(ComboBox1.Value, LookIn:=xlValues, LookAt:=xlWhole)
        TextBox84.Value = Worksheets(1).Cells(drukken.Row, "C")
    End With
  End If
End Sub

Private Sub ComboBox2_Change()
If ComboBox2.Value = "" Then
        TextBox86.Value = ""
    End If
If ComboBox2.Value <> "" Then
        With Worksheets(1).Range("F1:F22")
            Set INCH = .Find(ComboBox2.Value, LookIn:=xlValues, LookAt:=xlWhole)
        [COLOR="red"]TextBox86.Value = Worksheets(1).Cells(INCH.Row, "G")[/COLOR]
    End With
  End If
End Sub

Bij de regel in het rood gaat het fout.

Heb voor deze combobox ook een zoekrij gemaakt INCH, deze is ook in gevuld bij de eigenschappen van de combobox2.

Ik snap het even niet meer, kan iemand mij weer even op het juiste spoor zetten.
 
De foutmelding komt omdat de zoekwaarde van INCH niet gevonden wordt.
Om te voorkomen dat je de foutmelding krijgt zou je in de code

Code:
If Not INCH Is Nothing Then TextBox86.Value = Worksheets(1).Cells(INCH.Row, "G")

Met vriendelijke groet,


Roncancio
 
Hallo Roncancio ,

Ik heb jou code erin gezet heb nu geen foutmelding meer, maar het werkt nog steeds niet.
Heb nu excel bestand begevoed het is een opzet dus let niet op het uitelijk.

Bekijk bijlage omrekentabel.xls

Mischien wordt het wat duidelijker wat er fout is.
 
Wat er fout is dat bij het kiezen van een INCH-maat, de maat wordt omgezet in een decimale waarde.

Ik heb onderstaande code voor je gevonden.
Deze code zet decimale waardes om in breuken.
Code:
Public Function Dec2Frac(ByVal f As Double) As String

   Dim df As Double
   Dim lUpperPart As Long
   Dim lLowerPart As Long
   
   lUpperPart = 1
   lLowerPart = 1
   
   df = lUpperPart / lLowerPart
   While (df <> f)
      If (df < f) Then
         lUpperPart = lUpperPart + 1
      Else
         lLowerPart = lLowerPart + 1
         lUpperPart = f * lLowerPart
      End If
      df = lUpperPart / lLowerPart
   Wend
Dec2Frac = CStr(lUpperPart) & "/" & CStr(lLowerPart)
End Function
Verander de SET INCH-code bij de combobox in:

Code:
            Set INCH = .Find(Dec2Frac(ComboBox2.Value), LookIn:=xlValues, LookAt:=xlPart)
Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Roncancio

Dank je voor de code het werk zeer goed, hier was ik niet achter gekomen:thumb::thumb:
Heb je voor de combobox ook zo iets in plaats van de breuk laat deze bv 0,25 zien ipv 1/4.
Als het niet te veel moeite is ben namelijk al erg blij als het zo werkt.:o
 
Ik heb de layout van de F-kolom in het bestand aangepast.
De eerder geplaatste code is hiermee overbodig geworden.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Laatst bewerkt:
Roncancio

Helemaal SUPER:thumb::thumb::thumb:

Mijn dank is erg groot
 
Ziet er leuk uit.

Alleen bij inch maten = 1 geeft het userform de verkeerde waarde aan. en de verandert ook
als je iets anders gekozen hebt.

Niels
 
Hallo Niels,

Het klopt dat bij 1" de waarde verkeerd is ik ben nog aan het zoeken waar dat aan ligt.
 
vermoedelijk een afrondingsfoutje ergens 15 cijfers achter de komma, ik heb het zelf niet getest maar vermoed zoiets
 
Hallo Cow18,

Je hebt mij even wakker geschut:rolleyes: de kolom stond niet op getal (eigenschappen) met 2 decimalen.
Nu werkt het helemaal goed.

Mijn dank is groot:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan