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

Celnotatie wordt pas doorgevoerd na [Enter]

Status
Niet open voor verdere reacties.

hoogteijling

Terugkerende gebruiker
Lid geworden
12 aug 2005
Berichten
4.261
Hallo allemaal,

Ik heb een stuk VBA code wat oa via een userform bepaalde gegevens invult in de cellen.
Nu selecteer ik in het userform een datum bijv. 18-06-2014, deze datum moet er in mijn sheet echter uitzien als 18-06-14.
De bewuste cellen zijn opgemaakt als dd-mm-jj maar deze notatie wordt pas doorgevoerd wanneer ik in de formulebalk een [Enter] geef.
Weet iemand wat ik aan mijn VBA code toe moet voegen/aanpassen om te zorgen dat de cel de goede notatie weergeeft.

Code:
Private Sub CheckBox21_Click()                                                          '<= Check of regie is aangevinkt
If CheckBox21.Value = True Then TextBox4.Enabled = False                                '<= Check of regie is aangevinkt
If CheckBox21.Value = False Then TextBox4.Enabled = True                                '<= Check of regie is aangevinkt
End Sub
Private Sub CommandButton3_Click()                                                      '<= Project toevoegen button in Uform
  Dim oRng As Range
    Application.ScreenUpdating = False
    PrjctNr = Format(TextBox2.Value, IIf(Len(TextBox2.Value) = 4, "@.@@@", "@.@.@@@")) & "-" & ComboBox11.Value & ComboBox12.Value
    With Sheets("Projectenboek")
        If InStr(1, Join(WorksheetFunction.Transpose(.Range("C2:C" & _
                .Cells(Rows.Count, 3).End(xlUp).Row)), " "), PrjctNr) <> 0 Then MsgBox "Projectnummer bestaat al !!": Exit Sub
        rij = .Range("C" & Rows.Count).End(xlUp).Row + 1                                '<= Eerstvolgende lege regel (in kolom C)
        [COLOR="#FF0000"].Cells(rij, "B") = WorksheetFunction.Text(TextBox1.Value, "dd-mm-yy")           '<= Datum plaatsen[/COLOR]
        .Cells(rij, "C") = PrjctNr                                                      '<= zorgt voor correcte notatie projectnummer (puntjes)
        .Cells(rij, "E") = ComboBox13.Value                                             '<= Status plaatsen
        .Cells(rij, "F") = TextBox3.Value                                               '<= Omschrijving plaatsen
        .Cells(rij, "G") = IIf(CheckBox21, "Regie", TextBox4.Value)
        .Cells(rij, "H") = TextBox5.Value                                               '<= Aanvrager plaatsen
        .Cells(rij, "I") = TextBox6.Value                                               '<= Actie plaatsen
        .Cells(rij, "J") = TextBox7.Value                                               '<= Opmerking plaatsen
        On Error GoTo 0
        .Sort.SortFields.Clear                                                          '<= Begin sorteercode (135 betekent dat regel 1 t/m 135 ongemoeid wordt gelaten)
        .Sort.SortFields.Add Key:=Range("C135:C" & .Cells(Rows.Count, 3) _
                    .End(xlUp).Row), SortOn:=xlSortOnValues, Order:=xlAscending
        With .Sort
            .SetRange Range("B135:L" & Sheets("Projectenboek") _
                        .Cells(Rows.Count, 2).End(xlUp).Row)
            .Header = xlYes
            .Apply
        End With                                                                        '<= Einde sorteercode (135 betekent dat regel 1 t/m 135 ongemoeid wordt gelaten)
    End With
    proj_toev.Hide
    Unload Me
    Application.ScreenUpdating = True
End Sub
Sub M_check()
    CommandButton3.Visible = TextBox2.Text <> "" And TextBox3.Text <> "" And TextBox5.Text <> "" And TextBox6.Text <> ""    '<= Check of verplicht velden zijn ingevuld
End Sub
Private Sub UserForm_Initialize()
    Dim TodaysDate As String
    TodaysDate = Format(Now(), "dd/mm/yyyy")
    TextBox1.Value = TodaysDate
End Sub
Private Sub TextBox1_Enter()
    g_bForm = True
    frmCalendar.Show_Cal
    Me.TextBox1.Value = Format(g_sDate, "dd-mm-yyyy")
End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 48 To 57:                      '<= nummers 0-9 toestaan
        Case Else: KeyAscii = 0
    End Select
End Sub
Private Sub TextBox2_Change()               '<= Check of box is ingevuld
    M_check
End Sub
Private Sub TextBox3_Change()               '<= Check of box is ingevuld
    M_check
End Sub
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 48 To 57:                      '<= nummers 0-9 toestaan
        Case Else: KeyAscii = 0
    End Select
End Sub
Private Sub TextBox4_Change()               '<= Check of box is ingevuld
    M_check
End Sub
Private Sub TextBox5_Change()               '<= Check of box is ingevuld
    M_check
End Sub
Private Sub TextBox6_Change()               '<= Check of box is ingevuld
    M_check
End Sub

Private Sub TextBox8_Change()

End Sub
Groeten Marcel
Bekijk bijlage Projectenboek-niet-ok.zip
 
Laatst bewerkt:
Werk je misschien met een niet-Nederlandstalige versie van Excel?
Hoe dan ook: verwijder de regel met rode tekst, vervang die door onderstaande code en kijk of dat het gewenste resultaat geeft
Code:
With .Cells(rij, "B")
.NumberFormat = "mm-dd-yy"
.Value = TextBox1.Value
End with
 
Ik gebruik een NL versie van Excel2007.

Je code geeft het zelfde resultaat helaas.
Wanneer ik in de formulebalk een enter geef op de gekozen cel dan wordt pas de correcte datumnotatie weergegeven. (dd-mm-jj)

Groeten Marcel
 
Iedereen die je bericht leest, zal zich eindeloos suf staren om in die code de fout te vinden, want de fout zit niet daarin maar in een ander gedeelte van de code die je in je bestand gebruikt. Dat weet ik toevallig omdat ik je eerder met een vraag hielp waarin de rest van de code wel werd getoond. Wijzig in dat bestand de code van "Private Sub UserForm_Initialize()" als volgt:
Code:
Private Sub UserForm_Initialize()
 Dim TodaysDate As String
 TodaysDate = Format(Now(), "dd-mm-yy") 
 TextBox1.Value = TodaysDate
End Sub
 
Het stukje code waar jij op doelt staat een stuk verder naar onder.
Ik heb het vervangen door jouw stuk code maar het resultaat blijft hetzelfde.

Ik heb alleen de code van de Uform gepost omdat ik het bestand met geen mogelijkheid onder de 100kb krijg en het dus niet aan mijn topic kan koppelen.

Groeten Marcel
 
Dat bestand van je vorige vraag had ik niet meer, dus ik heb het opnieuw gedownload. Welnu, als ik daarin ALLEEN de aanpassing doe zoals in mijn laatste bericht hierboven, dan wordt in kolom B de datum weergegeven zoals jij wenst (bv. als 18-06-14), zonder dat ik die datum in de cel of in de formulebalk nog met [ENTER] moet bevestigen.
Verder kun je na de aanpassing van "Private Sub UserForm_Initialize()" de rode regel in de code in je eerste bericht hierboven, weer vervangen door wat er oorspronkelijk stond, nl:
'
Code:
.Cells(rij, "B") = TextBox1.Value
In je code worden nog op verschillende andere plaatsen datumnotaties gebruikt.
Wijzig die ook in de door jou gewenste vorm.
PS: Vandaag kan ik niet verder meer op vragen ingaan.
 
Laatst bewerkt:
Leeg bestand heb ik ook al geprobeerd maar blijft te groot, komt vast door het Uform en de bijbehorende modules.
Ik leer er wel mee leven dat ik bij het kiezen van een datum een 2-cijferig jaartal zie, die neemt ie ook over naar de bewuste cel en daar ging het uiteindelijk om.

Erg bedankt allemaal voor de hulp.

Iemand toevallig nog tips voor het toch kunnen plaatsen van een bestand groter dan 100kb ?

Groeten Marcel
bMc72oo.png
 
zippen, opslaan als.xlsb of uploaden via mijnbestand.nl. Om er een paar te noemen.
 
Hmmm, nooit geweten dat het bestand kleiner wordt wanneer je het als .xlsb opslaat, hij is idd een stuk kleiner dan.
Zippen had niet het gewenste resultaat.
Bij een ander topic had ik een Wetransfer link geplaatst maar die blijft maar 2 weken opvraagbaar.
Blijft ie bij mijnbestand.nl wel onbeperkt opvraagbaar ?

Groeten Marcel
 
Heb bij mijn eerste post de bijlage bijgevoegd (die nu niet meer te groot is)

Groeten Marcel
 
Ik heb drie projecten toegevoegd en kan jouw probleem niet reproduceren. Dus ik neem aan dat de vraag terecht op opgelost staat. Nog wel een tip voor als je een bestand wil verkleinen: Haal de opmaak eruit.
 
Ik heb het bestand dat je bij je eerste bericht plaatste nog eens gedownload en ook op mijn computer wordt (evenals bij VenA) de datum bij invoeren van een project wederom weergegeven zoals jij dat wenst (dus bv. als 19-06-14) zonder dat er nog een [Enter] moet plaatsvinden. Maar dat meldde ik al eerder voor je eerder geplaatste bestand.
 
Laatst bewerkt:
@hoogteijling,

Hoe leuk het ook lijkt, kan je die draaiende kop uitzetten? Het maakt het lezen van een vraag of een opmerking, (voor mij in iedergeval), nogal lastig.

@zapatr, Blijkbaar jouw code dus:thumb: (Even getest in XL-2007 NL en XL-2010 EN) #12 en doet het gewoon.
 
Dat ie nu wel werkt komt omdat ik de code heb aangepast waardoor die in het kalendertje al de notatie dd-mm-jj heeft.
Wanneer ik deze weer op dd-mm-jjjj zet krijg ik hem ook als dus danig in de cel, nadat ik dan heb ge-enterd is ie wel goed.
Bij mijn startpost heb ik nu de foute excelsheet gedaan waarbij de weergave in de kalender dus dd-mm-jjjj is maar in de cel pas goed wordt na een enter.

Groeten Marcel
 
Laatst bewerkt:
In bericht #6 (zie aldaar) had ik onderaan al geschreven:
"In je code worden nog op verschillende andere plaatsen datumnotaties gebruikt. Wijzig die ook in de door jou gewenste vorm."
 
Ik zie ook in frmCalendar dat er notaties staan zoals m/d/yy maar die hoef ik volgens mij niet te veranderen toch ?
Of moet ik het alleen veranderen in proj-toev ?
Het duizeld mij een beetje zo onderhand, pfffft

Groeten Marcel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan