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

tafus91 13 Messages postés mercredi 5 janvier 2011Date d'inscription 8 juin 2011 Dernière intervention - 10 févr. 2011 à 13:53 - Dernière réponse : tafus91 13 Messages postés mercredi 5 janvier 2011Date d'inscription 8 juin 2011 Dernière intervention
- 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
rv83toulon 68 Messages postés mercredi 2 mars 2011Date d'inscription 25 avril 2013 Dernière intervention - 15 févr. 2011 à 08:26
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.
@+

Merci rv83toulon 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de rv83toulon
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 10 févr. 2011 à 15:21
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
tafus91 13 Messages postés mercredi 5 janvier 2011Date d'inscription 8 juin 2011 Dernière intervention - 10 févr. 2011 à 16:39
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
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 10 févr. 2011 à 18:00
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
rv83toulon 68 Messages postés mercredi 2 mars 2011Date d'inscription 25 avril 2013 Dernière intervention - 14 févr. 2011 à 08:58
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
tafus91 13 Messages postés mercredi 5 janvier 2011Date d'inscription 8 juin 2011 Dernière intervention - 14 févr. 2011 à 17:43
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
tafus91 13 Messages postés mercredi 5 janvier 2011Date d'inscription 8 juin 2011 Dernière intervention - 15 févr. 2011 à 11:11
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
tafus91 13 Messages postés mercredi 5 janvier 2011Date d'inscription 8 juin 2011 Dernière intervention - 17 févr. 2011 à 16:59
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
tafus91 13 Messages postés mercredi 5 janvier 2011Date d'inscription 8 juin 2011 Dernière intervention - 17 févr. 2011 à 17:07
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.