Il y a une colonne dans un tableau où les noms des usines sont affichés mais je n'ai besoin que des données pour un nom d'usine spécifique (disons l'usine "Australie").
Mon idée est de localiser les premières et dernières lignes qui correspondent car les données pour la même usine sont toujours présentées de manière consécutive. De cette façon, je peux obtenir la plage de cellules qui correspondent à ma recherche.
Localiser la position de la première ligne correspondante est assez facile mais je bloque pour obtenir la position de la dernière ligne correspondante.
Voici le code concernant cette section :
Sub Chercher()
Dim sh As Worksheet
Dim searchStr As String
Dim lastRow As Long, firstRow as Long
Dim tableRange As range
Set sh = Worksheets("Commande totale")
searchStr = "Australie"
Set tableRange = sh.range("B:B").Find(what:=searchStr, LookIn:=xlValues, lookat:=xlWhole)
firstRow = tableRange.Row
End Sub
Un exemple du tableau traité :
3 votes
Set tableRange = tableRange.Resize(Application.Countif(sh.range("B:B"), searchStr))
vous donnera B4:B70 votes
@Tim c'est génial....
0 votes
@TimWilliams Merci beaucoup mais puis-je demander comment accéder à cette plage? (ou seulement accéder à B7 de cette plage) Je veux enregistrer la position de la ligne dans "lastRow". Cependant, lorsque je définis lastRow = tableRange.Row suivant votre code, il ne montre que "4".
0 votes
Vous pourriez faire:
FirstRow = tableRange.Row
:LastRow = FirstRow + tableRange.Rows.Count - 1
ou simplement:LastRow = tableRange.Row + tableRange.Rows.Count - 1
.0 votes
Vous avez déjà tableRange comme référence