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

Opgelost Vraag TextBox word leeg gehaald in VBA

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Jongbloedthuis

Gebruiker
Lid geworden
7 jan 2025
Berichten
7
Vraag TextBox word leeg gehaald in VBA
Tabblad Energiekosten heeft (was) 2 TxtB1Energie,TxtB2Energie die haalt gegevens op uit het werkblad en wordt opgeteld
zodat ik kan zie wat de status is.
Bij (Nieuw) 2 TxtB1EnergieInv,TxtB2EnergieInv moet je de nieuwe Gegevens invullen en wordt daarna berekend.

Maar als ik daar niks invult haal hij ook de Gegevens uit het werkblad weg, dat is NIET de bedoelen

wat voor code moet in daar voor gebruiken
 

Bijlagen

Ik begrijp eigenlijk totaal niet waar je heen wilt.
Als ik het Userform open krijg ik gewoon een Userform zonder enige data in dus wat moet er eigenlijk gebeuren of niet gebeuren ???
 
ik weet niet wat er gebeurd is mar hier heb je een nieuwe bestand
Bij het userform "was"haal hij gegevens uit Excel, bij Nieuw kan je dan wat invullen maar als ik daar niks invutl maak hij excel leeg
dat is niet de bedoeling.
 

Bijlagen

Afvangen of de txtboxen zijn gevuld.
Code:
'Energie
If TxtB1EnergieInv <> "" Then Range("D5") = TxtB1EnergieInv
If TxtB2EnergieInv <> "" Then Range("D6") = TxtB2EnergieInv
If TxTBEnergieTotaalInv <> "" Then Range("D4") = TxTBEnergieTotaalInv
'Richard
 
Hoi

Bedankt voor het antwoorden maar helaas als ik TxtB1EnergieInv enz.. leeg laat maak hij D56 leeg
ik heb het onder de OK knop gezet
 
Hier niet, bij deze.
De anderen moet jezelf maar even aanpassen.

Trouwens komt D56 niet in de code voor.
Code:
Private Sub CmdOk_Click()
Dim Txt As String

'Energie
If TxtB1EnergieInv <> "" Then Range("D5") = TxtB1EnergieInv
If TxtB2EnergieInv <> "" Then Range("D6") = TxtB2EnergieInv
If TxTBEnergieTotaalInv <> "" Then Range("D4") = TxTBEnergieTotaalInv
'Richard
   Range("D9") = Me.TxtB1RichardInv
   Range("D10") = Me.TxtB2RichardInv
   Range("D11") = Me.TxtB3RichardInv
   Range("D8") = Me.TxTRichardTotaalInv
'Auto
   Range("D12") = Me.TxTBAuto1
   Range("D13") = Me.TxTBAuto2
   Range("D14") = Me.TxTBAuto3
   Range("D15") = Me.TxTBAuto4
'Vakantie
   Range("D17") = Me.TxTVakantie1
   Range("D18") = Me.TxTVakantie2
   Range("D19") = Me.TxTVakantie3
   Range("D20") = Me.TxTVakantie4
   Range("D21") = Me.TxTVakantie5
  
'Application.ScreenUpdating = True

    Unload Me
End Sub
 
Laatst bewerkt:
Ik was ook net aan het kijken, en hier (hoe zou het anders kunnen) werkt het uiteraard ook met HSV's werkwijze.
Als je ook de opmaak op je werkblad wil behouden kan je het bv. zo doen:
Code:
If TxtB1EnergieInv <> "" Then Range("D5") = Val(TxtB1EnergieInv)
 
TxTBEnergieTotaalInv wordt hier bij het openen van de Userform gevuld met een 0
Dan is deze uiteraard niet leeg:

Clipboard_01-09-2025_01.jpg
 
Trouwens, het zal sowieso nog fout gaan met dat totaal als niet bij elke uitgavepost een 'nieuw' bedrag wordt ingevuld!
Dus: ofwel de code nog wat uitbreiden, ofwel (mijn persoonlijke voorkeur) formules op het werkblad gebruiken (en dan vanzelfsprekend het totaal niet meer wegschrijven met de code).
 
edmoor

ik kreeg dit op,
If TxtB1EnergieInv <> "" Then Range("D5") = Val(TxtB1EnergieInv)
If TxtB2EnergieInv <> "" Then Range("D6") = Val(TxtB2EnergieInv)
If TxTBEnergieTotaalInv <> "" Then Range("D4") = Val(TxTBEnergieTotaalInv)

Maar dat werkt niet wat ik wil als ik de TxtB1EnergieInv bij (Nieuw) leeg laat maak hij D5 leeg
dat iss niet de bedoe;ing
 

Bijlagen

Die 0 komt erin door de regel die ik hier van een commentaar teken heb voorzien:
Code:
Sub Optellen()
    With InvoerOverzicht
        .TxTBEnergieTotaal.Value = Val(Replace(.TxtB1Energie, ",", ".")) + Val(Replace(.TxtB2Energie, ",", "."))
        '.TxTBEnergieTotaalInv.Value = Val(Replace(.TxtB1EnergieInv, ",", ".")) + Val(Replace(.TxtB2EnergieInv, ",", "."))
        .TxTRichardTotaal.Value = Val(Replace(.TxtB1Richard, ",", ".")) + Val(Replace(.TxtB2Richard, ",", ".")) + Val(Replace(.TxtB3Richard, ",", "."))
        .TxTRichardTotaalInv.Value = Val(Replace(.TxtB1RichardInv, ",", ".")) + Val(Replace(.TxtB2RichardInv, ",", ".")) + Val(Replace(.TxtB3RichardInv, ",", "."))
    End With
End Sub
Wat je van HSV kreeg is gewoon goed, als die velden initieel inderdaad echt leeg zijn.
Met een 0 erin is zo'n veld niet leeg.
 
Wat is je andere vraag precies?
 
edmoor's opmerking klopt uiteraard, zie ook mijn #9 !
Los daarvan zal je inderdaad nog rare dingen te zien krijgen. We zouden ons kunnen afvragen wat volgende instructie bij UserForm_Initialize() staat te doen: Range("D5") = TxtB1EnergieInv
 
edmoor

ik kreeg dit op,
If TxtB1EnergieInv <> "" Then Range("D5") = Val(TxtB1EnergieInv)
If TxtB2EnergieInv <> "" Then Range("D6") = Val(TxtB2EnergieInv)
If TxTBEnergieTotaalInv <> "" Then Range("D4") = Val(TxTBEnergieTotaalInv)

Maar dat werkt niet wat ik wil als ik de TxtB1EnergieInv bij (Nieuw) leeg laat maak hij D5 leeg
dat iss niet de bedoe;ing
 

Bijlagen

Volgens mij ben jij sneller achter je toetsenbord dan dat je aandacht schenkt aan de suggesties die er worden gegeven.
 
Haal deze regel weg uit de Userform_Initialize:
Code:
Range("D5") = TxtB1EnergieInv
 
Vreemd, die regel staat helemaal niet in het bestand wat ik hier gedownload heb @edmoor.
 
In het bestand van #15:
Code:
'Vakantie
    LBVakantie.Caption = Range("A16").Value
    LBVakantie1.Caption = Range("B17").Value
    TxTVakantie1.Text = Range("D17").Value
    LBVakantie2.Caption = Range("B18").Value
    TxTVakantie2.Text = Range("D18").Value
    LBVakantie3.Caption = Range("B19").Value
    TxTVakantie3.Text = Range("D19").Value
    LBVakantie4.Caption = Range("B20").Value
    TxTVakantie4.Text = Range("D20").Value
    LBVakantie5.Caption = Range("B21").Value
    TxTVakantie5.Text = Range("D21").Value
Range("D5") = TxtB1EnergieInv
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan