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 Subet 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 Subje 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 WithRe,
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)