30. juli 2016 - 07:56Der er
4 kommentarer og 1 løsning
VBA kode problemer med transfer af procentværdi fra Userform textbox til ws
Jeg har lavet en Inputbox som initierer med at indlæse eksisterende værdier fra ws! Herefter har jeg store problemer med at få en procentværdi overført. Jeg har følgende kode:
Først prøvede jeg med: ws.Range("B12") = CDbl(TextBox4.Value)
Som gave mismatch type 13 error
Jeg har så prøvet med:
ws.Range("B12") = Val(TextBox4.Value)
skriver jeg så fx 30% og overfører fås værdien 3000% i ws skriver jeg 0,30 fås værdien 0 i ws, men US komma dvs 0.30 giver korrekt 30% i ws [B12]
[B12] er formateret som procent i arket
Jeg har så prøvet med følgende:
If Val(TextBox4.Value) > 100 Then ws.Range("B12") = Val(TextBox4.Value) / 100 Else ws.Range("B12") = Val(TextBox4.Value) End If
I det mindste burde dette virke for værdien 30% uden decimaler, men stadigvæk viser ws [B12] 3000%
Når jeg initierer textboksen har jeg formatteret TextBox4 som følger:
TextBox4.Text = Format(ws.Range("B12"), "0.00%")
Det kunne være cool hvis man fx vha If sætninger eller lignende kunne bruge tre forskellige metoder i procent feltet fx 30, 30% eller 0,3 og de alle virkede pt. virker kun 0.3 altså US format og 30% giver 3000% som så skal divideres med 100 Håber der er en som har et godt forslag! eller flere forslag!
Hej kabbak Jeg ønsker bare ikke, at man skal skrive 0.3! dette er jo ikke DK format og irriterende for brugeren! Og har du startet med at indlæse en udgangsværdi fra ws i tekstboksen og formatteret denne til: TextBox4.Text = Format(ws.Range("B12"), "0.00%") Jeg har i øvrigt en indledende validering kørende, kode: Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If (KeyAscii > 47 And KeyAscii < 58) Or KeyAscii = 44 Or KeyAscii = 46 Or KeyAscii = 32 Or KeyAscii = 37 Then KeyAscii = KeyAscii Else KeyAscii = 0 MsgBox "Beklager, kun tal er tilladt!" End If End Sub
Og 30% giver 3000% uanset om ws [B12] er formatteret som procent eller tal! At du så får 30% hjælper jo ikke mig til at få løst mit problem desværre, da jeg får 3000%, men tak for svaret!
Tak til excelent jeg kigger lige på din løsning, men jeg synes min egen også er ok, da brugeren her både kan skrive tallet som decimal dvs fx 0,30 eller som procent 30% og det virker!
Synes godt om
Ny brugerNybegynder
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.