Eerste letter van de dagnaam met hoofdletter

Status
Niet open voor verdere reacties.

masala09

Gebruiker
Lid geworden
6 aug 2012
Berichten
886
Aanvullend vanuit een ander topic, hier een aparte vraag over.

Hoop dat jullie kunnen helpen.

Het is de bedoeling dat de eerste letter van de dagnaam, bijvoorbeeld: Maandag, met een hoofdletter wordt geschreven.

Ergens mis ik iets, of ik ga ergens in de fout. Ik krijg nu als resultaat: Z 16-01-2016 terwijl ik als resultaat: Zaterdag 16-01-2016 wil.


Code:
    Label5 = UCase(Left(WeekdayName(Weekday(Date, vbMonday), False, vbMonday), 1) & Format(Date, " dd-mm-yyyy"))
 
bv.
Code:
Label5= application.proper(Format(Date, " dddd dd-mm-yyyy"))
 
Yep dat was hem. Application.Proper. Helemaal vergeten.

Deze ingevoegd waarna onderstaande code volgt:

Code:
        Label5 = Application.Proper(WeekdayName(Weekday(Date, vbMonday), False, vbMonday) & Format(Date, " dd-mm-yyyy"))

Bij uitvoeren, krijg ik mijn gewenst resultaat.

Dank je HSV!!!
 
Kleine verandering gevraagd.

Code:
Label5.Caption = "Datum" & vbNewLine & Application.Proper(WeekdayName(Weekday(Date, vbMonday), False, vbMonday) & Format(Date, "  dd-mm-yyyy"))

In dit label wil ik alleen het woordje "Datum" met vetgedrukte letters hebben.

Volgens mij was het iets met Label5.Font.Bold=True.
 
Hoi,
In dit label wil ik alleen het woordje "Datum" met vetgedrukte letters hebben.
Volgens mij kan een label maar één tekst eigenschap hebben, maar waarom gebruik je geen 2 labels?
groet
 
Dat snap ik en weet ik, maar als de optie er is dan wil ik daar gebruik van maken. Zo niet dan blijft het gebruik van 2 labels inderdaad de optie, maar ik weet dat er veel mogelijk is met VBA. Al zijn de opties ook eindig.
 
Code:
Label5.Caption = Application.Proper(WeekdayName(Weekday(Date, vbMonday), False, vbMonday) & Format(Date, "  dd-mm-yyyy"))
Kan toch een heel stuk korter:
Code:
StrConv(Format(Date, "dddd dd-mm-yyyy"), vbProperCase)
 
Een stukje korter zegt hij dan....... Maar blijft dit ook met de schikkeljaren goed werken. Dit omdat ik al eens een code had die eens in de 400 jaar een fout geeft.
 
Dan klap ik de rest hier ook maar even neer.

Is voor een lopende klok.

Code:
    Do
        
        Label2.Caption = "Week" & vbNewLine & DatePart("ww", Date - Weekday(Date, 2) + 4, 2, 2)
       
        'Label3.Caption = "Datum" & vbNewLine & Application.Proper(WeekdayName(Weekday(Date, vbMonday), False, vbMonday) & Format(Date, "  dd-mm-yyyy"))
        
        Label3 = StrConv(Format(Date, "dddd dd-mm-yyyy"), vbProperCase)
        
        Label4.Caption = "Tijd" & vbNewLine & Format(Time, "hh:mm:ss")
        
        DoEvents
    Loop

Nog korter?? Haha
 
Ja, maar weet jij welk jaar dat is? Is dat volgend jaar of pas over 400 jaar... :). Bovendien: deze code pakt gewoon de datum en zet daar een format op. Niet echt spannend of schikkeljaargevoelig.
Code:
MsgBox StrConv(Format(Date, "dddd dd-mm-yyyy", 2, 2), vbProperCase)
Overigens denk ik niet dat je een oplossing gaat vinden voor het gedeeltelijk opmaken van een label of tekstvak.
 
Dus mijn code rekent de boel uit, terwijl jouw code de datum van het systeem pakt. Bedoel je dat.....

Voor wat betreft die 400 jaar.....Nee ik geloof niet dat ik dat zal mee maken, maar je weet nooit. Ik wil gewoon geen foutmelding krijgen omdat er een programma voor mijn bedrijf achter hangt en dus hierin niets fout mag gaan.

Voor wat betreft het gedeeltelijk opmaken.... dat had ik al begrepen. Ik had wel gehoopt dat er iets voor bestond, maar zover is het kennelijk nog niet. Alles kan, maar zoiets..........

Ik ben al labels extra aan het plaatsen. Dat werkt wel. Dat had ik al eerder gedaan voor dat ik de vraag hier stelde, maar omdat ik zoiets had van ik kan ook alles in 1 label plaatsen...... laat ik dat maar doen. Is netter en overzichtelijker in het ontwerpen. Helaas hier geen rekening mee gehouden.
 
Laatst bewerkt:
Eeuwjaren hebben geen schrikkeldag behalve als ze deelbaar zijn door 400.
De fout zou je tegen kunnen komen in het jaar 2400.
Vandaar eens in de 400 jaar een foutief uitkomst volgens de makers van je code.

Wij zullen dit dus niet meemaken. :d
 
Volgens mij kun je met 2 labels uit de voeten; één label met alle normaal opgemaakte tekst, en één label met de vette tekst. Die laatste zet je dan bovenop de eerste. Op de plek waar je 'm neerzet zet je dan uiteraard een blanco regel in het onderste tekstvak.
 
@OctaFish,

Jij bent nogal handig in Access.
Heb je ook verstand van HTML?
Zou zoiets niet mogelijk zijn in een object als een Webbrowser?
Ik schrijf hier maar even wat raars:
Code:
webbrowser1........ "Datum" & <>// & bolttekst & //<> ""
 
HSV bedankt voor de uitleg. Weet ik meteen waar die 400 vandaan komt. Zo leer je iedere dag weer bij. Beetje achtergrond info is wat dat aangaat altijd meegenomen.

OctaFish. Ook jij bedankt. Ik heb nu 6 labels geplaatst. Ik wilde ook vakken erin hebben. 3 Hebben er nu een BorderStyle (1) waarin ook de teksten: Week, Datum en Tijd vetgedrukt staan. De andere 3 labels staan inderdaad over de eerder genoemde labels heen en hebben een BorderStyle(0) waarin dan de gegevens staan.

Toch nog wel een kleine opmerking. Ik gebruik in een ander formulier de volgende code:
Code:
Sub Dagnaam()
    Dim Datum As Date

    Datum = TextBox2.Value & "-" & TextBox3.Value & "-" & TextBox4.Value
    
    TextBox1.Value = DatePart("ww", Datum - Weekday(Datum, 2) + 4, 2, 2)
    TextBox5.Value = WeekdayName(Weekday(Datum, vbMonday), False, vbMonday)

End Sub

Ik gebruik deze straks in een ander formulier waarbij handmatig de datums etc ingevoerd moeten gaan worden voor het verwerken van de urenregistraties waarna deze op een database moeten worden weggeschreven. Is de code die hier dan staat wel genoeg.

Dit formulier gaat over het hoofdformulier heen waarin de klok staat en welke over heel het scherm wordt uitgevuld. Ik wil niets meer zien van Excel werkbladen dan hooguit wanneer het noodzakelijk is.

Anders knal ik er wel een klein voorbeeldje in. Het is nog volledig in opzet dus veel is het niet.
 
Laatst bewerkt:
Ik zou Dateserial gebruiken voor de datum:
Code:
Datum = DateSerial(Me.TextBox2, Me.TextBox3, Me.TextBox4)
@HSV: in Access kun je wél deelopmaak toepassen in een tekstvak, dus je hoeft niet eens een webbrowser object te gebruiken. Maar Excel loopt een beetje achter :).
 
DateSerial gebruiken doet de rest van de code niet meer goed functioneren.

Waarom DateSerial... is dat vanwege de toegevoegde streepjes in mijn code zonder DateSerial?
 
DateSerial gebruiken doet de rest van de code niet meer goed functioneren.
Je wilt toch een datum genereren? Dat doet Dateserial. Ik weet niet wat er precies in welk tekstveld staat; kan zijn dat de volgorde bij jou anders is. Ik ging er vanuit dat het jaar in 2 staat, de maand in 3 en de dag in tekstvak 4. Voordeel van de functie? Je bent gegarandeerd zeker van een correcte datum die je verder kunt bewerken. Zodra je met koppeltekens gaat werken, zit je altijd met de juiste datumnotatie te klooien.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan