DTPicker [Résolu]

Signaler
Messages postés
3
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
5 juillet 2011
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,

Dans une feuille excel, de la colonne A4 à A368, j'ai des dates (du 01/01/2011 au 31/12/2011); j'ai créé un usf avec une combobox pour choisir une date, et en fonction de cette date pouvoir remplir une base de donées sur les colonnes B,C,D ... etc. jusque là, tout fonctionne.
Là où je pêche, c'est que je souhaite remplacer la combobox par un DTPicker, et je ne connais pas la procédure. Quelqu'un peut-il m'aider? Merci.
Cordialement.

PS:Si besoin, je pourrai joindre mon projet pour plus de compréhension

7 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Enfin quoi !
Pour être sérieux :
Un userform avec une combobox Combobox1 et ce code (sans lien aucun avec une feuille) :



[code=vb]Private Sub UserForm_Activate()
Dim datedep As Date
ComboBox1.Clear
datedep = "01/01/2011"
For i = 0 To 366
If Year(datedep + i) <> Year(datedep) Then Exit For
ComboBox1.AddItem datedep + i
Next
End Sub

Private Sub ComboBox1_Change()
toto = ComboBox1.List(ComboBox1.ListIndex)
MsgBox "tu as choisi la date " & toto
End Sub
Lance et choisis-y une date

Tu vois ?
Ben ... pour un contrôle DtPicker nommé DTP1 et un choix qui y serait fait :
toto = DTP1.Value

C'est tout

____________________

Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Bonjour,
Là où je pêche, c'est que je souhaite remplacer la combobox par un DTPicker, et je ne connais pas la procédure.

Ta question est assez ambigüe.
Telle que posée, elle sign ifierait que tu ne sais pazs comment insérer ce contrôle.
Si tel est le cas, tu peux lire Cette discussion
S'il s'agit au contraire du code à utiliser pour te servir de ce contrôle pour répondre à un besoin spécifique et isolé, dis-nous à quel niveau se situe ta difficulté?.

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
3
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
5 juillet 2011

Je sais comment insérer le contrôle; j'aurai souhaité vous insérer mon projet, en PJ, est-ce possible ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Ici, vois-tu, on n'analyse pas un projet.
Je demandeur isole de son projet une partie spécifique et l'expose seule, accompagnée éventuellement du code écrit.


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Juste un rappel (à tout hasard)
Un contrôle a en général des propriétés.
DTPICKER en a, parmi lesquelles la propriété Value, accessible en lecture et deépendant de la date choisie dans le Contrôle.
Soit choix cette variable.
Je ne vois pas où tu pourrais rencontrer une difficulté à utilisder cette variable à la place de celle que tu utilisais auparavant (choix dans ta combo) !

____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP
Messages postés
3
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
5 juillet 2011

Comment pourrais-je remplacer une ComboBox dont le code est:

Private Sub ComboBox_Change()

Me.ComboBox.RowSource = "Feuil2!A4:A" & Sheets("Feuil2").Cells(4, 1).End(xlDown).Row

Sheets("Feuil2").Activate
Range("a4:a368").Select
[A4].Offset(ComboBox.ListIndex, 0).Select
Me.TextBox = ActiveCell.Offset(0, 1)
End Sub

... par un contrôle DTPicker dont mon code de départ est:

Private Sub DT_Picker_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date)
End Sub


Cordialement

et merci pour la rapidité des réponses précédentes.

chevalnoir
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
225
Excuse-moi, mais quand ont lit ceci :
Me.ComboBox.RowSource = "Feuil2!A4:A" & Sheets("Feuil2").Cells(4, 1).End(xlDown).Row

Sheets("Feuil2").Activate
Range("a4:a368").Select
[A4].Offset(ComboBox.ListIndex, 0).Select
Me.TextBox = ActiveCell.Offset(0, 1)


On devine l'usine à gaz qui se trouve derrière, à savoir :
Une combo alimentée par les données d'une feuille ===>> une sélection dans la combo ===>> on retourne sur la feuille pour y "lire" ce qui correspond à un index de la combo !
Plus tortueux, on meurt
Ce n'est pas ce code, qu'il faut adapter à un DtPicker, mais carrément la philosophie de ton code (avant dtpicker et avec la combo) !
Dans l'état actuel des choses :
- tu ne lis nulle part le résultat direct du choix fait dans la combo (ce qui est hautement ... (mieux vaut ne pas dire quoi) ...). Si tel avait été le LEGITIME cas, tu n'en serais pas là pour adapter à un choix fait dans un DtPicker !
- Non ! un tel code n'est (à divers titres) nullement adaptable, ni de près ni de loin, à toute autre "chose"
Désolé !


____________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP