Combobox-Calendrier

Résolu
Usgpa -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Existerait-il une formule pour qu'une combobox ait comme rowsource le calendrier ?
Configuration: Windows XP Internet Explorer 6.0

31 réponses

  • 1
  • 2
  1. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    quand tu as ta boîte à outils, clique droit et clic sur "contrôles supplémentaires"

    coche la case "microsoft Date and Time Picker control 6.0"
    et valide avec ok

    L'outil DTPicker apparaît alors dans ta boîte à outils

    C'est un calendrier complet. En cliquant dessus tu accèdes au mois en cours mais tu peux naviguer d'un mois sur l'autre. Vraiment pratique
    2
  2. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Bon grâce à pijaku j'ai réussi à te faire ta macro (et par la même occasion je l'utilise aussi sur un autre outil)

    Voilà ton code

    Private Sub CommandButton1_Click()

    If TextBox1.TextLength = 6 Then
    Dim jour As String, annee As String
    Dim datedujour As String, mois As String
    jour = Left(TextBox1, 2)
    mois = Mid(TextBox1, 3, 2)
    annee = Right(TextBox1, 2)
    datedujour = jour & "/" & mois & "/" & annee
    [a1] = CDate(datedujour)
    Unload UserForm1

    Else: MsgBox ("Veuillez rentrer la date au format jjmmaa")
    End If

    End Sub
    1
    1. Usgpa
       
      Merci a toi et à Pijaku !!!

      Juste une petite question, sachant que la donnée en question sera copié via la textbox vers la cellule (Feuil2.Range("F" & i).Value), je remplace a1 par ce qui est entre parenthèse ?

      J'ai tenté : Private Sub CommandButton1_Click()

      If TextBox43.TextLength = 6 Then
      Dim jour As String, annee As String
      Dim datedujour As String, mois As String
      jour = Left(TextBox43, 2)
      mois = Mid(TextBox43, 2)
      annee = Right(TextBox43, 2)
      datedujour = jour & "/" & mois & "/" & annee

      Else: MsgBox ("Veuillez rentrer la date au format jjmmaa")
      Exit Sub
      End If
      If TextBox4.TextLength = 6 Then
      jour = Left(TextBox4, 2)
      mois = Mid(TextBox4, 3, 2)
      annee = Right(TextBox4, 2)
      datedujour = jour & "/" & mois & "/" & annee

      Else: MsgBox ("Veuillez rentrer la date au format jjmmaa")
      Exit Sub
      End If
      Dim i As Integer
      i = 1
      While Feuil2.Range("A" & i) <> ""
      i = i + 1
      Wend

      Feuil2.Range("A" & i).Value = UserForm2.TextBox1
      Feuil2.Range("B" & i).Value = CDate(datedujour)
      Feuil2.Range("B" & i).Value = UserForm2.TextBox4
      Feuil2.Range("C" & i).Value = UserForm2.TextBox69
      Feuil2.Range("D" & i).Value = UserForm2.TextBox70
      Feuil2.Range("F" & i).Value = CDate(datedujour)
      Feuil2.Range("F" & i).Value = UserForm2.TextBox43

      Echec... si vous avez une idée ...
      0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Pas de chance...
    Retentons :
    Dites moi d'abord... Dans votre classeur vous avez bien une feuille nommé Feuil2?
    Dim i As Integer
    If TextBox43.TextLength <> 6 Then
    MsgBox ("Veuillez rentrer la date au format jjmmaa") 
    Exit Sub 
    End If 
    If TextBox4.TextLength <> 6 Then 
    MsgBox ("Veuillez rentrer la date au format jjmmaa") 
    Exit Sub 
    End If 
    With Sheets("Feuil2")
    i = .Range("A65536").End(xlUp).Offset(1, 0).Row
    .Range("A" & i).Value = UserForm2.TextBox1 
    .Range("B" & i).Value = CDate(Format(UserForm2.TextBox4 , "@@/@@/@@"))
    .Range("C" & i).Value = UserForm2.TextBox69 
    .Range("D" & i).Value = UserForm2.TextBox70 
    .Range("F" & i).Value = CDate(Format(UserForm2.TextBox43 , "@@/@@/@@"))
    End With
    1
  4. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Tu peux mettre un DtPicker. C'est beaucoup plus pratique (petit calendrier qui s'affiche sous forme de combobox et qui affiche le mois en cours quand on clique dessus)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Usgpa
     
    Comment programme ton ce Dt picker ? Permet-il seulement de séléectionenr une date du mois en cours ?
    0
  7. Usgpa
     
    Merci, malheureusement au travail, mon excel est trop vieux, je pense. Il n'est pas dans les autres programmes.
    0
  8. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    ça n'est pas sur excel mais sur visual basic.

    Quand tu as ta boîte à outil où tu sélectionnes tes combobox, fais la manip que je t'ai dite.

    Perso je suis sur 2003
    0
  9. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Ou alors sur excel,

    affichage, barre d'outils, boites à outils contrôle, autres contrôles , microsoft date and time picker (a dessiner où tu désires
    0
  10. Usgpa
     
    J'avais bien compris dans ton premier message où le chercher mais malheureusement il n'apparait pas dans la liste des "contrôles supplémentaires". Ni sur Vba ni sur Excel (97 je pense)...
    0
  11. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    ah mince!
    et contrôle calendrier?
    0
  12. Usgpa
     
    Non plus... bon c'est pas grave je vais essayer de me débrouiller autrement ! Merci tout de même de l'astuce dont je me servirai quand je serai sur un logiciel plus récent. Merci !
    0
  13. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Le souci avec une combobox, c'est qu'elle te déroule une liste. Et dans le cas d'un calendrier avec un début et une fin non définis, ta liste va être immense
    0
  14. Usgpa
     
    Penses-tu par exemple, qu'il serait possible de préformater une textbox afin de ne faire saisir que les chiffres entre les "/". L'utilisiteur ne peut rentrer que 6 chiffres avant et après les slash qui séparent, les jours des mois et les mois des années du type JJ/mm/aa
    0
  15. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    tu veux dire que l'utilisateur tape par exemple 280110 dans sa textbox
    et cela affiche 28/01/10 dans la case de ton choix?
    0
  16. Usgpa
     
    En fait j'imaginais avoir les "/" déjà dans la textbox mais ta proposition me conviendrais très bien.
    0
  17. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Ben attends je regarde mais pas sûr que je réussisse
    0
  18. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    Bon je n'arrive pas à sélectionner un endroit du texte pour y insérer les "/". J'ai déjà réussi à faire en sorte que l'utilisateur soit obligé de taper au moins 6 caractères (280110).

    Private Sub CommandButton1_Click()
    If TextBox1.TextLength > 6 Then MsgBox ("Veuillez rentrer une date au format jjmmaa")
    If TextBox1.TextLength < 6 Then MsgBox ("Veuillez rentrer une date au format jjmmaa")

    End Sub

    J'essaie d'insérer mes / mais je ne sais pas si jy arriverai
    0
  19. Usgpa
     
    Ne t'inquiètes pas Farfadet, je pense que cela suffira si tu sais comment le faire copier dans une cellule avec les "/"., je n'aurais pas besoin de les avoir dans la textbox mais je ne sais pas si c'est faisable.
    0
  20. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour à vous,
    Je ne connais pas les tenant et les aboutissants de cette demande de calendrier mais sous google, en tapant excel calendrier, vous pourrez trouver votre bonheur.
    En exemple, trouvé ici : https://apprendreexcel.com/
    Ce magnifique objet :
    https://www.cjoint.com/?bCn3PwLsL2

    A vous lire
    0
  21. Farfadet88 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   1 402
     
    essaie ceci

    If TextBox43.TextLength = 6 Then
    Dim jour As String, annee As String
    Dim datedujour As String, mois As String
    jour = Left(TextBox43, 2)
    mois = Mid(TextBox43, 2)
    annee = Right(TextBox43, 2)
    datedujour = jour & "/" & mois & "/" & annee

    Else: MsgBox ("Veuillez rentrer la date au format jjmmaa")
    Exit Sub
    End If

    If TextBox4.TextLength = 6 Then
    Dim jour As String, annee As String
    Dim aujourdhui As String, mois As String
    jour = Left(TextBox4, 2)
    mois = Mid(TextBox4, 3, 2)
    annee = Right(TextBox4, 2)
    aujourdhui= jour & "/" & mois & "/" & annee

    Else: MsgBox ("Veuillez rentrer la date au format jjmmaa")
    Exit Sub
    End If
    Dim i As Integer
    i = 1
    While Feuil2.Range("A" & i) <> ""
    i = i + 1
    Wend

    Feuil2.Range("A" & i).Value = UserForm2.TextBox1
    Feuil2.Range("B" & i).Value = CDate(datedujour)
    Feuil2.Range("B" & i).Value = UserForm2.TextBox4
    Feuil2.Range("C" & i).Value = UserForm2.TextBox69
    Feuil2.Range("D" & i).Value = UserForm2.TextBox70
    Feuil2.Range("F" & i).Value = CDate(aujourdhui)
    Feuil2.Range("F" & i).Value = UserForm2.TextBox43
    0
  • 1
  • 2