dirkbekkers
Gebruiker
- Lid geworden
- 8 dec 2011
- Berichten
- 12
Goedendag,
ik heb al vele berichten op internet gevonden over mijn probleem. Echter weet ik niet welke oplossing ik moet toepassen.
Ik heb een userform. De user voert in 2 textboxen datums in met formaat dd-mm-yyyy. Het formaat van de cel is als volgt gedefinieerd:
Daarna check ik of het een geldige datum is:
En daarna sla ik de invoer op in een combobox:
Als laatste voeg ik de gegevens in de combobox toe aan een worksheet:
Echter loop ik tegen het american-eu datum probleem aan. Ik heb het vermoeden dat ondanks dat ik het formaat dd-mm-yyyy meegeef vba het leest als mm-dd-yyyy. Dus ik lees dd-mm-yyy maar er staat mm-dd-yyyy en bij het de output naar de worksheet draait vba dat weer om naar europees. Dus dan staat het verkeerd om.
Ik weet niet vanaf welk moment VBA de datum als zijnde amerikaans ziet en weet dus ook niet waar ik mijn code moet aanpassen, of bij het opslaan in de combobox of bij het toevoegen aan mijn worksheet.
Als ik de gegevens uit de worksheet weer in de userform inlees dan pakt hij de datum op zoals hij in de worksheet staat.
note: dit gebeurt alleen bij dag 1 tm 12 omdat deze ook als maand gezien kunnen worden.
Alvast bedankt voor de genomen moeite!
ik heb al vele berichten op internet gevonden over mijn probleem. Echter weet ik niet welke oplossing ik moet toepassen.
Ik heb een userform. De user voert in 2 textboxen datums in met formaat dd-mm-yyyy. Het formaat van de cel is als volgt gedefinieerd:
Code:
t3.Value = Format(t3.Value, "dd/mm/yyyy").
Code:
Private Sub T3_exit(ByVal Cancel As MSForms.ReturnBoolean)
If t3.Text <> "" Then
If IsDate(t3.Text) Then
t3.Text = Format(t3.Text, "dd/mm/yyyy")
Else
MsgBox "Vul aub een geldige datum in!"
Cancel = True
End If
End If
If t3.Value <> "" And t4.Value <> "" And t14.Value <> "" And t16.Value <> "" And t12.Value <> "" And t18.Value <> "" Then
totaaltijdenwerkelijk
totaaltijdengepland
Else
End If
end sub
En daarna sla ik de invoer op in een combobox:
Code:
Private Sub knop_opslaan_Click()
' de knop 'opslaan' slaat de gewijzigde gegevens van een record op in de combobox 'keus'
' als het om een nieuw record gaat (keus.listindex=-1) :
' - wordt het nummer in 'keus' in de eerste cel van het laatste record gezet
' - wordt een nieuw record aan combobox 'keus' toegevoegd en
' de gegevens in de tekstvakken/invoerlijsten T1 t/m T35 worden ingelezen in overeenkomstige 'cellen' - keus.list(1,2) t/m keus.list(1,35) - van combobox 'keus'
With keus
If .ListIndex = -1 Then ' nieuw record
.List(.ListCount - 1, 0) = .Value
If .ListIndex = .ListCount - 1 Then .AddItem
End If
For j = 1 To UBound(.List, 2) ' zet de inhoud van de gegevensvelden in combobox 'keus'
.List(.ListIndex, j) = Me("T" & j).Text
Next
End With
knop_opslaan.Visible = False
knop_cmdAdd.Visible = True
knop_cmdAdd.Tag = " "
End sub
Als laatste voeg ik de gegevens in de combobox toe aan een worksheet:
Code:
Private Sub knop_cmdAdd_Click()
Hide ' verberg het invoerscherm
With Sheets("database").Cells(1, 1)
.CurrentRegion.Offset(1).ClearContents ' verwijder de databasegegevens in werkblad 'database'
.Offset(1).Resize(keus.ListCount, UBound(keus.List, 2) + 1) = keus.List ' pas het gebied voor de gegevens aan, aan de inhoud van combobox 'keus' en zet ze daar
End With
DoorvoerenFormule
ActiveWorkbook.Save ' bewaar het gewijzigde bestand
End Sub
Echter loop ik tegen het american-eu datum probleem aan. Ik heb het vermoeden dat ondanks dat ik het formaat dd-mm-yyyy meegeef vba het leest als mm-dd-yyyy. Dus ik lees dd-mm-yyy maar er staat mm-dd-yyyy en bij het de output naar de worksheet draait vba dat weer om naar europees. Dus dan staat het verkeerd om.
Ik weet niet vanaf welk moment VBA de datum als zijnde amerikaans ziet en weet dus ook niet waar ik mijn code moet aanpassen, of bij het opslaan in de combobox of bij het toevoegen aan mijn worksheet.
Als ik de gegevens uit de worksheet weer in de userform inlees dan pakt hij de datum op zoals hij in de worksheet staat.
note: dit gebeurt alleen bij dag 1 tm 12 omdat deze ook als maand gezien kunnen worden.
Alvast bedankt voor de genomen moeite!