Identifier range correspondant à un ID

Bonjour à toutes et tous,

j'ai le code suivant (récupéré sur internet je dois bien avouer) qui me permets de récupérer des données et de les afficher en colonne sur une ListBox.

Ce code est divisé en deux parties et fonctionne correctement

ma question est la suivante:

il récupère l'ensemble des données et affiche les colonnes demandées mais pour toutes lignes de ma feuille, normal à ce stade.

je souhaiterais pouvoir le modifier afin que seules lignes dont en colonne A il y a le Id_Project correct soit lister.

pourriez vous m'indiquer svp comment y arriver

de plus sera t'il possible une fois cela effectué, d'identifier la ligne dont on souhaite en savoir plus afin d'afficher le reste des champs lui étant propre?

Merci par avance pour l'aide que vous pourrez m'apporter

une lors de l'activation du formulaire et l'autre pour les labels

Private Sub UserForm_Activate()
Id_Project = Sheets("DashBoard").Range("A1")

  Set f = Sheets("Work-Packages")
  Set Rng = f.Range("A2:M" & f.[A65000].End(xlUp).Row)  
  ColVisu = Array(2, 3)                    'j'ai choisi les deux colonnes que je souhaite afficher
  LargeurCol = Array(35, 457)            ' j'ai défini la largeur des colonnes en fonction des résultats attendus
  Me.List_WorkPackages.ColumnCount = UBound(ColVisu) + 1
  Me.List_WorkPackages.ColumnWidths = Join(LargeurCol, ";")
  Me.List_WorkPackages.List = Application.Index(Rng, Evaluate("Row(1:" & Rng.Rows.Count & ")"), ColVisu)

List_WP

End Sub

et l'autre macro

Sub List_WP()
    i = 0
    x = Me.List_WorkPackages.Left + 8
    Y = List_WorkPackages.Top - 12
    For Each c In ColVisu
      i = i + 1
      Me("wplist" & i).Caption = Rng.Offset(-1).Item(1, c)
      Me("wplist" & i).Top = Y
      Me("wplist" & i).Left = x
      Me("wplist" & i).Height = 24
      Me("wplist" & i).Width = LargeurCol(i - 1)
      x = x + LargeurCol(i - 1)
    Next
End Sub

je ne sais pas si je suis sur un bonne voie

mais ai quand même des difficultés pour intégration du bon codage...

  With f.Range("A:A")
    Set c = .Find(Id_Project, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
         ??

            Set c = .FindNext(c)
        Loop While Not c Is Nothing
    End If
End With

Re,

j'ai avancé dans mes recherches et tant bien que mail j'ai réussi à identifier les lignes correspondantes à l'ID mais cela ne semble pas compatible avec le range définition

mais je dois avouer que mon code ne doit pas etre optimal

debut et fin me renvoi toutefois les bonnes lignes

merci par avance pour votre aide

Dim Trouve As Range, PlageDeRecherche As Range
Dim Valeur_Cherchee As String, AdresseTrouvee As String

Id_Project = Sheets("DashBoard").Range("A1")
Set f = Sheets("Work-Packages")

Valeur_Cherchee = Id_Project
Set PlageDeRecherche = f.Columns(1)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)

AdresseTrouvee = Replace(Trouve.Address, "$", "")
AdresseTrouvee = Replace(AdresseTrouvee, "A", "")

'vidage des variables
Set PlageDeRecherche = Nothing
Set Trouve = Nothing

debut = CInt(AdresseTrouvee)
Nb_WP = Application.WorksheetFunction.CountIf(f.Range("A:A"), Id_Project)

fin = debut + Nb_WP - 1
fin = CInt(fin)
MsgBox (debut & " : " & fin) 

  Set Rng = f.Range(f.[A] & debut & f.[A65000].End(xlUp).Row)   
Rechercher des sujets similaires à "identifier range correspondant"