matthieu7815
Messages postés17Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention 5 novembre 2005
-
15 sept. 2005 à 21:00
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 2018
-
20 sept. 2005 à 01:32
Dites j'aurai une question svp
Comment faire lorsque j'ai un tableau de 2 colonnes dans excel:
Dans la colonne A j'ai des références qui changent à chaque fois.
Dans la B j'ai des solutions au nombre de 5 qui se répètent.
Je voudrais qu'en entrant dans une fenêtre un des 5 noms présents dans la colonne B, ma macro sorte une fenêtre avec toutes les références correspondantes au nom entré.
Pour mieux expliquer le contenu des colonnes prenons un exemple simple. Différentes equipes de foot. Dans la colonne A tous les noms des joueurs de toutes les équipes donc tous différents et dans la B le nom de l'quipe dans laquelle ils jouent.
Je voudrais qu'en entrant dans une fenetre le nom de l'équipe, une autre fenetre s'ouvre et me donne le nom de tous les joueurs qui jouent dans cette équipe avec le nombre de joueurs.
Merci beaucoup
chrisnyc
Messages postés25Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention22 septembre 2005 16 sept. 2005 à 01:30
Ta question n est pas clair du tout
D ou proviennent les resultats dans ta colonne A et ta colonneB?
Qu est ce qui les relie? une base de donnees?
Si je reprends ton exemple et considere que tu as une base de donnees
avec une table JOUEUR (id_joueur et nom)
une table EQUIPE (id_equipe et nom)
une table RELATION (id_equipe et id_joueur)
la reponse serait tres simple
tu as une forme ou une text box ou tu saisis un nom et apres tu as juste une requete a faire pour afficher dans une liste box le resultat de ta requete
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 16 sept. 2005 à 01:34
Bonsoir,
Je viens de faire le code que tu recherches
Dans le code ci-dessous j'ai inséré dans ma feuille excel une liste appelé "ListBox1" et un textbox appelé "TextBox1".
J'ai fait ce code avec ton exemple dess joueurs de foot et leurs équipes (plus simple pou toi je pense à comprendre et utiliser le code ci-dessous).
Dans cet exemple TextBox1 contient le nom de l'equipe dont tu désires afficher les joueurs de cette équipe.
ListBox1 elle sert à lister les noms des joueurs de cette équipe.
Dim sEquipe As String 'Contient le nom de l'équipe demandée
Dim i As Integer: i = 1 'Compteur qui va servir à parcourir les lignes de ton tableau excel
Dim j As Integer: j = 0 'Compteur qui va servir à incrémenter le tableau qui va contenir la liste des joueurs trouvés
Dim sTabJoueur() As String 'Tableau qui va contenir la liste des joueurs trouvés
'Récupère le nom de l'équipe dont tu veux connaitre le nom des joueurs
sEquipe = TextBox1.Text
'Fait une boucle jusqu'à tant qu'une cellule vide soit trouvée
While (Not Cells(i, "A") = "")
'Compare le nom de l'équipe choisie avec le nom de l'équipe de la ligne i
If Cells(i, "B") = sEquipe Then
ReDim Preserve sTabJoueur(j) 'redimensionne le tableau des joueurs
sTabJoueur(j) = Cells(i, "A") 'écrit le nom du joueur dans le tableau
j = j + 1
End If
i = i + 1
Wend
'Vide la liste qui va contenir le nom des joueurs
ListBox1.Clear
'affichage du resultat
'parcourt de la 1ière case à la dernière case du tableau des joueurs
For i = 0 To UBound(sTabJoueur)
ListBox1.AddItem sTabJoueur(i) 'et ajoute le nom de ceux ci dans la liste
Next
Ci tu veux mon fichier excel avec le code pour mieux voir fais moi signe :)
Bon courage
valtrase
Messages postés937Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention 9 mai 20223 16 sept. 2005 à 01:38
Salut,
Voilà un bout de code pour commencer, j'ai mis qq explications puisque tu es débutant
1°) Mettre un bouton sur ta feuille
2°) Dans le code de ce bouton tu colles ceci
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
3°) Tu crée une UserForm
4°) Sur ta UserForm tu Mets un Label, Un CommandButon, Une zone de texte, et une zone de liste
5°) Tu colles ce code dans ton code de la UserForm
Private Sub CommandButton1_Click()
'*** Déclaration des variables
Dim Ws As Range: Dim rNum As Long: Dim lLastrow As Long
'*** On vide la liste box
ListBox1.Clear
rNum = 0
'*** La recherche se fait sur la feuille "Joueurs" A ADAPTER SELON TA FEUILLE
With Worksheets("Joueurs")
'*** On recherche la dernière ligne vide de la colonne "B"
lLastrow = .Cells(65536, 2).End(xlUp).Row
'*** On effectue une boucle sur tous les éléments de la colonne "B"
For Each Ws In [B:B]
'*** Si c'est la dernière ligne on sort de la boucle
If Ws.Row = lLastrow Then Exit For
If Ws.Value = TextBox1.Value Then
'*** Si c'est la valeur recherchée on ajoute à la liste box la valeur de gauche
ListBox1.AddItem Ws.Offset(0, -1).Value
'*** Et on compte une entrée de plus
rNum = rNum + 1
End If
Next
End With
'*** On affiche une réponse selon le nombre de valeurs trouvées
Select Case rNum
Case Is = 0
Label1.Caption = " il n'y a pas de joueurs pour cette équipe !"
Case Is >= 1
Label1.Caption = " Le nombre de joueurs pour cette équipe est de : " & rNum
Case Else
End Select
End Sub
Private Sub UserForm_Activate()Label1.Caption Label1.Caption "Entrez un nom d'équipe et cliquez sur recherche"
CommandButton1.Caption = "Recherche ..."
End Sub
chrisnyc
Messages postés25Date d'inscriptionmardi 16 août 2005StatutMembreDernière intervention22 septembre 2005 16 sept. 2005 à 01:44
ok je viens de voir le message de Willi et j ai compris la question posee
En fait j ai zappe la partie la plus importante qui dit que l on a le nom du joueur en A et de l equipe en B
Enfin bref
Ce code a l air parfait en tous cas
Bon courage
Vous n’avez pas trouvé la réponse que vous recherchez ?