1. VBA hulp

Re: VBA hulp

Voor informatica moet ik voor een PO een programma in VBA maken dat een decimaal getal omzet naar binair (en hexadecimaal, maar dat laat ik zitten, ik kom er niet uit). Nu is dat hele gedoe niet zo'n probleem, alleen de uitvoer mislukt telkens.
Telkens als ik een decimaal getal invoer met de code die ik nu heb, is de uitvoer alleen maar een 1. Geen flauw idee hoe ik dit oplos. Kan iemand me hiermee helpen?

De code:

Private Sub knpGo_Click()
Dim varDecimaal As Integer
Dim varBinair As Integer
Dim varTeller As Integer
varDecimaal = Val(txtInvoer.Text)
varTeller = 0
varBinair = 0
While varDecimaal >= varBinair
varBinair = 2 ^ varTeller
varTeller = varTeller + 1
Wend
varBinair = varBinair / 2
varDecimaal = varDecimaal - varBinair
txtUitvoer.Text = "1"
varTeller = varTeller - 3
While varDecimaal > 0
varBinair = 2 ^ varTeller
varDecimaal = varDecimaal - varBinair
If varDecimaal >= 0 Then
txtUitvoer.Text = "1"
varTeller = varTeller - 1
Else
txtUitvoer.Text = "0"
varDecimaal = varDecimaal + varBinair
varTeller = varTeller - 1
End If
Wend
End Sub
  • Voor informatica moet ik voor een PO een programma in VBA maken dat een decimaal getal omzet naar binair (en hexadecimaal, maar dat laat ik zitten, ik kom er niet uit). Nu is dat hele gedoe niet zo'n probleem, alleen de uitvoer mislukt telkens.
    Telkens als ik een decimaal getal invoer met de code die ik nu heb, is de uitvoer alleen maar een 1. Geen flauw idee hoe ik dit oplos. Kan iemand me hiermee helpen?

    De code:

    Private Sub knpGo_Click()
    Dim varDecimaal As Integer
    Dim varBinair As Integer
    Dim varTeller As Integer
    varDecimaal = Val(txtInvoer.Text)
    varTeller = 0
    varBinair = 0
    While varDecimaal >= varBinair
    varBinair = 2 ^ varTeller
    varTeller = varTeller + 1
    Wend
    varBinair = varBinair / 2
    varDecimaal = varDecimaal - varBinair
    txtUitvoer.Text = "1"
    varTeller = varTeller - 3
    While varDecimaal > 0
    varBinair = 2 ^ varTeller
    varDecimaal = varDecimaal - varBinair
    If varDecimaal >= 0 Then
    txtUitvoer.Text = "1"
    varTeller = varTeller - 1
    Else
    txtUitvoer.Text = "0"
    varDecimaal = varDecimaal + varBinair
    varTeller = varTeller - 1
    End If
    Wend
    End Sub

Plaats reactie

Wanneer je een reactie plaatst ga je akoord
met onze voorwaarden voor reacties.

Log in om te reageren