Afficher ligne d'une lisbox dans des labels d'un autre userform VBA [Résolu]

Messages postés
13
Date d'inscription
mercredi 5 janvier 2011
Dernière intervention
8 juin 2011
- - Dernière réponse : tafus91
Messages postés
13
Date d'inscription
mercredi 5 janvier 2011
Dernière intervention
8 juin 2011
- 17 févr. 2011 à 17:07
Bonjour,
de nouveau besoin de votre aide.

j'ai une listbox à plusieurs colonnes dans un premier userform
je vous que lorsque je double clic sur n'importe quel ligne ça remplisse les labels de mon second userform avec les infos de la ligne double cliqué

j'ai mis le code du double clic dans mon premier userform pour que ça ouvre le deuxième et sa marche
mais je n'arrive pas à afficher les infos de la ligne sélectionnée dans les labels du 2ème userform

j'espère que vous pourrez m'aider

merci d'avance
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
25 avril 2013
3
Merci
Salut, et merci de tes précisions.
Avant de commencer avec ton userform "frFICHECLIENT" supprime ceci:
Private Sub UserForm_Initialize() 
Me.Label1.Caption = frCLIENTS.ListBoxClients(1, 1) 
End Sub 

Ensuite voici comment doit ce présenter ton code doubleclick:
Private Sub ListBoxClients_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

With frCLIENTS.ListBoxClients
'compte le nombre d'item de la listbox
'-1 car la list commence à 0
dernitem = .ListCount - 1
derncolonne = .ColumnCount - 1

'Boucle sur chaque item de la listbox
For x = 0 To dernitem
 'si l'item est séletionné alors
 If .Selected(x) = True Then
   
   'Boucle sur chaque label de 1 à 7
   'et lui attribue la valeur de la colonne lui correspondant
   For y = 0 To derncolonne
   frFICHECLIENT.Controls("Label" & y + 1).Caption = .Column(y, x)
   Next y
  'je sort de la boucle
   Exit For
 End If
Next x
End With

'j'affiche mon deuxième userform
frFICHECLIENT.Show
End Sub

Tiens nous au courant.
@+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de rv83toulon
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
75
0
Merci
Salut

"je n'arrive pas à afficher les infos"
Qu'as-tu essayé ?
As-tu ouvert l'aide de la ListBox pour savoir comment accéder aux infos stockées dans chaque colonne de la ligne actuellement sélectionnée ?
Il y a plusieurs exemple faciles à tester, notamment celui de la propriété .List
L'utilisation des colonnes multiples n'est pas très facile (*), mais tout est expliqué dans l'aide.
(*) notamment la différence subtile entre .

Ensuite, transférer des données d'une forme à une autre :
Suffit de désigner le nom de la forme :
maFormeNo2.TextBox1.Caption = maFormeNo1.List(NoLigne, NoColonne)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
13
Date d'inscription
mercredi 5 janvier 2011
Dernière intervention
8 juin 2011
0
Merci
salut

j'arrive à faire afficher dans les labels mais toujours la meme ligne ,
alors que je voudrai que ce soit les infos de ligne cliqué qui s'affiche,
j'ai une idée du problème qui doit etre une histoire de listindex mais comme sa fait un petit mois jfait du VBA j'ai du mal
et je sais pas comment utiliser le listindex pour qu'il récupère le numéro de ligne
j'espere tu comprend un peu ce que je dit

si ta une idée jsuis preneur et pour acceder a l'aide de la listbox on fait comment?

merci
Commenter la réponse de tafus91
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Dernière intervention
28 août 2015
75
0
Merci
Ouh la, pas clair.

Tu parles des Items qui sont sélectionnés ou bien de n'importe quel Item ?
Où se site ton problème ?
Dans la reconnaissance des Items sélectionnés ? As-tu lu l'aide de la ListBox à propos de sa propriété .Selected ?
Dans l'ajout d'une ligne dans un Label ? ou une TextBox ?

Soit bien précis, on n'est pas au dessus de ton épaule, et surtout, cherche de l'aide dans ... l'aide, il y a plein d'exemples.
Commenter la réponse de cs_Jack
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
25 avril 2013
0
Merci
Bonjour à tous,
il faut te mettre à notre place lorsque tu expliques ton problème. Tu dis :
j'ai une listbox à plusieurs colonnes dans un premier userform

ok, mais combien de colonnes? comment se nomme ton userform, ta listbox?
ensuite :
j'ai mis le code du double clic dans mon premier userform pour que ça ouvre le deuxième
donc tu as commencé à coder. Montre nous le code.
encore :
mais je n'arrive pas à afficher les infos de la ligne sélectionnée dans les labels du 2ème userform
ok,même question, combien y a-t-il de labels?, comment se nomment-ils?
Dans quel label veux-tu afficher la 1er colonne de la listbox etc.....
Comprends-tu l'importance d'être précis dans une demande? En donnant ces infos dès le début tu aurais gagné au minimum 4 jours, puisque ton premier message date du 10/02.
comme te l'as dis Jack :
Soit bien précis, on n'est pas au dessus de ton épaule


@+
Commenter la réponse de rv83toulon
Messages postés
13
Date d'inscription
mercredi 5 janvier 2011
Dernière intervention
8 juin 2011
0
Merci
Bonjour,
il y a 7 colonnes
et la listbox se nomme: ListBoxClients
et le userform: frCLIENTS

le deuxième userform se nomme: frFICHECLIENT

voila le code que j'ai mis(sur le userform frCLIENTS) pour que lorsque je doubleclic une ligne de ma listbox sa ouvre mon userform frFICHECLIENT

'click vers Fiche client
Private Sub ListBoxClients_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Me.Hide
Call Load(frFICHECLIENT)
Call frFICHECLIENT.Show
Call Unload(frFICHECLIENT)


Sur mon userform frFICHECLIENT ( ou je veu que mes labels ce remplissent avec les données de la ListBoxClients "qui ce trouve sur le userform frCLIENTS" en fonction de la ligne doublecliquée)
j'ai 7 Label un pour chaque colonne de ma ListBoxClients (Label1, Label2...Label7)

j'ai commencé comme sa:

Private Sub UserForm_Initialize()


Me.Label1.Caption = frCLIENTS.ListBoxClients(1, 1)

End Sub
mais comme je suis dans mes début en VBA la je nage complétement
j'arrive pas à trouvé le code qui me permet d'afficher dans mes labels ce qu'il y a dans la ligne doublecliqué
voila si un de vous arrive a comprendre ce dont j'ai besoin

merci beaucoup
Commenter la réponse de tafus91
Messages postés
13
Date d'inscription
mercredi 5 janvier 2011
Dernière intervention
8 juin 2011
0
Merci
merci de ta réponse rapide,

C'est parfait

exactement ce que je voulais
un grand merci
et bonne journée a toi
Commenter la réponse de tafus91
Messages postés
13
Date d'inscription
mercredi 5 janvier 2011
Dernière intervention
8 juin 2011
0
Merci
Je reviens vers vous pour la suite,
Car je bloque encore.
Sur mon 2ème userform (frFICHECLIENT) j'ai rajouté des labels : Label8,Label9...Label15
Je voudrai que ces labels ce remplissent avec la suite de mes infos qui ne sont pas dans la listbox (ListBoxClients) mais dans la feuilles excel (CLIENTS)
c'est avec les lignes de cette feuilles excel (CLIENTS) que je remplie ma listbox (ListBoxClients)
Si vous avez une idée de comment réussir à remplir ces labels
Merci beaucoup d'avance et aussi pour la réponse de la dernière fois
bonne journée
Commenter la réponse de tafus91
Messages postés
13
Date d'inscription
mercredi 5 janvier 2011
Dernière intervention
8 juin 2011
0
Merci
Pas la peine de vous embéter j'avai commencé un code et il ne marchai pas
et je viens d'avoir l'éclair de génie je suis assez fier de moi
pas mal pour un novice non?

voila le code que j'ai mis a la suite de celui que m'avait donné rv83toulon

Set objClients = Application.ThisWorkbook.Worksheets.Item("Clients")
Dim ligne As String
ligne = ListBoxClients.ListIndex 'on récupère le N° de ligne
frFICHECLIENT.Label8.Caption = objClients.Cells(ligne + 1, 6)
frFICHECLIENT.Label9.Caption = objClients.Cells(ligne + 1, 9)
frFICHECLIENT.Label10.Caption = objClients.Cells(ligne + 1, 10)
frFICHECLIENT.Label11.Caption = objClients.Cells(ligne + 1, 11)
frFICHECLIENT.Label12.Caption = objClients.Cells(ligne + 1, 12)
frFICHECLIENT.Label13.Caption = objClients.Cells(ligne + 1, 13)
frFICHECLIENT.Label14.Caption = objClients.Cells(ligne + 1, 14)
frFICHECLIENT.Label15.Caption = objClients.Cells(ligne + 1, 15)



Bonne journée à vous
Commenter la réponse de tafus91

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.