Désolé j'ai pas commenté le code, j'ai fait ça plutôt rapidement.
Alors:
- Remet la colonne A à la place de I, cette ligne sert a compter le nombre de lignes que compte ta base de données!
- A la place des tabentree(i,1) met tabEntree(i,9)
-> J'ai mis tabentree(i,1) mais ça pourrai être une autre variable à la place de i, (un u, un v, un j^^).
Bref, l'idée c'est que la colonne 1 de tabentree c'est la colonne A de la feuille. Donc si tu veux comparer sur la colonne I de la feuille, il te faut comparer la colonne 9.
Dit moi si c'est bon pour toi!
Yann
Ps: en prime, je viens de te commenter le code (que je n'ai pas adapté pour la colonne I, mais tu devrais avoir assez d'info pour y arriver seul!
Sub TriLignes()
'Déclaration des variables
Dim rez As String
Dim nbrez As Long
Dim i As Long, j As Long, u As Long, v As Long
Dim tabentree() As Variant
Dim derlig As Long, dercol As Long
Dim TB() As String
Dim plusieursLignes As Long
'Capteur de demande de plusieurs lignes
plusieursLignes = False
'recherche de la derniere ligne de la bdd, derniere colonne de la bdd
derlig = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
dercol = ActiveSheet.Cells(1, Cells.Columns.Count).End(xlToLeft).Column
'recupération des data
tabentree = ActiveSheet.Range(Cells(1, 1), Cells(derlig + 1, dercol + 1)).Value
'recupération de la demande de l'inputbox
rez = InputBox("Veuillez saisir les lignes que vous voulez voir affichées." & vbCrLf & vbCrLf & "Dans le cas où vous voulez afficher plusieurs lignes, utilisez / pour séparer les valeurs" & vbCrLf & vbCrLf & "Dans le cas ou vous voulez afficher la totalité des lignes veuillez entrer le mot reset." & vbCrLf & vbCrLf, "Trier les lignes")
'Si tu n'as rien demandé, on sort
If rez = "" Then Exit Sub
'on gele l'affichage de l'écran
Application.ScreenUpdating = False
'on regarde si plusieurs lignes sont demandées
If InStr(rez, "/") > 0 Then
'Si oui on sépare les différentes lignes demandées dans un tableau
TB = Split(rez, "/")
'on met le capteur de plusieurs ligne a true
plusieursLignes = True
End If
'Si on a plusieurs lignes
If plusieursLignes = True Then
'On masque toutes les lignes
ActiveSheet.Cells.EntireRow.Hidden = True
'Pour toutes les lignes demandées
For j = 0 To UBound(TB())
'Pour toutes les lignes de la base de donnée
For i = 2 To derlig
'Si la colonne A = le numéro demandé
If tabentree(i, 1) = CLng(TB(j)) Then
'on affiche la ligne
ActiveSheet.Cells(i, 1).EntireRow.Hidden = False
End If
Next i
Next j
Else
'ici on est dans le cas ou une seule valeur a été entrée
'si tu as entré reset
If rez = "reset" Then
'on affiche toutes les lignes de la feuille
ActiveSheet.Cells.EntireRow.Hidden = False
Else
'Sinon on parcourt les lignes de la bdd
For i = 2 To derlig
'Si la cellule de la colonne A est diff du num demandé
If tabentree(i, 1) <> CLng(rez) Then
'On masque la ligne
ActiveSheet.Cells(i, 1).EntireRow.Hidden = True
End If
Next i
End If
End If
'On dégèle l'écran
Application.ScreenUpdating = True
End Sub