Oups !!! C'est comme à l'école : quand tu lis mal la consigne tu te plantes.
Une fonction perso :
VB:
Function TrouverDernier(Plage, C$)
tablo = Plage
For i = 1 To UBound(tablo)
If tablo(i, 1) = C Then TrouverDernier = i
Next i
End Function
Syntaxe dans la feuille :
Code:
=TrouverDernier(Plage de recherche;Chaine à trouver)
par exemple
=TrouverDernier(B1:B16;"x")
ou encore en module :
Code:
Sub TrouverDernierOccurence()
Chaine = "x"
tablo = Sheets("Feuil2").Range("B1:B20")
For i = 1 To UBound(tablo)
If tablo(i, 1) = Chaine Then L = i
Next i
MsgBox "Dernier " & Chaine & " trouvé en ligne " & L
End Sub
Bonsoir
Voici une formule VBA qui peut trouver la dernière ligne où se trouve votre valeur « X » dans la colonne A :
VB:
Function FindLastRow(ByVal searchValue As String) As Long
Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = lastRow To 1 Step -1
If Cells(i, "A").Value = searchValue Then
FindLastRow = i
Exit For
End If
Next i
End Function
Pour utiliser cette formule, il suffit de la copier dans le module VBA de votre feuille de calcul et d’appeler la fonction en passant la valeur « X » en argument :
Dim lastRow As Long
lastRow = FindLastRow("X")
La variable contiendra alors la dernière ligne où se trouve votre valeur « X ».lastRow
A+
Bonsoir patricktoulon
Merci ,Voici une autre formule VBA qui est plus rapide que la première
VB:
Function FindLastRow(ByVal searchValue As String) As Long
FindLastRow = Cells.Find(What:=searchValue, After:=Range("A1"), _
LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End Function
@patricktoulon ,
Pas mal !
Sur des milliers de run, sur mon PC, vous me battez d'un cheveu : 6650µs vs 6958µs. ( 4.29% plus rapide )
( évidemment avec même matrice et même distribution )
Re,
C'est plus mauvais : 7230µs vs 7062µs. ( +2.37% plus rapide pour mon algo )
Mais je préfère la version /100, ça me permet de reprendre la pool position.
re
Bonjour @sylvanu
a non j'ai un pc tout ce qu'il y a de moyen
3.2 g de proc 4 cœurs intel celeron 8 giaga de mémoire carte graphique moyenne et office 2013