philguit
Messages postés9Date d'inscriptionvendredi 11 mai 2007StatutMembreDernière intervention 2 juin 2007
-
12 mai 2007 à 21:00
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
14 mai 2007 à 18:26
je dispose d'une ListBox dans laquelle se trouve des noms identiques, je voudrait dans une textbox avoir la somme des noms identiques , par exemple, j'ai plusieurs fois le nom PARIS, ( 12 fois), alors ma textBox m'indiquerais "12",quand PARIS est sélectionné, j'espére avoir été clair,merci par avance pour votre aide.
cs_yvesyves
Messages postés561Date d'inscriptionsamedi 10 janvier 2004StatutMembreDernière intervention11 octobre 2010 12 mai 2007 à 21:33
Tu fais une recherche dans ta liste grâce aux indexs. Des que l'utilsateur clique sur Paris il cherche de 0 à MaxList "Paris". Et tu oublie pas d'incrémenter un compteur. Si ta liste est trié tu peux améliorer les performences genre si tu as 256 fois paris dans 45612 éléments...
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 12 mai 2007 à 21:55
Salut,
tiens, un 'tit bout de code :
Option Explicit
Private Sub Form_Load()
With List1
.AddItem "Paris"
.AddItem "Marseille"
.AddItem "Paris"
.AddItem "Nice"
.AddItem "Paris"
.AddItem "Marseille"
.AddItem "Paris"
.AddItem "Nice"
.AddItem "Paris"
End With
End Sub
Private Sub List1_Click()
Dim i As Long, Counter As Long
For i = 0 To List1.ListCount - 1
If List1.List(i) = List1.List(List1.ListIndex) Then
Counter = Counter + 1
End If
Next
MsgBox "La valeur " & CStr(List1.List(List1.ListIndex)) & "
apparait " & Counter & " fois !"
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 14 mai 2007 à 14:59
Salut,
il suffit de lire ligne par ligne. Par exemple, avec le code donné précédemmant, tu sais quel item est choisi, ensuite, il faut sélectionner la feuille 2, puis lire avec une boucle de 1 à la dernière ligne (For i = 1 To DerLigne) et dès que cells(i, 1) correspond à la valeur de l'item du ListBox1, tu fait un Exit For, (pour sortir de la boucle) et la valeur de i garde le numéro de la ligne qui va bien, tu lis les autres colonnes (cells(i, 2), cells(i, 3), etc..) en faisant un AddItem à ton ListBox2
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 14 mai 2007 à 18:26
Sheets(
"Feuille2"
).Select
Dim
i
as long
, PLV
as long
, PCV
As Long
PLV = range(
"A65536"
).End(xlUp).Row
For
i =
1
to
PLV
if List1.List(List1.ListIndex) = Cells(i, 1).Value Then
PCV = range("A" & i).End(xlRight).Column
For j = 1 to PCV
ListBox2.Clear
ListBox2.AddItem Cells(i, j).Value
Next j
Exit For
End If
Next i
philguit
Messages postés9Date d'inscriptionvendredi 11 mai 2007StatutMembreDernière intervention 2 juin 2007 13 mai 2007 à 18:28
Merci pour la réponse qui m'a bien aidée.
Pendant que j'y suis , je formule une autre demande, j'ai 2 tableaux(feuillede calcul excel), la colonneA de la feuille1m'indique le nom des villes,les autres colonnes les caractéristiques diverses de la ville en question; dans la colonne A de la feuille 2, toujours le nom des villes,mais avec d'autres caractérisitiques.Je souhaiterais depuis mon UserForm de consultation, sélectionner une ville dans la Listbox1 liée à la feuille 1, (colonneA), dans une autre listbox2,pouvoir lire les données de plusieurs colonnes de la feuille2,correspondant à la ville choisit.et ceci sans voir apparaître 2 fois le nom de la ville choisit.(ex:PARIS ,en France,en Europe,en Ile de france ect..), en selectionnant "PARIS" dans la ListBox1,je verrais apparaître dans la ListeBox2 ,les lignes d'infos contenues dans la feuille2 ,cad: En Europe,En France etc..
Merci pour la patience de me lire,j'ai déja contruit l'UserForm avec les Listbox, la listbox1 me fait bien voir l'ensemble de la colonneA de la feuille1, quand à la Listbox2, je ne vois pas de solution , en l'état actuel de mes connaissances.