Avatar billede jath08ac Forsker
04. juni 2018 - 11:35 Der er 5 kommentarer og
1 løsning

Textbox skal gange og dividere to texbox i userform

Hej,

Jeg har 25 rækker, hvor i hver række er der 2 textbox' der skal ganges/divideres med hinanden, afhængigt af om der står noget i den ene af textbox.

Jeg har prøvet at lave følgende kode, men kan ikke få det til at fungere.

Håber at der er en der kan hjælpe med at finde løsningen, og også gerne en der er smartere, så jeg ikke skal kopiere koden 25 gange :)

NB: Mine 2x 25 textbox hedder det samme, eneste forskel er talværdien til sidst som skifter.

Koden:


Private Sub txtKursR1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If txtKursR1.Value = "" Then
    txtBeløbR1.Value = CDbl(txtBeløbValutaR1.Value)
ElseIf txtKursR1.Value <> "" Then
    txtBeløbR1.Value = CDbl(txtBeløbValutaR1.Value) * CDbl(txtKursR1.Value) / CDbl(txtKursR1.Value)
End If
End Sub

Private Sub txtBeløbValutaR1_AfterUpdate()
If txtKursR1.Value = "" Then
    txtBeløbR1.Value = CDbl(txtBeløbValutaR1.Value)
ElseIf txtKursR1.Value <> "" Then
    txtBeløbR1.Value = CDbl(txtBeløbValutaR1.Value) * CDbl(txtKursR1.Value) / CDbl(txtKursR1.Value)
End If
End Sub
Avatar billede kabbak Professor
05. juni 2018 - 07:56 #1
Her er den lavet med activeX Objecter

Public Function Udregn(Nr As String)
If ActiveSheet.OLEObjects("txtKursR" & Nr).Object.Value = "" Then
    ActiveSheet.OLEObjects("txtBeløbR" & Nr).Object.Value = CDbl(ActiveSheet.OLEObjects("txtBeløbValutaR" & Nr).Object.Value)
Else
    ActiveSheet.OLEObjects("txtBeløbR" & Nr).Object.Value = CDbl(ActiveSheet.OLEObjects("txtBeløbValutaR" & Nr).Object.Value) * CDbl(ActiveSheet.OLEObjects("txtKursR" & Nr).Object.Value) / ActiveSheet.OLEObjects("txtKursR" & Nr).Object.Value
End If
' *********************************** Orginal **********************

'If txtKursR1.Value = "" Then
'  txtBeløbR1.Value = CDbl(txtBeløbValutaR1.Value)
'ElseIf txtKursR1.Value <> "" Then
'  txtBeløbR1.Value = CDbl(txtBeløbValutaR1.Value) * CDbl(txtKursR1.Value) / CDbl(txtKursR1.Value)
'End If

End Function


Private Sub txtBeløbValutaR1_LostFocus()
Udregn 1 ' henter udregning
End Sub

Private Sub txtKursR1_LostFocus()
Udregn 1 ' henter udregning
End Sub
Avatar billede jath08ac Forsker
06. juni 2018 - 10:17 #2
@kabbak: Koden ser fornem ud - men er ikke helt sikker på at jeg forstår den og ved ikke hvor den skal sættes ind?
Avatar billede kabbak Professor
06. juni 2018 - 10:48 #3
Jeg har tekstboksene i et ark og koden i arkets modul.

I koden under boksene, kalder du funktionen "Udregn"  og medsender nummeret på boksen, i eksemplet er det  boks 1.
Avatar billede jath08ac Forsker
06. juni 2018 - 11:08 #4
Okay.

Det er bare fordi, har kun fået skrevet det i overskriften, at jeg har 25 rækker i en Userform, hvor hver række bl.a. består af 2 textbox.

Så det er i Userformen at koden skal ligge :-(
Avatar billede kabbak Professor
06. juni 2018 - 11:15 #5
Ok, jeg havde overset at det var i userforn
Avatar billede kabbak Professor
06. juni 2018 - 11:16 #6
Ja den skal i Userformen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Udviklings- og Forenklingsstyrelsen

Testmanager med agilt mindset

Cognizant Technology Solutions Denmark ApS

SAP Project Manager