lolpop
Messages postés211Date d'inscriptionmercredi 4 août 2004StatutMembreDernière intervention18 octobre 2010
-
19 juin 2006 à 07:27
mldfromdtklan
Messages postés2Date d'inscriptiondimanche 30 novembre 2008StatutMembreDernière intervention 4 mars 2011
-
4 mars 2011 à 19:15
Bonjour
je reviens vers vous car cela fait 1semaine et demi que je n'avance pas.
je vous décris mon problème, comme je programme habituellement en php je vais fonctionnerpareil avec une colonne ID
Sous excel j'ai une feuille avec 3 colonnes, A=ID, B=nom, et C=age.
la premier ligne de chaque colonne indique a quoi elle corespond:
|id| nom | age |
-------------------
| | | |
J'ai créé un userform afin d'ajouter des entrées, et j'ai fait une list box simple colonne qui affiche la colonne nom, et lorsque l'on clique dessus cela affiche un nouveau userform avec des textbox pour modifier l'entré cliqué,mais mon probleme et que si il y a plusieur nom identique ça n'en prend qu'un, cest pourquoi j'ai décidé de travailler avec un id pour chaque.
Donc je voudrai savoir comme faire pour afficher dans la listbox 3 colonnes:id,nom et age et que ça ai les meme fonctionnalité que précédément.(ouvrir l'autre userform et pouvoir modifier l'entré)
je galère avec le rowsource mais je ne sais pas si c'est avec cela que l'on peut le faire.
si quelqu'un pouvais m'aider, ca serait super simpas.
merci
A voir également:
Vba listbox additem
Vba listbox additem plusieurs colonnes - Meilleures réponses
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 19 juin 2006 à 12:42
Salut,
Effectivement c'est avec le rowsource.
Ex : ListBox1.RowSource = "Feuil1!A2:C100"
Ensuite voit la propriété ColumnCount (c'est le nombre de colonne)
et ColumnWidth (c'est la taille en largeur des colonnes) dans la fenêtre des propriétés, il faut séparer les valeurs (en pts) par le point-virgule ' ;
'
lolpop
Messages postés211Date d'inscriptionmercredi 4 août 2004StatutMembreDernière intervention18 octobre 2010 19 juin 2006 à 17:58
merci pour ta réponce mortalino mais le probleme c'est que si j'ai que quelque entrée il va y avoir des lignes vide, mais j'ai fait un code dans ce sens mais j'ai encore 1-2 soucis:
voila le code de luserform1 initialize
Private Sub UserForm_Initialize()
i = 2
While Feuil1.Cells(i, 1) <> ""
i = i + 1
Wend
i = i - 1
Mon problème est que j'ai une erreur la: ("Feuil1!A2:Ci") le i n'est pas completer par le nombre qu'il devrai, quelqu'un aurait une solution.
et mon second probleme c'est que lorsque l'on clique sur une ligne ca ouvre un nouveau userform mais meme en modifiant le boundcolumn ca affiche toujour l'id alor que le 2 corespond a la seconde colonne c'est a dire au nom. voila le code de luserform2
Private Sub UserForm_Initialize()
moi = UserForm1.choix.Text
UserForm2.nom2.Text = UserForm1.choix.Text
Unload UserForm1
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 19 juin 2006 à 18:06
Voilà la bonne syntaxe :
choix.RowSource = "Feuil1!A2:C" & i
(entre guillemets, c'est du texte.)
Pas trop compris ton 2nd problème et je ne peux plus t'aider car je dois partir. Réexplique mieux ton problème et si quelqu'un passe par là, il t'aidera bien volontier.
Sinon, je repasse demain vers 18h, j'ai pour habitude de vérifier les mails de la veille donc dans tout les cas je revisiterai ta question et t'aiderai si personne n'a pu le faire.
lolpop
Messages postés211Date d'inscriptionmercredi 4 août 2004StatutMembreDernière intervention18 octobre 2010 19 juin 2006 à 18:45
mon premier problème est résolu merci bien martalino.
alor je vais essayer de réexpliquer mon second probleme :)
j'ai mon premier userform avec juste une listbox multicolonne | ID | Nom | Age|
j'arrive à afficher parfaitement les données de ma feuille excel.
Lorsque l'on clique sur une ligne de la listbox, par exemple la premier ligne qui est
| 1 | Morgan | 19 |, ça ouvre un second userform ( cet userform sert en fait a modifier le nom), dans cet userform il y a un textbox qui normelement récupère le nom qui été selectionner dans la listbox, (quand je faisait ca avec un listbox simple a une colonne cela marché trés bien) mais la le probleme c'est que a la place d'afficher le nom ca affiche l'id.
pourtant j'ai définie le BoundColumn dans le premier userform.
les code sont juste au dessu,
jespere que j'aurais été claire :)
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 20 juin 2006 à 20:46
Salut,
Je pense que ce n'est pas nécessaire d'utiliser la propriété BoundColumn.
Pour reprendre ton exemple
| 1 | Morgan | 19 | (admettons tu as ceci que tu veux sélectionner dans la ListBox de ton 1er UserForm)
* Admettons aussi dans ton 2eme UserForm tu as un TextBox1 (pour l'ID), un TextBox2 (pour le nom) et un TextBox3 (pour l'age) :
Dans la procédure du UserForm1 :
Sub ListBox1.Click()
With UserForm2
.TextBox1.Text = Me.ListBox1.Column(0) '1ere valeur de la ligne sélectionnée
.TextBox2.Text = Me.ListBox1.Column(1) '2eme valeur
.TextBox3.Text = Me.ListBox1.Column(2) '3eme valeur
.Show
End With
Me.Hide
End Sub
@++
--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
lolpop
Messages postés211Date d'inscriptionmercredi 4 août 2004StatutMembreDernière intervention18 octobre 2010 21 juin 2006 à 07:09
d'accord, donc si je comprend bien with userform sert a concaténé chaque ligne?
je n'avais jamais vu l'utilisation de with je recopier toujour userform2.textbox...
jvann
Messages postés1Date d'inscriptionvendredi 25 septembre 2009StatutMembreDernière intervention13 octobre 2010 13 oct. 2010 à 12:40
Bonjour à tous,
Mon problème est commet afficher seulement la colonne A et C dans le meme listbox"Feuil1!A2:C100" affiche A B et C
je ne ceux afficher que les colonne A et C
mldfromdtklan
Messages postés2Date d'inscriptiondimanche 30 novembre 2008StatutMembreDernière intervention 4 mars 2011 4 mars 2011 à 19:15
salut je suis dsl j'avai pas vue ton 2 probleme XD.
'pour ton problème 1 tu crées une boite de dialogue nommer "Userform1".
'dans ce userform1 tu crées ton Listbox nommer "choix".
'tu crées une 2ème boite de dialogue nommer "Userform2".
'dans ce userform2 tu crées 3 labels "Label1", "Label2" et "Label3".
'puis tu crées 3 textboxs "TextBox1", "TextBox2" et "TextBox3".
'tu aligne "TextBox1" et "Label1" sur la meme ligne (cote à cote) ,
'tu aligne "TextBox2" et "Label2" sur la meme ligne (cote à cote) et
'"TextBox3" et "Label3" sur la meme ligne (cote à cote)
Private Sub UserForm_Initialize()
'nommer les labels par le titre de votre choix
Label1.Caption = "ID" 'tu mets ton titre entre les "".
Label2.Caption = "Nom" 'tu mets ton titre entre les "".
Label2.Caption = "Age" 'tu mets ton titre entre les "".
i = 2
While Feuil1.Cells(i, 1) <> ""
i = i + 1
Wend
i = i - 1
UserForm1.choix.ColumnCount = 2
'UserForm1.choix.BoundColumn = 2 'cette ligne là tu n'en a pas besoin ok?
choix.ColumnHeads = True 'affiche le titre des colones
choix.RowSource = "Feuil1!A2:C" & i
End Sub
'ton 2eme problème est là je l'ai testé ça marche à merveille.
Private Sub choix_Click()
With UserForm2
.TextBox1.Text = Me.choix.Column(0) '1ere valeur de la ligne sélectionnée
.TextBox2.Text = Me.choix.Column(1) '2eme valeur de la ligne sélectionnée
.TextBox3.Text = Me.choix.Column(2) '2eme valeur de la ligne sélectionnée
End With
UserForm2.Show
End Sub
'aller teste le pour voir mon pote