Comment faire une mini macro!!! je débute

matthieu7815 Messages postés 17 Date d'inscription jeudi 15 septembre 2005 Statut Membre Dernière intervention 5 novembre 2005 - 15 sept. 2005 à 21:00
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 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

5 réponses

chrisnyc Messages postés 25 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 22 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

voila
chris
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
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
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
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

Cordialement, Jean-Paul
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
chrisnyc Messages postés 25 Date d'inscription mardi 16 août 2005 Statut Membre Dernière intervention 22 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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
20 sept. 2005 à 01:32
Si le code proposé te conviens et fonctionne valide le pour les autres :)
0
Rejoignez-nous