Fonctionnement UserForm

H

Hervé

Guest
Bonjour à tous,

Commençant dans l'utilisation des userform, je m'en remets à vos cerveaux pour m'éclairer.
J'ai crée une userform avec dedans une listbox. Comment faire pour rendre accessible au reste du code vba la valeur récupérée dans la listbox. Je m'explique...

Dans ma feuille Excel, je demande à l'utilisateur de saisir une première valeur dans un tableau dont je possède les indices de lignes et colonnes.
POur remplir un deuxième élément d'une ligne, je fais appel à la userform. Je voudrais donc récupérer la valeur sélectionnée dans la listbox de la userform pour la mettre dans mon tableau.

Merci pour votre aide et bon 14 juillet !
Hervé
 
M

myDearFriend

Guest
Bonjour Hervé,

Je ne suis pas sûr d'avoir tout compris, mais si tu cherches à récupérer le choix effectué dans la liste :

Private Sub ListBox1_Click()
MsgBox "Vous avez sélectionné " & ListBox1.Text & vbCrLf & "Elément N° " & ListBox1.ListIndex + 1 & " de cette liste"
End Sub


Cordialement,
Didier_mDF
 
@

@+Thierry

Guest
Bonsoir Hervé, le Forum

Je ne suis pas vraiment certain d'avoir compris ta demande mais admettons que tu veuilles simple inscrire le Jour (comme exemple) dans la Cellule Active en passant par un UserForm et une ListeBox voici comment faire :

Option Explicit

Private Sub UserForm_Initialize() 'Ici c'est juste pour remplir la ListBox
Dim i As Byte
For i = 1 To 7
With Me.ListBox1
.AddItem WeekdayName(i)
End With
Next
End Sub

Private Sub ListBox1_Click()
ActiveCell = Me.ListBox1
End Sub


Si par contre tu voulais toujour écrire dans une cellule précise alors on remplacerait la dernière procèdure par celle-ci :

Private Sub ListBox1_Click()
Range("A1") = Me.ListBox1
End Sub

On pourrait varier en se déplaçant dans la première cellule à la droite de la cellule active aussi comme ceci :

Private Sub ListBox1_Click()
ActiveCell.Offset(0, 1) = Me.ListBox1
End Sub

Et encore si on voulait écrire dans la dernière ligne vide de la Colonne "A" on pourrait faire ceci :

Private Sub ListBox1_Click()
Dim L As Integer
L = ActiveSheet.Range("A65536").End(xlUp).Row + 1
Cells(L, 1) = Me.ListBox1
End Sub


Une démo qui devrait te convenir dans la série des rudiments basics de ListBox sur UserForm :

Lien supprimé

Bonne Soirée
@+Thierry
 
@

@+Thierry

Guest
Bonsoir Didier,

T'avais pas vu sur ce coup là !!!


Et puis aussi bon 14 Juillet 2004 à tous et toutes !!!
smiley_863.gif



@+Thierry
(pas férié demain ici ! on va se retrouver qu'entres Belges et Monégasques !!! lol)
 
J

JCA06

Guest
Salut Thierry,

Il n'y a pas que les Belges et les Monégasques qui bossent aujourd'hui à Monaco !

Mais bon, avec le ciel que nous avons, on ne va pas se plaindre !

Elles sont vraiment géniales tes démos ! Je viens de regarder celle de ce fil (j'avais déjà les autres ;-) ), et cela m'a fait penser à un post que j'ai vu hier et qui disait quelque chose du genre "grace à vous j'ai l'impression d'être intelligent" !

Merci pour tout.

Au fait, au sujet du 14 juillet, vous savez que la plupart des étrangers ne comprennent pas pourquoi les français ont fait la révolution un jour de fête !

P.S. : J'avait l'habitude de raconter ce genre de blague en parlant des Belges, mais plus j'en connais, moins j'ai envie de me moquer d'eux, même si je sais qu'ils ont un grand sens de l'humour.

Bonne journée à tous.
 

Discussions similaires

Réponses
16
Affichages
544
Réponses
21
Affichages
2 K

Statistiques des forums

Discussions
314 136
Messages
2 106 251
Membres
109 547
dernier inscrit
Acilia