Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Saisir l'heure d'une cellule dans une Combobox, Résolu

  • Initiateur de la discussion Initiateur de la discussion Mamba
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Mamba

Guest
Bonjour,
Nouveau venu, j'espère être assez clair dans ma recherche.
Je joins un fichier sommaire pour visualiser ce que je voudrai.

Pour faciliter le début de défilement dans une combobox d'un Userform est-il possible de préremplir la combobox à l'ouverture de l'Userform par l'heure contenue dans une cellule de la feuille de calcul.
Cette heure fait parti du tableau déclaré dans Rowsource et est-il possible de préremplir la saisie 2 avec l'heure de la combobox saisie 1 + 1/2 heure.

Je vous remercie par avance s'il existe une solution.
 

Pièces jointes

Dernière modification par un modérateur:
Re : Saisir l'heure d'une cellule dans une Combobox

Merci Dranreb pour cette réactivité, mais mon intérêt est d'avoir la valeur 09:00 de la cellule D2 dans la combobox saisie 1 à l'ouverture de l'userform.
Et pour saisie 2 ce serait la valeur de saisie 1 (qui peut-être donc variable) + 00:30
 
Re : Saisir l'heure d'une cellule dans une Combobox

Que ne le disiez vous pas !
VB:
Private Sub UserForm_Initialize()
Dim H As Date
H = ActiveSheet.[D2].Value
Me.ComboBox1.Text = Format(H, "hh:mm")
Me.ComboBox2.Text = Format(H + TimeSerial(0, 30, 0), "hh:mm")
End Sub
 
Re : Saisir l'heure d'une cellule dans une Combobox

Dranreb bonjour,

Je viens d'appliquer la solution et cela répond bien au premier questionnement que j'avais posé, merci.

Je joins à cette réponse un expurgé du tableau que je voudrai utiliser car dans celui-ci il y a 2 userform identiques je pense car je dois gérer 2 zones de saisies différentes mais avec ta solution pas de problème, mais pour aller plus loin dans l'utilisation ce serai de récupérer la dernière heure de la colonne H pour l'USF1 et colonne AH pour l'USF2 pour avancer dans la journée.
J'ai laissé dans le Private Sub UserForm_Initialize() le code que j'ai essayé d'utiliser pour rechercher la dernière cellule non vide et affecter à H la valeur de la cellule, mais j'ai un message d'erreur 438 - Propriété ou méthode non géré par cet objet et blocage a l'appel de la USF2.
Why ?
Sinon merci pour déjà la première soluce.
Cordialement.
 

Pièces jointes

Re : Saisir l'heure d'une cellule dans une Combobox

Bonjour.

Il n'existe pas de propriété Collumn avec 2 L
De toute façon pourquoi faites vous si compliqué ? Comme ça tout simplement :
VB:
H = ActiveCell.Value
Il devrait y avoir moyen de se passer d'un des Userform s'ils sont identiques, même s'il fallait en afficher plusieurs exemplaires simultanément.
 
Re : Saisir l'heure d'une cellule dans une Combobox

Bonsoir Dranreb,

Merci pour ces éléments que je viens d'adapter et tout est OK, j'avais bien essayé pour la valeur de H comme indiqué, mais erreur de syntaxe mis un s à cell et ça ne fonctionnait pas.
Pour le dernier fun, si bonne récupération de dernière cellule pour Saisie 1 comme point de départ mais qui peut évoluer et donc avoir en Saisie 2 la vrai valeur de Saisie 1 + les fameux 0:30.
J'ai essayé d'adapter le contenu du Private Sub UserForm_Initialize() dans le Private Sub saisie 2_Change() mais j'ai une erreur d'incompatibilité en je pense voulant mettre D = Me.saisie 1.Text.Value, je ne sais pas si cela peut s'écrire même. Mais comme il semble que beaucoup de choses soit en fait possible, pourquoi pas.
De tout façon déjà un grand merci et peut-être dans l'attente de la cerise sur le gâteau.
Cordialement.
 
Re : Saisir l'heure d'une cellule dans une Combobox

Bonsoir Dranreb

Je ne saisie pas quoi et où faire quelque chose avec votre dernier conseil.
J'ai actuellement :
Private Sub UserForm_Initialize()
Dim H As Date
Range("H25").End(xlUp).Select
H = ActiveCell.Value
Me.saisie1.Text = Format(H, "hh:mm")
Me.saisie2.Text = Format(H + TimeSerial(0, 30, 0), "hh:mm")
End Sub

Private Sub saisie1_Change()
Me.saisie1.Value = Format(Me.saisie1.Value, "hh:mm")
End Sub

Private Sub saisie2_Change()
Me.saisie2.Value = Format(Me.saisie2.Value, "hh:mm")
If saisie2.Value < saisie1.Value Then
MsgBox "Saisie invalide, recommencez."
End If
End Sub

Donc que dois-je essayer pour améliorer ce que je vous ai demandé ?.
 
Re : Saisir l'heure d'une cellule dans une Combobox

Ça alors ?
VB:
Private Sub Saisie1_Change()
Dim H As Date
On Error Resume Next
H = TimeValue(Me.Saisie1.Text)
If Err Then Exit Sub
Me.Saisie2.Text = Format(H + TimeSerial(0, 30, 0), "hh:mm")
End Sub
Ou alors écrivez peut être ces 2 fonctions à la fin pour ne plus confondre les entrées et les sorties :
VB:
Function HTxt(Z As String) As Variant
On Error Resume Next
HTxt = TimeValue(Z)
If Err Then HTxt = Empty
End Function
Function TxtH(V As Variant) As String
On Error Resume Next
TxtH = Format(V, "hh:mm")
If Err Then TxtH = ""
End Function
Puis comme ça vous pourriez écrire :
VB:
If HTxt(saisie2.Text) < HTxt(saisie1.Text) Then
Parce que vous avez beau utiliser saisie1.Value (une propriété qui à mon avis ne devrait même pas exister puisqu'elle fait double emploi avec Text) c'est quand même toujours un String, pas autre chose et surtout pas une heure. Pour le convertir en heure il faut utiliser la fonction TimeValue. Peut être devriez vous déclarer en tête du Userform Dim H1 As Date, H2 As Date et les rectifier dans les procédures _Change.
 
Dernière édition:
Re : Saisir l'heure d'une cellule dans une Combobox

Bonsoir Danreb,

Je m'excuse de revenir si tardivement mais n'ai pas pu faire autrement. Pour clore ce dossier la dernière application ne fonctionne pas ou je l'applique mal. Mais le réglage déjà des 30 minutes est une bonne chose.
Je vais partir à comme vous avez dit de réduire les Userform et optimiser le code, puis me pencher sur l'idée du problème qu'il y aura, avec un seul Userform les dernières heures enregistrées ne seront plus bonne si la saisie change de personne, mais c'est une autre question.
Merci donc déjà pour cet avancé bien utile et surement à une prochaine
Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…