Combobox-Calendrier
Résolu/Fermé
Usgpa
-
28 janv. 2010 à 10:05
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 janv. 2010 à 15:56
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 janv. 2010 à 15:56
A voir également:
- Combo box in excel 2010
- Calendrier partagé google - Guide
- Synchroniser calendrier outlook et gmail - Guide
- Déploiement tnt 4k calendrier - Accueil - TV & Vidéo
- Calendrier 1582 - Télécharger - Bureautique
- Télécharger mon calendrier gratuit - Télécharger - Santé & Bien-être
31 réponses
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 10:16
28 janv. 2010 à 10:16
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
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
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 13:50
28 janv. 2010 à 13:50
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
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
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 ...
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 ...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 janv. 2010 à 15:49
28 janv. 2010 à 15:49
Pas de chance...
Retentons :
Dites moi d'abord... Dans votre classeur vous avez bien une feuille nommé Feuil2?
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
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 10:07
28 janv. 2010 à 10:07
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)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Comment programme ton ce Dt picker ? Permet-il seulement de séléectionenr une date du mois en cours ?
Merci, malheureusement au travail, mon excel est trop vieux, je pense. Il n'est pas dans les autres programmes.
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 10:24
28 janv. 2010 à 10:24
ç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
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
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 10:29
28 janv. 2010 à 10:29
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
affichage, barre d'outils, boites à outils contrôle, autres contrôles , microsoft date and time picker (a dessiner où tu désires
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)...
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 10:34
28 janv. 2010 à 10:34
ah mince!
et contrôle calendrier?
et contrôle calendrier?
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 !
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 10:38
28 janv. 2010 à 10:38
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
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
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 11:10
28 janv. 2010 à 11:10
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?
et cela affiche 28/01/10 dans la case de ton choix?
En fait j'imaginais avoir les "/" déjà dans la textbox mais ta proposition me conviendrais très bien.
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 11:14
28 janv. 2010 à 11:14
Ben attends je regarde mais pas sûr que je réussisse
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 11:45
28 janv. 2010 à 11:45
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
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
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.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
28 janv. 2010 à 13:55
28 janv. 2010 à 13:55
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
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
Farfadet88
Messages postés
6293
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
29 avril 2020
1 369
28 janv. 2010 à 14:46
28 janv. 2010 à 14:46
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
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