• 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 Datumnotatie Keuzelijst

Dit topic is als opgelost gemarkeerd

Lampie173

Gebruiker
Lid geworden
21 jan 2012
Berichten
242
Goedemiddag allen,

Ik heb me rot gezocht en getest om de opmaak van het bereik op de rechter afbeelding gelijk te krijgen in het keuzevak.
Helaas, alle moeite te spijt lukt het mij niet.
Dus zo:
01-04-2025 enz.

Geprobeerd met Format(t_1, "dd-mm-jjjj"), geen foutmelding, maar geen verandering.

Dit is de code waarmee het keuzevak gevuld wordt.
t_1.List = .[datum].Value
Ligt het daaraan?


Vervolgens wordt de waarde als volgt opgeslagen.
.ListObjects(1).ListRows.Add.Range = Array(CDate(t_1), Format(t_2, "000"), t_3, t_4, t_5, t_6, t_7, t_8, t_9, t_10 * 1)


Schermafbeelding 2025-04-05 154635.pngSchermafbeelding 2025-04-05 154707.png

Badankt voor het lezen.
 
Code:
sv = Sheets(1).ListObjects(1).ListColumns("datum").DataBodyRange
 With t_1
  .List = sv
  For i = 1 To UBound(sv)
   .List(i - 1, 0) = Format(sv(i, 1), "dd-mm-yyyy")
  Next i
 End With
 
Goedemorgen allen,

@HSV,

Het is gelukt!
Ik heb uiteindelijk (na wat aanpassingen en testen en vooral ook leren begrijpen waardoor een code steeds in de fout gaat!!) jouw code gebruikt.
Het bereik DATUM was eerst geen onderdeel van de draaitabel, ik heb dit alsnog toegevoegd.

Jouw (aangepaste) code doet wat ik voor ogen had.

Hartelijk bedankt voor de genomen moeite.
 

Bijlagen

  • Schermafbeelding 2025-04-06 113511.png
    Schermafbeelding 2025-04-06 113511.png
    12 KB · Weergaven: 3
Dat moet simpeler kunnen:

Code:
Private Userform_initialize()
  t_1.list=[index(text(Table1[datum],"dd-mm-yyyy"),)]
End Sub
 
@snb,

Jouw bijdrage is korter, maar in uitvoering toch ook weer langer! ;)Schermafbeelding 2025-04-07 211033.png
Als men dus een datum van deze week wilt invullen, dan wordt een hele reeks van 00-01-1900 weergegeven.
 
@HSV,
Waar plaats ik jouw code? Moet ik een lijst van data maken om de code te laten werken?
 
@CorVerm, niet in Thisworkbook zoals @mvdvlist aangaf maar in de module van het UserForm.
Code:
Private Sub Userform_initialize()
sv = Sheets(1).ListObjects(1).ListColumns("datum").DataBodyRange
 With t_1
  .List = sv
  For i = 1 To UBound(sv)
   .List(i - 1, 0) = Format(sv(i, 1), "dd-mm-yyyy")
  Next i
 End With
End Sub

De code van @snb moet daar ook in, alhoewel daar aan de code de 'Sub' ontbreekt.
@snb, ik heb die code ook weleens toegepast, maar kon het niet meer bedenken op dat moment.
 
Klopt HSV, ik had niet goed gelezen. Beter ten halve gekeerd dan ten hele gedwaald...
 
Nu we dan toch bezig zijn:

Code:
Private Sub Userform_initialize()
  With t_1
    .List = Sheets(1).ListObjects(1).ListColumns("datum").DataBodyRange.value
    For j = 0 To .listcount-1
      .List(j, 0) = Format(.List(j,0), "dd-mm-yyyy")
    Next
  End With
End Sub
 
@snb
De laatste code van jou doet het prima.
Evenals de eerdere code van HSV.

Ik ben weer een (klein) stukje wijzer.

Iedereen bedankt
 
Terug
Bovenaan Onderaan