Selection valeur dans listbox

Sébastien

XLDnaute Junior
Bonjour le forum

J ai un petit soucis concernant les listbox : dans un usf j ai des liste dont les rowsources sont spécifiées dans les propriétés.Lorsque je selectionne une valeur dans un listbox, je mémorise la selection dans une feuille de calcul.Je voudrais que lors de la prochaine utilisation de cet usf, la valeur précédement mémorisée apparaissent en surbrillance dans la liste.

je pensais y arriver avec un code du type :
userform.listbox.value=Worbooks(...).sheets(...).range(...).value

ou encore

userform.listbox.selected=Worbooks(...).sheets(...).range(...).value

Mais j'ai le droit à un message d'erreur à chaque fois du type : 'Erreur d'execution 380.Impossible de definir la propriete.value.Valeur de propriete non valide.'

Je precise que les valeurs utilisées dans cette usf sont des heures au format jj/mm/aa hh:mm

Merci par avance de l'aide que vous pourrez m'apporter.

sébastien
 

Hervé

XLDnaute Barbatruc
Bonjour sébastien, pascal

cette syntaxe me parait bonne :

userform.listbox.value=Worbooks(...).sheets(...).range(...).value

ton souci doit venir de ce qui est remplacé par les 3 points entre parenthèse :) .

pourrais-tu nous montrer la ligne de code complete.

ta listbox est en multiselect ?

salut

Message édité par: Hervé, à: 15/02/2006 10:31
 

Sébastien

XLDnaute Junior
Merci à hervé et pascal21 pour leurs réponses.

Ca ne fonctionne toujours pas, je vous met un petit classeur avec le problème.

Les heures sont affichées 'hh:mm' mais j'ai besoin de conserver toute l'infos 'jj/mm/aa hh:mm'

Merci

Sébastien [file name=select_list.zip size=12077]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/select_list.zip[/file]

Message édité par: Sébastien, à: 15/02/2006 11:23
 

Pièces jointes

  • select_list.zip
    11.8 KB · Affichages: 49

ChTi160

XLDnaute Barbatruc
Salut Sebastien
Salut Hervé
bonjour le Fil
Bonjour le Forum
voilà ce que j'ai mis en procèdure pour que cela fonctionne

Private Sub UserForm_Activate()
Dim ValChercher As Date
Dim derlgn As Integer
Dim C As Range
Dim Index As Integer
With Workbooks('select list.xls').Sheets('Feuil1')
ValChercher = CDate(.Range('D5').Value)
derlgn = .Range('A65536').End(xlUp).Row
'je recherche la valeur dans la liste en colonne A pour déterminer l'index de la listBox à sélectionner
Set C = .Range('A5:A' & derlgn).Find(ValChercher)
If Not C Is Nothing Then
Index = C.Row - 5
UserForm1.ListBox1.Selected(Index) = True
End If
End With
End Sub
Bonne Journée
 

Sébastien

XLDnaute Junior
re le fil
bonjour ChTi160,hervé

Merci pour vos solutions qui fonctionnent!
Bon je profite de votre excellence pour abuser encore un peu...

Mon dernier petit soucis, la valeur est bien en surbrillance dans le listbox, je joue néanmoins avec l'ascenceur pour voir les valeurs , mais sans modifier la selection puis je vais sur un autre usf etc, et enfin je reviens sur l'usf avec le listbox, la valeur est toujours selectionnée mais plus directement visible(contrairement au premier chargement de l usf)

Y a t il un moyen de rendre la surbrillance visible?
Merci encore pour vos reponses
A+

Sébastien
 

Hervé

XLDnaute Barbatruc
re sébastien

utilise le meme code que celui de ton activate mais dans le bouton de fermeture de ton userform2

en rajoutant : UserForm1.ListBox1.TopIndex = UserForm1.ListBox1.ListIndex

sinon dans l'evenementielle de fermeture du userform2 :


Private Sub UserForm_Terminate()
With Workbooks('select list.xls').Sheets('Feuil1').Range('D5')
        UserForm1.ListBox1.Value = FormatDateTime(.Value, vbShortTime)
        UserForm1.ListBox1.TopIndex = UserForm1.ListBox1.ListIndex
End With
End Sub


salut
 
E

Encore un petit soucis!!

Guest
bonjour le fil,le forum


Alors j utilise la solution d'hervé (cad la plus courte :whistle: ).

lorsque j ouvre mon fichier excel, un usf s ouvre en plein ecran, et des menus me permettent d afficher des frames, je choisi le menu qui me permet d afficher celui avec mes listbox avec mes valeurs en cours deja selectionnées et la bug : au moment ou il essaye de d attribuer la valeur en cours dans la liste (erreur 380, incompatibilité de type...) ok je ferme VBE, je relance l usf et la plus de soucis, ca passe nikel! :S

Alors pourquoi au premier lancement de cette fonction , j ai une erreur 380????

Merci de votre aide

Sébastien
 

Sébastien

XLDnaute Junior
Bonsoir hervé, le forum


Le code que j utilise m'a été indique dans ce fil :

Workbooks('Fichier.xls').Sheets('Paramètres').Activate
INTERFACE.listbox1.Value = FormatDateTime(Workbooks('Fichier.xls').Sheets('Paramètres').Range('B21').Value, vbShortTime)
INTERFACE.lisbox1.TopIndex = INTERFACE.listbox1.ListIndex

Quelques petites explication complémentaires:
-lors de l'ouverture du fichier,un usf s ouvre en plein ecran et ne peut etre fermé(pas d acces au feuilles)
- des menus permettent l appel des différentes fonctions.
- dans mon usf j ai plusieurs frame surperposée, toutes avec la propriete visible à false, lors de l appel d une fonction, je met en visible la frame correspondante et invisible pour toutes les autres.et le code ci dessus est executé.
- dans le cas de cette fonction je met en surbrillance dans les listboxs les valeurs en cours.

Si j utilise cette fonction, j ai l erreur 380, apres ca je debug et ferme l editeur, je relance l usf , ca marche... :S

je comprends rien

merci d avance

Sébastien

Message édité par: sébastien, à: 26/02/2006 19:22
 

Discussions similaires

Réponses
7
Affichages
549

Statistiques des forums

Discussions
312 306
Messages
2 087 094
Membres
103 467
dernier inscrit
Pandiska