2010-12-09 83 views
0

solution très basique, et très ennuyeux, je l'ai cherché pendant de nombreuses heures sans aide ...Temps Excel VBA Format en décimal avec Combobox

Problème: Je suis peuplant Combobox de plage nommée, la gamme est la liste des fois (formaté en temps :-), Combo semble bien, menu déroulant montre mes temps comme ils le devraient, mais lorsque le temps sélectionné est formaté comme un nombre décimal ...

alt text

Voici le code (réduit au strict minimum):

Private Sub UserForm_Initialize() 
    ComboBoxTime.RowSource = "Help!Time" 
End Sub 

« Aide » est le nom de la feuille de calcul contenant plage nommée « Time » J'ai essayé de formater différentes manières sans chance ...

ComboBoxTime = Format(ComboBoxTime, "hhmm") 

Voici le lien à l'échantillon. http://www.equstom.fi/dateproblem.html

(Et oui je besoin de remplir de plage nommée, au lieu de chaque boucle, et je mis .value avec le code, tout le document est en fait assez complexe, mais je compris que la partie de problème ...)

+0

Votre lien http://www.equstom.fi/dateproblem.html est cassé –

+0

Désolé, ce est http://www.equstom.fi/dateproblem.xlsm –

Répondre

0

Le problème est nommé plage que j'utilise, quand les valeurs sont formatées en temps que cela ne fonctionnera pas. Je l'ai eu pour travailler si les valeurs étaient Texte! Le problème a quelque chose à voir avec excel étant en finnois et VBA en anglais ... J'ai ajouté la deuxième colonne à côté de la gamme qui copie les valeurs de texte à cette deuxième plage nommée formatée en temps. Rapide et sale! (Merci pour votre contribution Belisarius)

2

Essayez quelque chose comme ceci:

Private Sub ComboBox1_Change() 
With ComboBox1 
    .Value = Format(.Value, "hh:mm:ss AMPM") 

End With 
End Sub 

HTH!

Édition Voici ce que je vois en quittant votre combo. L'affichage de l'heure fonctionne bien.

alt text

Edit 2

trouvé l'erreur "propriété non valide":

Vous devez définir "match requiered" à FAUX dans la zone de liste déroulante. Si vous considérez que cela devrait être "VRAI" vous devrez valider manuellement ...

+0

Ne pas work ... Et le -Value doit être formaté avec UserForm_Initialize pas avec Change ... –

+0

@Mika Fonctionne dans ma machine ... Cela DOIT être formulé avec Change. Initialiser ne formate que la liste, pas la boîte supérieure –

+0

@Mika Semble que votre WS a un problème avec les références de la bibliothèque. La fonction VBA ** Format ** standard ** ne fonctionne pas ** dans votre WS !! –