Format de date incompatible Excel et Listbox

Bonjour galopin01,

Si je souhaite mettre la date du jour et l'heur, on est bien sur la fonction VBA "now".

C'est ce que je souhaite appliquer au formulaire lors de la creation d'une ligne, mais s'il y a modification de la ligne, il ne faut pas que la date et l'heure change. Donc dois je créer un bouton modifier ou pas?

Ou dois je placer le Clong pour que j'enregistre, le bon format de date soit prise en compte ?

A+

Salut,

Une photo et toujours plus parlante que de longues explications donc :

000234

La touche F1 est notre amie, elle doit être utilisée à gogo... et le site de Microsoft Learn doit-être dans les favoris de ton navigateur.

Fonction format (Visual Basic pour applications) | Microsoft Learn

Re,

J'ai essaye, mais c'est incoherent

With Me.cbo01

If TData2.ListRows.Count > 0 Then

Arr = Range("Tableau2[Column1]").Value2

Set Dico = CreateObject("scripting.dictionary")

For i = LBound(Arr) To UBound(Arr)

Dico(Arr(i, 1)) = ""

Next i

Arr = Dico.Keys

Call Tri(Arr, LBound(Arr), UBound(Arr))

For i = LBound(Arr) To UBound(Arr)

'.AddItem Format(CDate(Arr(i)), "mm/dd/yyyy")

.AddItem Format(Now, "mm/dd/yyyy hh:mm")

Next

.ListIndex = -1

End If

End With

Je passe en 1899

Faut il que je crée un module, que j'appelle le module dans le bouton SAVE?

J'ai passe ma colonne Excel dans le format "mm/dd/yyyy hh:mm", je ne retrouve pas ce format dans la Listbox1 et choixlistbox1.

Je ne comprends pas non plus pourquoi le chiffre "0" n'est pas pris en compte dans la date comme 01/01/2019 alors que mon format applique est bien celui la "mm/dd/yyyy hh:mm" ???

image

a+

Salut,

Tu utilises quoi pour charger la ListBox ?

Parce que moi chez mis des dates et heures valides dans la colonne "Column1" avec un Format de date personnalisé "jj/m/aaaa hh:mm"
J'ai charger la liste ave ma fonction LoadUniqueValues en adaptant une ligne pour renvoyer un format de date général.

For Each Key In localDictionary.Keys
        localTab(CounterFirstColumn, 1) = Key
        ' // Doit-on remplir la liste au format date
        If SetDateFormat = False Then
            localTab(CounterFirstColumn, 2) = localDictionary(Key)
        Else
            localTab(CounterFirstColumn, 2) = CStr(Format(localDictionary(Key), "General Date"))
        End If
        CounterFirstColumn = CounterFirstColumn + 1
    Next Key

Et voilà le résultat dans la feuille :

000235

et le résultat sur le formulaire :

000237 000236

On te donne des fonctions toutes faites, pourquoi ne les utilises-tu pas ?

Bonjour Jean-Paul,

Pardonne moi, ton excel je n'arrive pas a l'ouvrir, comme je ne suis pas un expert VBA je n'ai pas trouve la solution pour l'ouvrir.

Aussi tes codes, je n'arrive pas a les comprendre, trop complique pour moi. Tu as tout remis a plat le formulaire alors que je souhaitais juste avoir une solution pour la date.

Si bien que je suis toujours sur mon formulaire d'origine, ou j'arrive a comprendre les codes presents en mode debutant.

Si tu peux m'aider sur mon fichier d'origine et faire étape par étape afin que je comprenne ce que je fais ?

Pour le moment le formulaire fonctionne sauf pour les dates. Une fois cette etape faite, je pourrais passer aux colonnes GPS et a la conversion des coordonnées en DD et DDM.

Oui, depuis plus d"1 semaine je suis toujours a essayer de solutionner la date ..... j'essaie par moi mais ....

Je te renvois mon fichier d'origine afin que tu vois ou j'en suis ..... pas très loin ...

A+

6testdate.xlsm (81.62 Ko)

Bonjour Jean-Paul,

Est bon ce que j'ai fait, remplacer les Evaluate par un appel de la fonction LoadUniqueValues ?

Private Sub UserForm_Initialize()

'Call extract_data_in_listbox

Set mDataManager = New DataUSFManager

mDataManager.Usf = Me

Dim Index As Variant

For Index = 1 To 8

If Index = 1 Then

Me.Controls("ChoixListBox" & Index).List = Xltools.LoadUniqueValues(SheetTest, Factory.InitTabDatas, "ID", "Column1")

Me.Controls("ComboBox" & Index).List = Xltools.LoadUniqueValues(SheetTest, Factory.InitTabDatas, "ID", "Column1", , True)

Else

Me.Controls("ChoixListBox" & Index).List = LoadUniqueValues

'Evaluate ("SORT(UNIQUE(vt_Datas[Column" & Index & "]))")

Me.Controls("ComboBox" & Index).List = LoadUniqueValues

'Evaluate ("SORT(UNIQUE(vt_Datas[Column" & Index & "]))")

End If

Next Index

'Me.Controls("ComboBox8").List = Evaluate("SORT(UNIQUE(vt_Datas[[Column17]:[Column1]]))")

Me.Controls("ComboBox9").List = LoadUniqueValues

'Evaluate ("SORT(UNIQUE(vt_Datas[Column15]))")

Me.Controls("ComboBox10").List = LoadUniqueValues

'Evaluate ("SORT(UNIQUE(vt_Datas[Column16]))")

' Me.Controls("ChoixListBox8").List = Evaluate("SORT(UNIQUE(vt_Datas[Column14]))")

Me.ListBox1.ColumnCount = 24

Me.ListBox1.List = Range("vt_Datas").Value

Me.ListBox1.ColumnWidths = "0;75;75;75;75;75;75;75;100;100;100;100;100;100;50;50;50;100;100;100;100;100;100;500;500"

ClearForm

End Sub

image

A+

Re,

Il à déjà était dit de poster le code entre balises non ? C'est d'un pénible à lire ton histoire.

Si la fonction Evaluate ne fonctionne pas sur ton système, tu peut évidemment utiliser LoadUniquesValues pour charger toutes les listes et listes déroulantes.

A ce compte là la condition Index = 1 ne te sert plus. supprime la

    For Index = 1 To 8
            Me.Controls("ChoixListBox" & Index).List = xlTools.LoadUniqueValues(SheetTest, Factory.InitTabDatas, "ID", "Column1")
            Me.Controls("ComboBox" & Index).List = xlTools.LoadUniqueValues(SheetTest, Factory.InitTabDatas, "ID", "Column1", , True)
    Next Index

Ce soir je ne suis pas disponible. Je regarderais demain si on ne peut pas passer par des fonctions Excel pour charger les listes.

Bonjour Jean-Paul,

J'ai pu ouvrir ton fichier, c'est bon.

image

Apres, si tu as le temps, peux-tu me guider étape par étape en fonction de l'avancee du formulaire.

En te remerciant,

A+

Salut,

Je ne serais pas trop disponible pendant une semaine. mais poses tes questions nous verrons bien.

Salut,

Ok.

Pour le moment j'essaie d'alimenter mes choixlistbox et combobox.

A+

Bonjour a tous,

J'ai toujours mon problème de date qui m'empeche d'avancer.

Je suis reparti sur mon fichier d'origine que je comprends mieux, désole J-P.

Pouvez-vous m'aider a solutionner ce code?

que la date soit la meme dans ma Listbox, combox, choix listbox et que celle de mon Excel, quelle ne soit pas inversée quand j'enregistre une date sur mon Excel ou vis et versa .

A+

8testdate.xlsm (82.28 Ko)

Re,

Mon format date windows:

image

Mon Excel est en anglais.

J'ai essaye ceci:

Test.Range("A3").Value = Format(Date, "Short Date")
FormatDatetime(VBA.Date,vbShortDate)
'Fr-fr
    Test.Range("A3") = FormatDateTime(VBA.Date, vbShortDate)
    'EN-us
    Test.Range("A3") = Format(VBA.Date, "mm/dd/yyyy")
Test.Range("A3") = CDate(Date)

A+

Rechercher des sujets similaires à "format date incompatible listbox"