Formulaire Visual Basics - Format date combobox

Bonjour,

Je m'aventure pour la première fois dans le VBA. J'ai créé un formulaire via l'éditeur Visual Basics dans le but de remplir un tableau automatiquement. Le formulaire marche très bien, le tableau se remplit sans soucis. Le problème est au niveau des formats des cellules : j'aimerai qu'une de mes combobox(s) me rapporte des valeurs sous format DATE (mmm-yy), mais cela ne marche pas.

J'ai créé un liste de données (sous le format que je souhaite) que j'ai associée à ma combo box. Lorsque j'essaie de remplir le formulaire, au lieu d'avoir mes valeurs indiquées comme sur la liste, une suite de nombres apparaît (ex. janv-22 = 44562). J'ai réussi à corriger cela en passant par la formule =TEXTE, mais le format final de ma cellule est donc TEXTE au lieu de DATE. Cela pose

problème car le tableau de destination est relié à plusieurs tableaux croisés dynamiques et j'utilise une chronologie pour filtrer ces derniers (qui ne fonctionne plus à cause du format TEXTE?).

Ma question est donc la suivante : comment faire pour que ma valeur finale dans le tableau apparaisse au format DATE ?

Merci par avance,

Bonjour

On ne remplit pas un tableau structuré avec les méthode de plage de type Selection.End(xlDown)

On n'utilise quasi jamais de Select en VBA

Je te déconseille des noms de colonnes identiques avec juste un espace pour différencier

Il y a un problème de logique qui donne une incohérence : ta source des mois contient une date et non un mois

Dans Excel le plus simple est

  • soit de demander une date puis
    • ou bien de la découper en jour mois année,
    • ou bien de l'afficher seulement en jour et mois+année
  • soit de demander un jour, un mois (en numérique ou en lettres) et une année

Bonjour, en adaptant un peu.

IL faut les deux evènement comboxbox change et modifier la façon de valider les données dates.

Private Sub cboMois_Change()
cboMois.Value = Format(cboMois.Value, "mmm.-yy")
End Sub

Private Sub cboMois1_Change()
cboMois1.Value = Format(cboMois1.Value, "mmm.-yy")
End Sub

' et pour le bouton valider indiquer que les valeurs de combo sont des dates "Cdate"
Private Sub btnValider_Click()

    Sheets("XXX").Activate
    Range("B5").Select
    Selection.End(xlDown).Select 'On se positionne sur la dernière ligne non vide
    Selection.Offset(1, 0).Select 'On se décale d'une ligne vers le bas

    ActiveCell = cboJour.Value 'Entre toutes les données
    ActiveCell.Offset(0, 1).Value = CDate(cboMois)
    ActiveCell.Offset(0, 5).Value = cboJour1
    ActiveCell.Offset(0, 6).Value = CDate(cboMois1)

    Unload Me 'Ferme le formulaire

End Sub

Merci beaucoup pour vos réponses !

Mon problème est résolu.

Bonne continuation

Rechercher des sujets similaires à "formulaire visual basics format date combobox"