userform: textvak in juiste natatie zetten

Status
Niet open voor verdere reacties.

PolBE

Gebruiker
Lid geworden
12 okt 2016
Berichten
53
Beste forumgangers

Misschien ligt het wel aan mij maar ik raak er niet uit. Tijd en datums zijn voor mij moeilijk te begrijpen. Al is het probleem vermoedelijk eenvoudig. Toch even zeggen dat ik nog werk op een oude office 2003!
Ik wil in een tekstvak van een userform een datum zetten. Deze zou in juiste notatie moeten staan en bij ingeven moet een fout gemeld worden (vb bij ingeven van; 10/10/202)
Zie hieronder wat ik bedoel. Deze datum komt nadien in een sheet en moet ook hier in de notatie gezet worden, liefst zonder de notaties van de cel aan te passen.

Tweede vraag is: ik wil ook deze datum in een andere cel zetten maar omgekeerd. (vb: 12/14/1987 >> 871412). Hoe kan ik dit uitvoeren.
Sorry maar de kennis hiervan is niet zo groot.
Hartelijk dank

Code:
Private Sub UserForm1_Initialize()
    On Error Resume Next
    TextBox1.Value = Format(Date, "dd/mm/yyyy")
End Sub
-------------------------------------------------------

Private Sub Opslaan_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("blad1")

'vind laatst gebruikte cel, ga naar volgende rij
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

ws.Cells(iRow, 1).Value = Me.TextBox1.Value

'verwijder gegevens in frmcursistgegevens
Me.TextBox1 = ""

End Sub
 
Zoiets?
Code:
Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("blad1")
iRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ws.Cells(iRow, 1).Value = CDate(TextBox1.Value)
ws.Cells(iRow, 2).Value = Format(TextBox1.Value, "yy") & Format(TextBox1.Value, "mm") & Format(TextBox1.Value, "dd")
End Sub
Private Sub TextBox1_AfterUpdate()
If IsDate(TextBox1.Value) = False Or Len(TextBox1.Value) < 10 Then
        MsgBox ("Dit is geen geldige datum!"), vbCritical, "Fout! (gebruik dd/mm/yyyy)"
        TextBox1.SetFocus
        TextBox1.Value = Null
        Cancel = True
    End If
End Sub
Private Sub UserForm_Initialize()
TextBox1.Value = Format(Date, "dd/mm/yyyy")
End Sub
 
Beste gast0660
Bedankt voor deze oplossing, voor cel 1 werkt het goed alleen in de cel op de tweede rij wordt niets ingevuld, deze blijft leeg. De omgedraaide datum!
Groeten, Pol
 
Hoy gast0660, stom denk ik want jouw bestandje werkt wel. Er was een verschil in naam van de "commandButton". Opgelost dus
Niet direct met dit userform maar toch, het heeft er verband mee. Ik heb nog iets raar, ik wil een verschil berekenen tussen twee datums maar in excel 2003 vind ik de opdracht "datumverschil" niet terug. Misschien kan dit ook via het 'userform' opgelost worden? Weet jij dit misschien?
Bedankt op voorhand voor alle moeite
 
Hoi,
Post een gelijkend vb bestandje met wat Jan en Katrien gegevens dat werkt een stuk vlotter.
 
Hoi,
Als er niemand mij voor is, geef ik morgen wel een voorzetje.
Alleen één opmerking, post een beter, meer gelijkend, representatief,duidelijk en ... bestandje.
Ik neem aan dat je nog wat meer wilt invullen via de userform dan de twee vakjes in uw vbtje en het verschil.
 
Gebruik datums als datums het rekenen ermee is dan niet zo moeilijk.

Het opslaan in verschillende formats kan ook wel in 1 regel
Code:
Private Sub CommandButton1_Click()
  If IsDate(TextBox1) And IsDate(TextBox2) Then Sheets("Blad1").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 3) = Array(CDate(TextBox1), Format(TextBox1, "yymmdd"), Format(TextBox2, "mm/yyyy"))
End Sub

Plaats zoals door gast0660 al aangegeven een representatief voorbeeldje.
 
Beste gast0660 en VenA

De vorige vraag m.b.t. datumverschil was een formule fout die al is opgelost. (“j” i.p.v. “y”)
In bijlage de versie die ik tot nu toe heb. Na het weekend ga ik hier verder aan werken. Wat ik nog wil is een zoeksysteem. Een userform dat opent en je bv een volgnummer ingeeft (B) en de gegevens in het formulier verschijnen. Aanvullen kan dan in dit formulier maar bij sluiten gaat de cursor naar het eerste vakje in de rij van het volgnummer.
Niet dat jullie dit moeten maken hoor, enkel even op weg helpen met de zoekfunctie.
Bedankt en goed weekend, Pol

Bijlage bevat enkel fictieve gegevens!
Bekijk bijlage Map11.xls
 
Laatst bewerkt:
Als de volgnummers oplopend blijven zoals het nu staat.

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 On Error Resume Next
 Application.Goto Cells(TextBox1.Value + 7, 1)
End Sub
 
Hallo
Met het zoekformulier ben ik er bijna uit met uitzondering van een enkel puntje, althans voorlopig ;-)

Ik gebruikt een userform om de sheet (hoofdlijst) van excel te vullen, hier heb ik een deel van code die perfect werkt:

Code:
.......
ws.Cells(iRow, 4).Value = Me.txtVoornaam.Value
ws.Cells(iRow, 5).Value = Me.txtFamilienaam.Value
    If GeslOption1.Value = True Then
ws.Cells(iRow, 6).Value = "M"
    End If
    If GeslOption2.Value = True Then
ws.Cells(iRow, 6).Value = "V"
    End If
....

tot zover is dit dus in orde

Nu, om nadien te zoeken naar een bepaald record heb ik een ander userform gemaakt dat de gegevens terug uitleest van de sheet "hoofdlijst"
Dit lukt me behalve voor een frame, deze waarde (M of V in een cel van hoofdlijst) krijg ik niet in het userform, ofwel GeslOption1 of GeslOption2 (Optionbuttons)
Deel van de code. De textvakken worden mooi gevuld maar het Frame lukt me niet. Hier is dus iets fout in de code, graag een aanwijzing aub.

Code:
........
    If ActiveCell.Cells(1, 3).Value = "Ja" Then
Me.CheckBoxWacht.Value = True
    End If

Me.txtVoornaam = ActiveCell.Cells(1, 4).Value
Me.txtFamilienaam = ActiveCell.Cells(1, 5).Value

    If ActiveCell.Cells(1, 6).Value = "M" Then
    Me.GeslOption1.Value = True
    Else
    Me.GeslOption1.Value = False
    End If
    
    If ActiveCell.Cells(1, 6).Value = "V" Then
    Me.GeslOption2.Value = True
    Else
    Me.GeslOption2.Value = False
    End If
........
 
Als de volgnummers oplopend blijven zoals het nu staat.

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 On Error Resume Next
 Application.Goto Cells(TextBox1.Value + 7, 1)
End Sub

Bedankt voor de tip Harry
 
Bedankt snb maar ik worstel met een frame.
Het kan aan mij liggen maar hiervan zie ik geen voorbeeld op de site die je opgeeft.

Bedankt
 
Een Frame kan geen struikelblok zijn: op basis van de keuze die in een listbox wordt gemaakt worden de bijbehorende gegevens getoond.
Een frame heeft daar geen enkele invloed op.

Voor zaken die slechts 2 waarden kunnen aannemen neem je gewoon een checkbox:
bijv. aan= "V", uit="M"

dan heb je aan 1 regel VBA voldoende:
Code:
vink_geslacht = Cells(1, 6).Value = "V"

Overigens moet je gegevens niet steeds uit een werkblad lezen, maar eerst in een array zetten.
 
Laatst bewerkt:
Bedankt snb, ik zal hier verder achter zoeken

Heb nog een probleem maar ik zal dit in een nieuwe vraag zetten!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan