Waardes in textbox wordt als tekst geplaatst

Status
Niet open voor verdere reacties.

BERJON

Gebruiker
Lid geworden
8 jul 2018
Berichten
10
Beste Helpmij'ers,
Bij deze vraag ik uw hulp bij het oplossen van mijn volgende probleem.
Ik vul gegevens in door middel van een userform waarbij textboxen (test 1 tot en met test 20) worden gevuld met waardes (1234,55) die worden dan weggeschreven naar blad 2.
Nu doet het volgende probleem zich voor dat deze waardes als tekst naar blad 2 worden weggeschreven waardoor ik deze gegevens helaas niet kan gebruiken voor het optellen van deze waardes.
Ik zou de persoon die mij hierbij kan helpen dit probleem op te lossen en eventueel aan te passen zeer erkentelijk zijn.
Bij deze een bijlage van het betreffende spreadsheet.
 

Bijlagen

  • Test.xlsm
    56,6 KB · Weergaven: 50
De celeigenschappen van uw testkolomen op getal zetten in plaats van standaard.
 
probeer eens iets als:
Code:
CLng(txtTest1a.Value)
 
dus beide opties hebben geen effect?
 
Beste SjonR,

Als ik in userform Testa1 onder A1 een waarde invul en deze opsla word de waarde gewoon als getal overgezet naar blad 2 kolom Test a 1.
Maar als ik later in Testa1 onder B1 ook een getal invul en doe aanpassen zet hij deze waarde als getal op blad 2 onder kolom Test a 2 en veranderd het getal van Test a1 op blad 2 weer in tekst.
 
Begin eerst eens met de textboxen een naam te geven zodat je deze eenvoudig met een loop kan doorlopen. bv textbox1a wordt textbox_01, textbox1b wordt textbox_02. Scheelt meters aan code.:d
 
Gebruik geen CLng maar CDbl.
 
Nee. Clng maakt er een Long van, een heel getal dus.
CDbl maakt er een Double van, een getal dus met eventueel cijfers achter de komma zoals die als voorbeeld genoemde 1234,55
 
Laatst bewerkt:
aha, duidelijk

maar dan nog wordt het niet ineens weer tekst.
 
Laatst bewerkt:
Code:
 sn = Split(Replace(Join(Array(txtNaam, _
        txtTest1a, txtTest1b,txtTest2a, txtTest2b, txtTest3a, txtTest3b,txtTest4a, txtTest4b, _
        txtTest5a, txtTest5b, txtTest6a, txtTest6b, txtTest7a, txtTest7b, txtTest8a, txtTest8b, _
        txtTest9a, txtTest9b, txtTest10a, txtTest10b, txtTest11a, txtTest11b, txtTest12a, txtTest12b, _
        txtTest13a, txtTest13b, txtTest14a, txtTest15a, txtTest15b, txtTest15c, _
        txtTest16a, txtTest16b, txtTest17a, txtTest17b,txtTest18a, txtTest18b, txtTest19a, txtTest19b, _
        txtTest20a, txtTest20b), "|"), ",", "."), "|")
 ws.Cells(iRow, 1).Resize(, 40)=sn
 
Beste snb,

Code aangepast volgens uw bericht (zie onder) helaas krijg ik bij het inbrengen van een nieuw bestand of het aanpassen van gegevens de volgende fout melding.

Compileerfout
Eenvariabele is niet gedefinieerd

Private Sub cmdAanpassen_Click()
If LB_01.ListIndex = -1 Then
MsgBox "Kies eerst een ingave in de lijst!", vbCritical, "Ingave?"
LB_01.SetFocus
Exit Sub
End If
If MsgBox("Correcte aanpassing?", vbYesNo + vbQuestion, "Kijk de gegevens na!") = vbNo Then Exit Sub
Set ws = Worksheets("Data")
iRow = ws.Cells.Find(What:=txtNaam, SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row
sn = Split(Replace(Join(Array(txtNaam, _
txtTest1a, txtTest1b, txtTest2a, txtTest2b, txtTest3a, txtTest3b, txtTest4a, txtTest4b, _
txtTest5a, txtTest5b, txtTest6a, txtTest6b, txtTest7a, txtTest7b, txtTest8a, txtTest8b, _
txtTest9a, txtTest9b, txtTest10a, txtTest10b, txtTest11a, txtTest11b, txtTest12a, txtTest12b, _
txtTest13a, txtTest13b, txtTest14a, txtTest15a, txtTest15b, txtTest15c, _
txtTest16a, txtTest16b, txtTest17a, txtTest17b, txtTest18a, txtTest18b, txtTest19a, txtTest19b, _
txtTest20a, txtTest20b), "|"), ",", "."), "|")
ws.Cells(iRow, 1).Resize(, 40) = sn
MsgBox "De aanpassingen zijn opgeslagen!", vbInformation, "Klaar"
For Each Ctrl In Controls
If TypeName(Ctrl) = "TextBox" Then Ctrl.Value = ""
Next
Call UserForm_Initialize
End Sub
 
Haal bovenin je module, waar Option Explicit staat, die regel weg.
 
Zo'n opmerking kan niemand iets mee.
Het is handiger om te vertellen wat er dan wel gebeurt.
 
Sorry edmoor,

Hierbij dan de gegevens die ik krijg nadat ik de veranderingen van SNB en die van u had aangebracht.

Fout 91 tijdens uitvoering:
Objectvariabele of blokvariabele With is niet ingesteld

Private Sub cmdNieuw_Click()
If MsgBox("Correcte ingave?", vbYesNo + vbQuestion, "Kijk de gegevens na!") = vbNo Then Exit Sub
With Sheets("Data")
iRow = .Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
sn = Split(Replace(Join(Array(txtNaam, _
txtTest1a, txtTest1b, txtTest2a, txtTest2b, txtTest3a, txtTest3b, txtTest4a, txtTest4b, _
txtTest5a, txtTest5b, txtTest6a, txtTest6b, txtTest7a, txtTest7b, txtTest8a, txtTest8b, _
txtTest9a, txtTest9b, txtTest10a, txtTest10b, txtTest11a, txtTest11b, txtTest12a, txtTest12b, _
txtTest13a, txtTest13b, txtTest14a, txtTest15a, txtTest15b, txtTest15c, _
txtTest16a, txtTest16b, txtTest17a, txtTest17b, txtTest18a, txtTest18b, txtTest19a, txtTest19b, _
txtTest20a, txtTest20b), "|"), ",", "."), "|")
ws.Cells(iRow, 1).Resize(, 40) = sn
End With
MsgBox "De nieuwe ingave is opgeslagen", vbInformation, "Klaar"
For Each Ctrl In Controls
If TypeName(Ctrl) = "TextBox" Then Ctrl.Value
Next
Call UserForm_Initialize
End Sub
 
snb maakte dat voorbeeld voor de Private Sub cmdAanpassen_Click()
Jij hebt het in de Private Sub cmdNieuw_Click() staan.
 
edmoor ,

Ik heb het voorbeeld van snb nu alleen toegepast bij Private Sub cmdAanpassen_Click() en tevens volgens jou de regel Option Explicit verwijderd. Als ik nu bv Naam19 wil aanpassen veranderd hij Naam19 in Naam1 en zet de waarde ingevuld in de textbox weer als tekst op het volgende blad.
 
Volens mij is een naam altijd een tekst.
Het probleem ligt toch bij de getallen ?
Verandert schrijf je met een t.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan