• 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.

userform invoer optellen

Status
Niet open voor verdere reacties.
Invoer in een TextBox is altijd tekst, wat de naam al aangeeft.
In dit geval moet je deze dus bij het wegschrijven converteren, zoals al genoemd is.
De functie Cdbl converteert de ingegeven tekst naar een numerieke waarde met 2 cijfers achter de komma.

Wanneer ik de gegevens laat wegschrijven met regels als:
Code:
Cells(lastrow + 1, "N").Value = CDbl(TBXbedrag1.Text)
krijg ik een foutmelding bij de eerste lege cel: "Typen komen niet overeen".

Waar komt dat door en hoe los ik dat op?
 
Zonder dat je verteld wat er exact in TBXbedrag1 staat is daar niks over te zeggen.
Kennelijk is het iets dat niet naar een numerieke waarde vertaald kan worden.
 
Zonder dat je verteld wat er exact in TBXbedrag1 staat is daar niks over te zeggen.
Kennelijk is het iets dat niet naar een numerieke waarde vertaald kan worden.

Er staat niets in; het veld is leeg. Bij de velden waar wel iets is ingevuld loopt het script gewoon door. De bedragen van de ingevulde cellen worden keurig in de excellijst gezet èn opgeteld!! Dat is hoopvol! Alleen die foutmelding zit in de weg dus :).
 
Laatst bewerkt:
Zo'n leeg veld zal inderdaad dat probleem opleveren.
Je zal dus eerst moeten controleren of er iets in te tekstbox staat:
Code:
If TBXbedrag1.Text <> "" Then Cells(lastrow + 1, "N").Value = CDbl(TBXbedrag1.Text)
 
Dan is die textbox dus niet meer leeg en staat er iets in dat niet met Cdbl geconverteerd kan worden.
 
Het zijn kommagetallen @Sylvester, daar heb je niets aan.
 
-- * tekst of 1 * tekst zal vast de oplossing niet zijn.

Waarschijnlijk eerst even een replace en dan converteren maar er is nergens te vinden hoe de 'getallen' ingevoerd worden.
 
Laatst bewerkt:
Zolang dat bestand nog steeds vanzelf sluit doe ik geen moeite.
 
Marloes,

Omdat ik heel veel tijd heb en natuurlijk voor mij leerzaam heb ik een aantal codes aangepast.

Wel nog enkele opmerkingen:
Als de gebruiker na het invullen van ontvangen bedragen per ongeluk op de knop "Nieuw,opslaan" klickt gaat het mis.(de naam wordt opnieuw aangemaakt.)
Zoeken op achternaam gaat zeker problemen opleveren bij personen met dezelfde achternaam, de gebruiker zal steeds goed moeten controleren of het wel de goede is.
Beter is om iedereen een uniek nummer toe te kennen.

p.s. Mijn aanpassingen zullen zeker niet de schoonheidsprijs verdienen, maar voor zover ik heb kunnen testen werkt het nu.
 

Bijlagen

  • kerkbijdrage-AD.xlsm
    110,2 KB · Weergaven: 23
Waarschijnlijk eerst even een replace en dan converteren maar er is nergens te vinden hoe de 'getallen' ingevoerd worden.
Bedankt! Top dat jullie allemaal zo meedenken! Ik ga weer aan de slag :)! Wordt vervolgd.....
 
Als de gebruiker na het invullen van ontvangen bedragen per ongeluk op de knop "Nieuw,opslaan" klickt gaat het mis.(de naam wordt opnieuw aangemaakt.)
Zoeken op achternaam gaat zeker problemen opleveren bij personen met dezelfde achternaam, de gebruiker zal steeds goed moeten controleren of het wel de goede is.
Beter is om iedereen een uniek nummer toe te kennen.
Dat klopt en is bekend. Daarom is er een knop "opslaan" en "nieuw opslaan". Wanneer je na het opslaan van een nieuw record iets wilt veranderen moet je het record eigenlijk even eerst opzoeken in de database, zodat je de juiste persoon bewerkt. Wanneer iemand een galantere oplossing weet houd ik me aanbevolen :).

Zoeken op achternaam gaat zeker problemen opleveren bij personen met dezelfde achternaam, de gebruiker zal steeds goed moeten controleren of het wel de goede is.
Dat levert tot nu toe eigenlijk geen problemen op omdat je vooruit en achteruit kunt zoeken.. En je kunt ook nog binnen de op achternaam gesorteerde kaartenbak gemakkelijk vooruit of achteruit bladeren. Daar is over nagedacht dus ;).

Mijn aanpassingen zullen zeker niet de schoonheidsprijs verdienen, maar voor zover ik heb kunnen testen werkt het nu.
Top!! Dankjewel! Ik duik erin :d! Wordt vervolgd.....
 
Laatst bewerkt:
zet dit eens bovenaan in de knop "nieuw,opslaan"
Code:
Dim Naam As Range, tempcell As Range, X As Variant
    X = TBXnaam01.Value
    Set Naam = Columns(4).Find(X, , xlValues, xlWhole)
    
    MsgBox "Deze naam bestaat al, gebruik de knop OPSLAAN"

    GoTo eind
en de rode voor de End Sub
Code:
[COLOR="#FF0000"]eind:[/COLOR]
TextBox1.SetFocus

End Sub
p.s. is wel in mijn voorbeeldbestand in post #33
 
Laatst bewerkt:
Gaat natuurlijk ook een melding geven als de naam niet bestaat.
 
Die variabele x is nergens voor nodig en maak gebruik van de foutafhandeling als er niets wordt gevonden.
Code:
if not x is nothing then
 
@VenA, de naam staat toch altijd in textbox TBXnaam01 of kan het toch nog fout gaan?(zie ook HSV)

@HSV, variabele x is inderdaad niet nodig en de foutafhandeling eigenlijk ook niet lijkt me.
Tenminste, de waarde van TBXnaam01 wordt altijd gevonden, of zie ik iets over het hoofd?:confused:

Ben nooit te oud om iets te leren.:d
 
Geen idee of de waarde altijd wordt gevonden.

Een TextBox is een TextBox en geen combobox.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan